Gibt es einen Standard-In-Circuit-Programmieranschluss für LPC-Chips?


8

Die verschiedenen LPC-Mikrocontroller-Chips verfügen über einen Startmodus, der die serielle Kommunikation akzeptiert und das empfangene Programm in Flash schreibt. Ich möchte eine Leiterplatte mit und LPC1114 herstellen , die in der Schaltung programmiert werden muss, mit nur minimalen Schnittstellenschaltungen auf der Leiterplatte. Gibt es einen Standardanschluss für die Versorgung der erforderlichen Signale (GND, RxD, TxD, Reset, BootModeEnable)?


2
Es gibt Standardanschlüsse für JTAG und SWD, aber keinen Standardanschluss für das Laden von Programmen über eine serielle Verbindung.
Leon Heller

Gibt es mangels eines Standards einen Stecker, der häufig verwendet wird? Oder sogar eine einzelne Karte, die einen solchen Anschluss hat?
Wouter van Ooijen

Verwenden Sie einfach einen Header mit drei Pins - Gnd, Tx und Rx.
Leon Heller

Für "Hände weg" werden ein oder zwei zusätzliche Pins benötigt: Reset und BootModeEnable (können auf Kosten einiger zusätzlicher Schaltkreise kombiniert werden).
Wouter van Ooijen

Antworten:


3

Ich benutze Sparkfuns USB-zu-UART-Karte. Ich bringe UART0 heraus, setze zurück und isp zu Headern. Ich verbinde Reset und ISP mit Jumpern mit Masse und benutze dann FlashMagic. Dies scheint nur dann richtig zu funktionieren, wenn ich das Gerät auch über USB mit Strom versorge, sodass die Gründe häufig sind.

Sparkfuns Board:

https://www.sparkfun.com/products/718


Sie müssen den USB-Anschluss nicht mit Strom versorgen, um eine gemeinsame Basis zu schaffen. Es reicht aus, die Basis miteinander zu verbinden.
Chris Stratton

1

Wenn Sie einen Stecker so einrichten, dass er mit der Header-Version eines seriellen Niederspannungs-FTDI-USB-Kabels kompatibel ist, müssen Sie keine Verträge für die Herstellung kundenspezifischer Kabel abschließen.

Sie können den Startmodus von einer Statuszeile aus steuern und den Reset mit einer Kappe an diesen koppeln (ich glaube, ich habe einen Transistor als Wechselrichter verwendet, als ich dies mit einem ST-Teil getan habe). Durch Deaktivieren und erneutes Auswählen des Startmodus wird der Chip zurückgesetzt und für den Download vorbereitet.


Ich habe diesen Ansatz in Betracht gezogen, aber ich würde mich lieber an den mehr oder weniger standardmäßigen Zwei-Handshake-Linien-Ansatz halten. Dadurch bleibt die Option offen, einen Reset ohne Bootload zu befehlen, und es werden einige Komponenten auf der Zielplatine gespeichert.
Wouter van Ooijen

1

Da es keinen Standard zu geben schien, traf ich meine eigene Wahl: einen rechtwinkligen 2x4-Stiftkopf für die Zielplatine und eine ebenso weibliche Buchse für die Programmierplatine. Der Programmierer verfügt über einen FT232RL oder ähnliches, einen 5V-> 3,3V-Regler und einen Schalter zum Deaktivieren der Stromversorgung der Zielplatine (erforderlich, um den Zielchip in den Programmiermodus zu zwingen, wenn der Reset-Pin als GPIO neu bestimmt wurde).

Geben Sie hier die Bildbeschreibung ein Pinbelegung des Steckers

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein Schaltplan des Programmiergeräts ('Dongle') Geben Sie hier die Bildbeschreibung ein

Programmierer mit einer minimal bestückten LPC1114-Zielplatine.

Ich verwende lpc21isp als Programmiertool auf dem PC (Open Source, einfach für Windows oder Linux kompilierbar), musste aber dem Code eine Zeile hinzufügen, da die Anwendung nach einem Download gestartet wird (zum Anfang des Codes springen). funktioniert nicht für einen Cortex.


0

Ich habe vorher nicht mit LPC1114 gearbeitet, aber schauen Sie sich die folgende Adresse an. Links sehen Sie einen Link zu einer Schaltplandatei ...

http://www.keil.com/mcb1000/


Diese Karte verfügt über die Hardware der seriellen Schnittstelle (in diesem Fall: max232-Chip, kann aber auch eine FT232RL oder etwas anderes sein) auf der Platine, sodass kein Anschluss vorhanden ist, der die Signale überträgt, die ich verbinden möchte.
Wouter van Ooijen

