Für mein Super-OSD-Projekt muss ich große Mengen von MCUs programmieren, wahrscheinlich etwa 10-15 Boards pro Stunde. Ich könnte einfach mein vertrauenswürdiges PICkit 2 verwenden, um sie zu programmieren (es gibt zwei - vielleicht drei - auf jeder Karte), aber es wäre sehr mühsam, jede Datei (bis zu 128 KB und 256 KB groß) zu laden, das Programm zu drücken und für jede zu wiederholen MCU und würde mir wahrscheinlich nicht erlauben, meine Zielgeschwindigkeit zu erreichen. Außerdem sind die MCUs oberflächenmontiert, daher muss ich Header auf der Platine haben, um dies zu ermöglichen. Im Idealfall möchte ich diese Header entfernen, dies ist jedoch möglicherweise keine Option.
Welche Optionen gibt es für die Massenprogrammierung von MCUs - gibt es schnellere Möglichkeiten, dies zu tun? Ich habe ein Budget von weniger als 100 USD, also wären Dinge wie Microchips MPLAB PM3 für 895 USD zwar nett, aber keine Option.
Ich habe es mit PIC-Mikrocontrollern verschiedener Typen zu tun. Es gibt einen PIC16F887, einen PIC24FJ64GA002 und einen dsPIC33FJ128GP802. Ich interessiere mich jedoch auch für Optionen für AT32- und STM32-Prozessoren, da ich diese möglicherweise auch verwende.
Bitte beachten Sie, dass ich derzeit nicht in Betracht ziehe, Chips bei den vorprogrammierten Herstellern zu bestellen, da sich die Software zum Zeitpunkt des Eintreffens der Chips ändern kann und zusätzliche Kosten anfallen.
quelle
Antworten:
Was wir für die Produktion tun, ist, zuerst ein Programm in den PIC zu laden, das die Karte testet (unter Verwendung einer kleinen Testkarte, die unabhängig überprüft, ob die 3,3-V-Schiene innerhalb der Spezifikation liegt, indem wir einige Komparatoren verwenden, und dann verwenden wir den ADC auf der PIC, um alles andere zu überprüfen. Wir hatten noch genügend Pins übrig, um dies zu ermöglichen (es waren einige zusätzliche Widerstände erforderlich, um als Spannungsteiler für die Spannungen über 3 V zu fungieren).
Nachdem die Tests bestanden wurden, wird der tatsächliche Produktionscode in das Mikro eingeblendet. Einige zusätzliche Tests werden ausgeführt, und die Leiterplatte kann in ein Gehäuse eingebaut werden.
Dies alles erfolgt über ein Programm auf dem PC, bei dem nur ein Bediener die Karte anschließen, auf eine Schaltfläche klicken und auf das Ergebnis PASS / FAIL warten muss. Alle Testergebnisse (einschließlich ADC-Messwerte) werden protokolliert. Der gesamte Prozess (einschließlich der Programmierung der PICs über einen ICD 3) wird über das PC-Programm gesteuert, das Batch-Skripte ausführt, um die eigentliche Programmierung durchzuführen. Die Kommunikation mit dem PIC zur Steuerung der Tests erfolgt über einen der UARTs, deren Pins auf die Testplatine übertragen werden (zusätzlich zu den für die Programmierung erforderlichen Pins haben wir mindestens TX / RX).
Wir haben bei unserem Vertragshersteller mehrere solcher Stationen eingerichtet.
Übrigens ist der ICD 3 viel schneller als der ICD 2 (USB 2.0 vs 1.1).
quelle
Das PICkit 2 ist kein Produktionsprogrammierer. Sie benötigen wirklich einen ICD 3, der als Produktionsprogrammierer eingestuft ist, wenn Sie sicher sein möchten, dass die Geräte ordnungsgemäß programmiert werden. Alternativ können Sie Ihre Chips vorprogrammiert bei Microchip oder einem Distributor kaufen, wenn Sie den Code finalisiert haben.
quelle
Die Mikrocontroller-Programmierung ist normalerweise ein kleiner Teil eines größeren Funktionstestprozesses. Wie sieht der Rest Ihres Testplans aus?
Für jedes nicht triviale Produkt müssen Sie eine andere Platine entwerfen, um die in Produktion befindliche Platine zu testen. Im Allgemeinen verfügt die Testkarte über eine Computerschnittstelle und verbindet das Ziel mit Testgeräten mit RS-232- oder GPIB-Funktionen. Dann kann ein Computer ein Skript ausführen, die Karte programmieren und dann die geeigneten Tests ausführen.
Es ist hilfreich, dieses Testboard auch für die Firmware-Entwicklung laufen zu lassen. Implementieren Sie genügend Tests, um Regressionen in der Firmware abzufangen.
Der Start Ihrer Testplatine ist wahrscheinlich die PICkit 2-Schaltung. Die Firmware ist Open Source, kümmert sich um den Programmierteil, verfügt über einen praktischen Bootloader und kann erweitert werden, um alles zu tun, was Ihr Funktionstest benötigt.
Ich schreibe meine Produktionstestskripte gerne in Python, aber ich denke, der Industriestandard ist Labview.
quelle
Holen Sie sich einen Pickit 3 und versetzen Sie ihn in den Programmiermodus.
Sie sagen, Sie möchten, dass der Programmierer in den Modus wechselt, und Sie laden Ihr ROM. Dann benötigen Sie keinen USB-Anschluss mehr für mehr als Strom (ja, Sie benötigen ihn immer noch für Strom).
Wenn Sie Geräte anschließen, drücken Sie die Programmtaste, und das Programm wird geladen. Wenn dies erledigt ist, dauert es weniger als 20 Sekunden, bis eine Karte fertig ist. Kostet nicht mehr als 50 $
quelle
Eine Methode, die Sie verwenden können, besteht darin, eine Klemme oder etwas Ähnliches wie einen Prüfstand ( Beispielvideo ) mit Pogo-Stiften herzustellen , damit Sie keine Stifte für die Programmieranschlüsse löten müssen. Ein PCB-Edge-Anschluss, wie z. B. ein Diskettenkabel im alten Stil, ist möglicherweise eine billigere (aber anspruchsvollere) Option.
Sie müssen einen Weg finden, um jeden Mikrocontroller zu programmieren, wahrscheinlich mit mehreren Programmierern oder einer Batch-Datei, wie David vorgeschlagen hat. Sie können es mit einem großen Schalter kombinieren (möglicherweise einem der Drehschalter einer alten Druckerfreigabe-Schaltbox oder einigen Relais), um den Programmierer von einem PIC zu einem anderen wieder anzuschließen, ohne den Stecker zu bewegen.
Die Techniken gelten auch für andere systeminterne programmierbare Steuerungen, obwohl die JTAG-fähigen möglicherweise noch einfacher sind, da JTAG TAP für die Verkettung ausgelegt ist, sodass der Programmierer nicht von Chip zu Chip bewegt werden muss. Auch für Chips wie AVRs, die normale Logikpegel zum Programmieren verwenden können, könnte das Umschalten einfacher werden.
quelle
Es gibt ein Befehlszeilenprogramm namens PK2CMD für Windows und Linux, mit dem Sie Ihre PICs mit dem PicKit programmieren können (Sie müssen also kein MPLAB oder eine andere GUI verwenden). Sie können Ihre bevorzugte Skriptsprache verwenden, um ein kleines Programm zu erstellen, das den richtigen PK2CMD-Befehl ausführt, wenn Sie eine Taste drücken. Dies würde die Computerseite Ihrer Produktion weniger mühsam machen (nur 1 Tastendruck pro MCU), aber Sie würden immer noch eine Möglichkeit benötigen, das PicKit mit jeder Ihrer 3 MCUs zu verbinden.
quelle
Der Programmierservice von Microchip ist sehr günstig, als ich ihn das letzte Mal verwendet habe. Sobald Sie die Einrichtungskosten übernommen haben, ist er sehr günstig - ein paar Cent pro Chip für 12F - und nicht für High-End-Modelle. Sie können auch Markierungen / Beschriftungen usw. durchführen. Selbst wenn Sie beabsichtigen, die FW zu ändern, kann die Vorprogrammierung eines Bootloaders dies erleichtern.
Für einen Produktionsprogrammierer mag ich den Asix Presto - jede Menge Optionen für Dinge wie Serialisierung und sehr schnell
quelle