Für mein Super-OSD-Projekt muss ich große Chargen von MCUs programmieren, wahrscheinlich etwa 10-15 Boards pro Stunde. Ich könnte einfach mein zuverlässiges PICkit 2 verwenden, um sie zu programmieren (es gibt zwei - vielleicht drei - auf jeder Platine), aber es wäre sehr mühsam, jede Datei (bis zu 128 KB und 256 KB groß) zu laden, auf "Programm" zu klicken und für jede zu wiederholen MCU, und würde es 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. Idealerweise möchte ich diese Header entfernen, aber es ist möglicherweise keine Option.
Welche Optionen gibt es also für die Massenprogrammierung von MCUs - gibt es schnellere Möglichkeiten, dies zu tun? Ich habe ein Budget von weniger als 100 US-Dollar, also wären Dinge wie der MPLAB PM3 von Microchip für 895 US-Dollar zwar nett, aber keine Option.
Ich beschäftige mich mit PIC-Mikrocontrollern verschiedener Typen. Es gibt einen PIC16F887, PIC24FJ64GA002 und dsPIC33FJ128GP802. Allerdings interessiere ich mich auch für Optionen für AT32- und STM32-Prozessoren, da ich diese möglicherweise auch verwende.
Bitte beachten Sie, dass ich derzeit nicht erwäge, vorprogrammierte Chips bei den Herstellern zu bestellen, da sich die Software bis zum Eintreffen der Chips ändern kann und wegen der damit verbundenen zusätzlichen Kosten.
Was wir für die Produktion tun, ist, zuerst ein Programm in den PIC zu laden, das die Platine testet (unter Verwendung einer kleinen Testplatine, die unabhängig überprüft, ob die 3,3-V-Schiene mit ein paar Komparatoren innerhalb der Spezifikation liegt, und dann verwenden wir den ADC auf dem PIC, um alles andere zu überprüfen.Wir hatten genug 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 sind, wird der echte Produktionscode in das Mikro geflasht. Es werden einige zusätzliche Tests durchgeführt, und die Leiterplatte ist bereit für den Einbau in ein Gehäuse.
Dies geschieht alles über ein Programm auf dem PC, bei dem ein Bediener nur die Platine anschließen, auf eine Schaltfläche klicken und auf das Ergebnis PASS/FAIL warten muss. Alle Testergebnisse (einschließlich ADC-Messungen) 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 vorzunehmen. Die Kommunikation mit dem PIC zur Steuerung der Tests erfolgt über einen der UARTs, dessen Pins auf die Testplatine geführt werden (zusätzlich zu den für die Programmierung erforderlichen Pins haben wir also auch mindestens TX/RX).
Bei unserem Lohnfertiger haben wir mehrere solcher Stationen aufgebaut.
Übrigens ist der ICD 3 viel schneller als der ICD 2 (USB 2.0 vs. 1.1).
Holen Sie sich ein Pickit 3 und versetzen Sie es in den Programmer-to-Go-Modus.
Sie sagen ihm, 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 brauchen ihn immer noch für Strom).
Wenn Sie Geräte anschließen, drücken Sie die Programmtaste und es lädt das Programm und lässt Sie wissen, wann es fertig ist, dauert weniger als 20 Sekunden pro Board. Kostet nicht mehr als 50$
Das PICkit 2 ist kein Produktionsprogrammierer. Sie müssen sich wirklich einen ICD 3 besorgen, der als Produktionsprogrammierer eingestuft wird, wenn Sie sicher sein wollen, dass die Geräte richtig programmiert werden. Alternativ können Sie Ihre vorprogrammierten Chips bei Microchip oder einem Händler kaufen, wenn Sie den Code fertig haben.
Die Programmierung von Mikrocontrollern 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 ein weiteres Board entwerfen, um das Board in der Produktion zu testen. Im Allgemeinen verfügt das Testboard über eine Computerschnittstelle und verbindet das Target mit Testgeräten mit RS-232- oder GPIB-Fähigkeiten. Dann kann ein Computer ein Skript durchlaufen, das Board programmieren und dann alle 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 zu erkennen.
Der Anfang Ihres Testboards ist wahrscheinlich die PICkit 2-Schaltung. Die Firmware ist Open Source, sie kümmert sich um den Programmierteil, sie hat einen praktischen Bootloader und Sie können sie erweitern, um alles andere zu tun, was Ihr Funktionstest benötigt.
Ich schreibe meine Produktionstestskripte gerne in Python, aber ich denke, der Industriestandard ist Labview.
Eine Methode, die Sie verwenden könnten, besteht darin, eine Klemme oder etwas Ähnliches wie ein Testbett ( Beispielvideo ) mit Pogo-Pins herzustellen , sodass Sie keine Pins für die Programmieranschlüsse löten müssen. Ein PCB-Edge-Steckverbinder, wie z. B. ein Diskettenkabel im alten Stil, ist möglicherweise eine billigere (aber mehr Platinenfläche beanspruchende) Option.
Sie müssen einen Weg finden, jeden Mikrocontroller zu programmieren, wahrscheinlich mit mehreren Programmierern oder einer Batch-Datei, wie David vorgeschlagen hat. Sie könnten es mit einem großen Schalter (vielleicht einem der Drehschalter einer alten Druckerfreigabe-Schaltbox oder einigen Relais) kombinieren, um den Programmierer wieder von einem PIC zu einem anderen zu verbinden, ohne den Stecker zu bewegen.
Die Techniken gelten auch für andere programmierbare Steuerungen im System, obwohl die JTAG-fähigen es noch einfacher machen können, 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.
Es gibt ein Befehlszeilenprogramm namens PK2CMD für Windows und Linux, mit dem Sie Ihre PICs mit dem PicKit programmieren können (so dass Sie MPLAB oder eine andere GUI nicht verwenden müssen). Sie könnten 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 bräuchten immer noch eine Möglichkeit, das PicKit mit jeder Ihrer 3 MCUs zu verbinden.
Der Programmierservice von Microchip war sehr billig, als ich ihn das letzte Mal benutzt habe. Sobald Sie die Einrichtungskosten decken, ist er sehr billig - ein paar Cent pro Chip für 12F - nicht auf High-End-Chips. Sie können auch Markierungen/Beschriftungen usw. vornehmen. Selbst wenn Sie beabsichtigen, die FW zu ändern, kann dies durch einen vorprogrammierten Bootloader einfacher werden.
Als Produktionsprogrammierer mag ich den Asix Presto – tonnenweise Optionen für Sachen wie Serialisierung und sehr schnell
Markierungen
Thomas o
Kortuk