Low-Volume-Mixed-Signal-Elektronikproduktion (Hardwaretest, Kalibrierung, Flashen) Automatisierung [geschlossen]

Ich entwerfe ein Mixed-Signal-Board mit Mikrocontroller, das Flash-Speicherprogrammierung für seine Firmware, (Selbst-)Tests und Dokumentation für die letzten Produktionsschritte benötigt.
Ich weiß, dass es einen ganzen Zweig der Elektronikfertigungsindustrie rund um das Testen (ATE) gibt, aber ich habe noch keine einfache Liste mit Schritten und Optionen für den grundlegenden Prozess gefunden, nur um loszulegen und den einfachsten, kostengünstigsten Weg herauszufinden dies für einen kleinen Maßstab zu automatisieren.

Beginnen wir mit dem wesentlichen Flashen des Mikros:

  1. Gerät mit Programmiergerät verbinden (PC+Software)
  2. Klicken Sie auf die Schaltfläche „Programmieren“, um die Firmware zu flashen
  3. Gerät trennen

Wie würde man dies auf minimale menschliche Beteiligung wie vereinfachen

  1. Gerät einsetzen
  2. Gerät entfernen

? Wahrscheinlich mit

  • eine Prüfvorrichtung und federbelastete Sonden (Pogo-Pins) für die Verbindungen.
  • eine Methode, mit der der Computer das Gerät erkennt (wechseln oder erneut versuchen, bis eine erfolgreiche Verbindung zur MCU hergestellt wurde).
  • eine Mensch-Maschine-Schnittstelle (audio, visuell über PC oder am Prüfstand)

Das Maschinen-IO könnte so "einfach" sein wie ein anderes Mikrocontroller-Board (z. B. Arduino), das über eine serielle Schnittstelle (UART/RS-232) verbunden ist. Dann muss die PC-Software möglicherweise angepasst werden, um den Prozess zu steuern (IO- und Flasher-Software). Natürlich gibt es für das Flashen allein mehrere Optionen (herstellerspezifischer Link, JTAG, Bootloader).

Als nächstes wäre das automatisierte Testen und Kalibrieren des Geräts von Interesse. Dies ist natürlich sehr spezifisch für die Hardware. Die notwendige Ausrüstung könnte als verallgemeinert werden

  • Stromversorgung
  • Signalgenerator (Referenzspannung / Signal)
  • Messgerät (Multimeter, Oszilloskop)
  • Lasten (Senken, Quellen)
  • Schnittstellen

Anstatt Selbsttest- oder IO-Routinen auf der Hardware zu verwenden (separate Testfirmware oder Testroutinen, die Teil der Produktionsfirmware sind), könnten Low-Level-Tests von einem externen Steuerhost über Hardware Boundary Scan / JTAG ausgeführt werden .

Abhängig von der Schaltung kann dies zu einem Selbsttest mit einer passiven Vorrichtung vereinfacht werden, die meistens als Loopback-Gerät fungiert.

In jedem Fall könnte eine allgemeine Reihenfolge für Test/Kalibrierung wie folgt aussehen:

  1. Signal anlegen
  2. Signal messen
  3. [Kalibrierparameter berechnen / speichern]

Beispielsweise könnten Ausgänge über die Testvorrichtung zu (mehreren) Eingängen zurückgeschleift werden. Die Analogsignalkalibrierung erfordert eine Referenz, die extern sein kann. Eine Signalumschaltung kann erforderlich sein, wenn eine Referenz mit Eingängen (ADC) und Ausgängen (DAC) verwendet wird, z

  1. Legen Sie eine externe Referenzspannung an den Eingang an
  2. Eingang kalibrieren
  3. Ausgang auf Eingang schalten
  4. Ausgabe selbst kalibrieren (anpassen, bis die Ausgabe der Referenz entspricht)

Alternativ könnte ein externer Komparator mit der Referenzspannung für die Rückkopplung verwendet werden (was eine Eingabe und eine Routine erfordert, um nach dem korrekten Ausgabewert zu suchen). Natürlich sind handelsübliche Prüfgeräte mit Steuerschnittstellen erhältlich und ermöglichen die direkte Einstellung/Messung von analogen Signalen zur Berechnung von Kalibrierwerten.

Das Schreiben der Kalibrierdaten in das Gerät oder den angeschlossenen Speicher erfordert entsprechende Datenstrukturen/Adressen, die von der Firmware verwendet werden. Die Daten könnten nach Möglichkeit direkt in den Speicher geschrieben werden (Einschränkungen des Flash-Speichers, z. B. Löschzyklus, Blockgröße) oder in das Firmware-/EEPROM-Image eingebettet werden, bevor die endgültige Produktionsfirmware geschrieben wird. Wenn die Firmware über eine Kalibrierungsschnittstelle verfügt, könnte diese alternativ verwendet werden, um diese Werte nach dem Flashen zu übertragen/aktualisieren, sobald das Gerät läuft.

Was die ID und die Dokumentation anbelangt, so kann, wenn keine Hardware-ID in den Geräten vorhanden ist, eine von der Testumgebung generiert und auf das Gerät geschrieben werden. Firmware- und Produktinformationen können in die Datenbank geschrieben und an den Etikettendrucker zur physischen ID des Geräts gesendet werden.

Natürlich ist jede Lösung immer ein Kompromiss und kann nur auf der Grundlage der Details der Testanforderungen weiter angegangen werden.

Ich wäre an weiteren Ideen oder Hinweisen auf Berichte über Implementierungen interessiert.


Siehe auch:

Antworten (1)

Viele kostenlose ARM-Programmierer (ST-LINK-Dienstprogramm, Jlink usw.) verfügen über den automatischen Modus. Normalerweise verwende ich das ST-LINK-Dienstprogramm + Pogo-Pins. Wenn das Gerät angeschlossen ist, erkennt das ST-LINK-Dienstprogramm es, programmiert die Blitze, setzt die Optionsbits (z. B. Speicherschutz) und fragt nach der Gerätetrennung - wartet dann auf eine andere. Selbst wenn Sie es manuell tun, können Sie 100-200 Geräte / Stunde programmieren.

Die Kalibrierung ist schwieriger, als Sie haben müssen

  1. Kalibrierungsdienstprogramme in Ihrer Software - oft mit der Signalisierung auf dem Pin, wenn die Kalibrierung fertig ist.

  2. Software auf der PC-Seite - normalerweise schreibe ich meine eigenen Programme dafür. Es stellt also die Kalibrierdaten ein und wartet auf die Bestätigung vom Gerät, stellt weitere ein und so weiter. Der Signalisierungs-Pin muss nicht dediziert werden – Sie brauchen ihn nur während der Kalibrierung. Es wird nur ein Pad für den Pogo-Pin benötigt.