Was ist ein guter Weg, um das Programm auf einem SyncMOS 5964 im Schaltkreis zu aktualisieren?

7

Ich möchte etwas, das einen PQFP SyncMOS SM5964-Chip neu programmieren kann, der bereits auf die Zielplatine gelötet ist. Ich stelle mir ein Flachbandkabel vor, das ich zwischen einem auf der Zielplatine gelöteten 2x8-Header-Anschluss und einem 2x8-Header-Anschluss auf einem Chip-Programmierer stecke, wobei der Chip-Programmierer an einen seriellen Standard-PC-Anschluss oder einen USB-Anschluss angeschlossen wird .

  • Gibt es einen Standardstecker und eine Pinbelegung, die ich auf der Zielplatine für die In-Circuit-Programmierung eines vollständig leeren SM5964-Chips entwerfen sollte, der auf die Platine gelötet ist? (Bei älteren Karten kann ich einen solchen Stecker vorübergehend mit einer Reihe von Drähten von diesem Stecker an die Stifte des Chips anschließen.)
  • Gibt es einen solchen Standard-In-Circuit-Programmieranschluss für andere 8051- und 8052-Chips?
  • Gibt es einen preisgünstigen Programmierer, der einen solchen leeren SM5964-Chip programmieren kann, der bereits auf die Zielplatine gelötet ist?
  • Gibt es eine Standard-Bootloader-Firmware für diesen Chip?

Bisher haben meine Websuchen einige Chip-Programmierer wie den 295 - Dollar- XPRO-5000 gefunden , die den SyncMOS SM5964 mit einem großen ZIF-Sockel und einem PQFP-Adapter programmieren können. Ich nehme an, ich könnte einige Drähte zwischen einer DIP-Buchse und einer Buchse verlöten, die DIP-Buchse in die ZIF-Buchse eines solchen Programmiergeräts einführen und die Buchse in eine In-Circuit-Programmier-Kopfzeile auf der Zielplatine stecken. Aber es scheint unnötig kompliziert.

Ich habe erwartet, Antworten auf einige dieser Fragen unter http://8052.com/ zu finden . Vielleicht suche ich am falschen Ort.

Davidcary
quelle

Antworten:

9

Ich kann die 8051-spezifischen Fragen nicht beantworten, aber ich kann Ihnen bei Ihrem ersten Problem helfen.

Die Standardmethode in der Industrie (zumindest soweit ich das beurteilen kann) ist die Verwendung von Pogo-Pins: (Quelle: sparkfun.com )Bild

Der Goldteil klebt durch ein Protoboard oder eine andere Leiterplatte. Sie schließen Ihren Programmierer an diese Schaltung an. Dieses Stück Leiterplatte (oder etwas Dickeres und Robusteres wie Masonite oder Acryl, wenn Sie Hunderte von Brettern verwenden) hat auch größere Stifte, die durch Löcher in Ihrem Zielbrett gehen, um Ihr Zielbrett genau über den Pogo-Stiften zu positionieren. Durch leichten Druck auf die Platine wird ein Kontakt zwischen den federbelasteten Pogo-Pins und den Testpunkten auf der Zielplatine hergestellt.

Die Firma, bei der ich arbeite, verwendet diese Art von Stiften, um jede der Millionen Leiterplatten zu programmieren, die sie jedes Jahr herstellen, und jede Spur hat einen winzigen Testpunkt, der von einem Tester durch diese Stifte geprüft wird.

Wenn Sie einen Debug-Header möchten, gibt es andere Standardmethoden. Ich bin mit diesem Chip völlig unbekannt, daher kann ich das für Sie nicht beantworten. 8-, 14- und 20-Pin-Header sind für andere Geräte üblich.

BEARBEITEN: Ich habe einen kurzen Blick auf das Datenblatt geworfen und auf Seite 10 gefunden:

3. In-System Programming (ISP) -Funktion
Der SM5964 kann über eine interne Hardwareschaltung ein Blitzsteuersignal erzeugen. Der Benutzer verwendet das Flash-Steuerregister, das Flash-Adressregister und das Flash-Datenregister, um die ISP-Funktion auszuführen, ohne den SM5964 aus dem System zu entfernen. Der SM5964 bietet interne Flash-Steuersignale, mit denen Flash-Programm- / Chiplösch- / Seitenlösch- / Schutzfunktionen ausgeführt werden können. Der Benutzer muss jede Art von Schnittstelle entwerfen und verwenden, über die SM5964 Daten eingeben kann. Der Benutzer verwendet dann das ISP-Dienstprogramm, um die Funktionen Flash-Programm / Chip löschen / Seiten löschen / schützen auszuführen.
3.1 ISP-Serviceprogramm
Das ISP-Dienstprogramm ist ein vom Benutzer entwickeltes Firmware-Programm, das sich im Bereich des ISP-Dienstprogramms befindet. Nachdem der Benutzer das ISP-Dienstprogramm entwickelt hat, bestimmt er die Größe des ISP-Dienstprogramms. Der Benutzer muss das ISP-Dienstprogramm im SM5964 für den ISP-Zweck programmieren. Das ISP-Dienstprogramm wurde vom Benutzer so entwickelt, dass es alle Funktionen enthält, die sich auf die Flash-Speicherprogrammierungsfunktion sowie das Kommunikationsprotokoll zwischen SM5964 und dem Host-Gerät beziehen, das Daten an den SM5964 ausgibt. Wenn der Benutzer beispielsweise die UART-Schnittstelle zum Empfangen / Senden von Daten zwischen SM5964 und dem Host-Gerät verwendet, sollte das ISP-Dienstprogramm eine Baudrate, eine Prüfsummen- oder Paritätsprüfung oder einen Fehlerprüfungsmechanismus enthalten, um Datenübertragungsfehler zu vermeiden. Das ISP-Dienstprogramm kann im aktiven oder im Leerlaufmodus SM5964 gestartet werden. Es kann nicht im Power-Down-Modus gestartet werden.

Es sieht also so aus, als könnten Sie ein Bootloader-Programm bereitstellen, um die Daten von jeder beliebigen Schnittstelle einzulesen. Dies kann ein GPIO oder der UART sein, auf den Sie mit Pogo-Pins zugreifen, oder Sie können zu einem vorhandenen Anschluss auf der Platine gehen. Wie bringt man dieses Programm zum Laufen?

3.4
ISP-Serviceprogramm initiieren Um das ISP-Serviceprogramm zu initiieren, müssen Sie den Programmzähler (PC) mit der Startadresse des ISP-Serviceprogramms laden und ausführen. Es gibt zwei Möglichkeiten, dies zu tun:
(1) Leer-Reset. Ein Hardware-Reset mit leerer Flash-Adresse ($ 0000 = # FFH) lädt den PC mit der Startadresse des ISP-Serviceprogramms.
(2) Durch Ausführen der Sprunganweisung kann die Startadresse des ISP-Dienstprogramms auf den PC geladen werden.

Ich habe jedoch keine Ahnung, wie Sie das ISP-Programm auf den leeren Chip bringen sollen. Auf dieser Seite finden Sie einige Programme und Programmierer. Der MSM9042 entspricht eher Ihren Wünschen für die In-Circuit-Programmierung (ohne Sockel).

Kevin Vermeer
quelle