Auf der zweiten Seite befindet sich die JTAG-Schnittstelle. Sie müssen einen JTAG-Adapter auf der PC-Seite verwenden, aber auf der Leiterplatte gibt es keine zusätzliche Hardware wie RS232 ...
Malkocoglu

Ich möchte die serielle Schnittstelle verwenden, nicht JTAG. Zu komplizierte, zu viele Signalleitungen.
Wouter van Ooijen

SWD benötigt nur zwei oder drei Signale. Sie erhalten Debugging, was sehr nützlich ist.
Leon Heller

2
Stimmt, aber auf Kosten einer komplexeren Schnittstelle auf der PC-Seite. (Und ich benutze selten einen Debugger, auch wenn ich einen zur Verfügung habe)
Wouter van Ooijen

0

Ich baue tatsächlich etwas mit dem gleichen Mikro. Ich habe gerade eines davon aufgenommen: http://ics.nxp.com/lpcxpresso/ für ~ 20 US-Dollar von digikey, die "Ziel" -Seite der Platine abgeschnitten und einen benutzerdefinierten Anschluss auf der "LPC-Link" -Seite verkabelt mit meinem Programmierheader arbeiten. Die von CodeRed erstellte Umgebung ist ärgerlich, da sie auf Eclipse basiert (ich hasse Eclipse), aber sie funktioniert unter Windows, Linux und möglicherweise Mac. Sie haben Anweisungen für alle Befehlszeilenprogramme, um mit der LPC Link-Schnittstelle zu arbeiten.

Ich habe eine Umgebung unter Linux eingerichtet, die nur ausgeführt werden soll. make dlSie initialisiert die Verbindung, programmiert sie und aktiviert Sicherheitsbits, alles über USB- und SWD-Verbindungen zum LCP1114. Kann sogar zum Debuggen verwendet werden, sofern Sie eines der SWD-Signale nicht wiederverwenden.

Es ist nicht seriell, wie Sie es suchen, aber es funktioniert wie ein Zauber.


1
Ich kenne die lpcexpressos, ich habe 1114, 1343, 1769 und die Fußleiste. Nettes Zeug (obwohl ich sowohl die IDE als auch den LPC-Link angewidert über Bord geworfen habe), aber nicht für das geeignet, was ich will. Meine Platine ist maximal 20 x 50 mm groß.
Wouter van Ooijen

@WoutervanOoijen, ich verwende vim und habe alle Tools so eingerichtet, dass sie über die Befehlszeile ausgeführt werden können. Mein Board ist etwas größer, sollte aber trotzdem funktionieren. In der Vergangenheit, als ich kleine Projekte wie dieses durchgeführt habe, habe ich die Programmierstifte zu großen Pads herausgebracht und dann eine benutzerdefinierte Schablone angebracht, um diese über federbelastete Stifte zu verbinden und an Ort und Stelle zu halten. Ich kenne keine Standardlösungen für einen "Common / Standard" -Anschluss zum Anschließen an Ihre Leiterplatte.
Kris Bahnsen

0

Wenn Sie eine serielle Programmierung mit dem Standardanschluss (dh RS232) wünschen, warum implementieren Sie nicht einen normalen UART (MAX3232 oder so) mit einem Standard-DB9-Stecker auf der LPC-Seite? Dann verwenden Sie einfach das Extender-DB9-Kabel (Stecker zu Buchse) zum PC (oder verwenden Sie das Seriell-zu-USB-Kabel, wenn Ihr PC keinen seriellen Anschluss hat). Stecken Sie auf jeden Fall eine DB9-Buchse auf Ihre SPS-Karte, und Sie müssen niemals Ihr serielles Kabel herstellen :-). Vergessen Sie nicht, die Stifte richtig zu verdrahten. Die Verlängerungskabel sind gerade (1-1, 2-2, ... 9-9).

Wenn der Platz auf der Platine nicht ausreicht (nicht genügend Platz für DB9), können Sie nur einen 2 x 5-Pin-Header bereitstellen.

Natürlich können Sie auch Ersatz-MAX3232-Level-Shifter verwenden, um Ihr Board in den Reset / Boot-Modus zu zwingen, wie ich es auf meinem NXP / AT89C51Rx2-basierten Board auch mit Flashmagic getan habe. Nach dem gleichen Prinzip übernimmt der Falshmagic die Kontrolle über den Starteintrag über die serielle Leitung.

Alles in allem würde ich mich für SWD / JTAG entscheiden und hatte Debugging zur Verfügung.


(Kommentar ca. 6 Jahre später ...) Ich möchte nicht den Standard-RS232-Stecker verwenden, das wäre eine Verschwendung von Schaltkreisen (auf beiden Seiten). Ich möchte eine minimale Schaltung auf der Zielseite (im Wesentlichen 0).
Wouter van Ooijen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.