Esiste un connettore di programmazione In Circuit standard per chip LPC?


8

I vari chip del microcontrollore LPC hanno una modalità di avvio che accetta la comunicazione seriale e scrive il programma ricevuto su Flash. Voglio creare un PCB con e LPC1114 che deve essere programmato in circuito, con un circuito di interfaccia minimo sul PCB. Esiste un connettore standard per fornire i segnali richiesti (GND, RxD, TxD, Reset, BootModeEnable)?


2
Esistono connettori standard per JTAG e SWD, ma non esiste un connettore standard per il caricamento del programma tramite una connessione seriale.
Leon Heller,

Per mancanza di uno standard, c'è qualche connettore che viene spesso utilizzato? O anche una singola scheda che ha un tale connettore ??
Wouter van Ooijen,

Basta usare un'intestazione con tre pin: Gnd, Tx e Rx.
Leon Heller,

Per "mani libere" sono necessari uno o due pin extra: reset e BootModeEnable (potrebbero essere combinati al costo di alcuni circuiti extra).
Wouter van Ooijen,

Risposte:


3

Uso la scheda USB-UART di Sparkfun. Tiro fuori UART0, resetto e isp alle intestazioni. Collego reset e isp a terra con i jumper, quindi uso FlashMagic. Questo sembra funzionare bene solo se alimento anche il dispositivo da USB, quindi i motivi sono comuni.

La scheda di Sparkfun:

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


Non è necessario prendere energia dall'USB per stabilire un terreno comune, è sufficiente unire i motivi.
Chris Stratton,

1

Se si imposta un connettore in modo che sia compatibile con la versione dell'intestazione di un cavo seriale FTDI USB a bassa tensione, si ha la possibilità di non dover contrattare per la fabbricazione di cavi personalizzati.

Puoi guidare la modalità di avvio da una linea di stato e accoppiare il ripristino a quello con un cappuccio (penso che avrei potuto usare un transistor come inverter quando l'ho fatto con una parte ST). Quindi deselezionando e selezionando nuovamente la modalità di avvio si ripristinerà il chip e lo si preparerà per il download.


Ho considerato questo approccio, ma preferirei attenermi all'approccio più o meno standard a due linee di stretta di mano. Ciò lascia aperta l'opzione per comandare un ripristino senza bootload e salva alcuni componenti sulla scheda di destinazione.
Wouter van Ooijen,

1

Dato che nessuno standard sembrava esistere, ho fatto la mia scelta: un'intestazione pin 2x4 ad angolo retto per la scheda target e un connettore femmina idem per la scheda "programmatore". Il programmatore ha un FT232RL o simile, un regolatore 5V-> 3.3V e un interruttore per disabilitare l'alimentazione alla scheda target (necessario per forzare il chip target in modalità di programmazione quando il pin di reset è stato riproposto come GPIO).

inserisci qui la descrizione dell'immagine pinout del connettore

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine schema elettrico del programmatore ('dongle') inserisci qui la descrizione dell'immagine

Programmatore con una scheda target LPC1114 minimamente popolata.

Uso lpc21isp come strumento di programmazione sul PC (open source, facilmente compilabile per Windows o Linux), ma ho dovuto aggiungere una riga al codice perché il modo in cui avvia l'applicazione dopo un download (passa all'inizio del codice) non funziona per un Cortex.


0

Non ho mai lavorato con LPC1114 prima, ma dai un'occhiata all'indirizzo sotto. A sinistra, vedrai un collegamento a un file schematico ...

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


Questa scheda ha l'hardware dell'interfaccia seriale (in questo caso: chip max232, ma potrebbe essere un FT232RL o qualcos'altro) sul PCB, quindi non c'è alcun connettore che trasporta i segnali che voglio interfacciare.
Wouter van Ooijen,

Nella seconda pagina c'è l'interfaccia JTAG. Devi usare un adattatore JTAG sul lato PC, ma sul PCB non c'è hardware aggiuntivo come RS232 ...
Malkocoglu

Voglio usare l'interfaccia seriale, non JTAG. Troppe linee di segnale troppo complicate.
Wouter van Ooijen,

SWD richiede solo due o tre segnali. Ottieni il debug, il che è molto utile.
Leon Heller,

2
Vero, ma a costo di un'interfaccia più complessa sul lato PC. (E raramente uso un debugger, anche se ne ho uno disponibile)
Wouter van Ooijen,

0

In realtà sto costruendo qualcosa con lo stesso micro. Ho appena preso uno di questi: http://ics.nxp.com/lpcxpresso/ per ~ $ 20 da digikey, ho tagliato il lato "target" della scheda e ho cablato un connettore personalizzato sul lato "LPC link" per lavorare con la mia intestazione di programmazione. L'ambiente creato da CodeRed è fastidioso da quando è basato su Eclipse (detesto Eclipse) ma funziona su Windows, Linux e forse Mac. Hanno istruzioni per far funzionare tutti i programmi della riga di comando con l'interfaccia LPC Link.

Ho un ambiente impostato su Linux per l'esecuzione make dle questo inizializzerà il collegamento, lo programmerà e abiliterà i bit di sicurezza, tutto tramite connessioni USB e SWD a LCP1114. Può anche essere utilizzato per il debug a condizione che non si riutilizzi uno dei segnali SWD.

Non è seriale come quello che stai cercando, ma funziona come un fascino.


1
Conosco lpcexpresso, ho 1114, 1343, 1769 e il battiscopa. Bella roba (anche se ho disgustato sia l'IDE che il collegamento LPC), ma non adatto a quello che voglio. Il mio PCB sarà di 20 x 50 mm max.
Wouter van Ooijen,

@WoutervanOoijen, io uso vim e ho tutti gli strumenti impostati per l'esecuzione tramite riga di comando. La mia tavola è un po 'più grande ma dovrebbe funzionare allo stesso modo. In passato, quando ho fatto piccoli progetti del genere, ho fatto in modo che i pin di programmazione uscissero su pad di grandi dimensioni, quindi ho creato una maschera personalizzata per collegarli tramite pin caricati a molla e tenerli in posizione. Non conosco davvero nessuna soluzione standard per un connettore "comune / standard" da collegare al tuo PCB.
Kris Bahnsen,

0

Se si desidera la programmazione seriale con il connettore standard (che significa RS232) perché non si implementa UART normale (MAX3232 o qualcosa del genere) con connessione maschio DB9 standard sul lato LPC? È sufficiente utilizzare il cavo DB9 extender (da maschio a femmina) verso il PC (o utilizzare il cavo da seriale a USB se il PC non dispone di una porta seriale). In ogni caso, metti un DB9 femmina sulla tua scheda PLC e non dovrai mai produrre il tuo cavo seriale :-). Non dimenticare di collegare correttamente i pin, i cavi dell'estensione sono dritti (1-1, 2-2, ... 9-9).

Se lo spazio sulla scheda era problematico (spazio non sufficiente per DB9), è possibile fornire solo un'intestazione a 2 x 5 pin.

Naturalmente, puoi anche usare i cambi di livello MAX3232 di riserva per forzare la tua scheda in modalità reset / boot come ho fatto sulla mia scheda basata su NXP / AT89C51Rx2 anche usando Flashmagic. Lo stesso principio, Falshmagic prende il controllo della voce di avvio tramite linea seriale.

Detto questo, sarei andato con SWD / JTAG e avevo a disposizione il debug.


(commento circa 6 anni dopo ...) Non voglio usare il connettore RS232 standard, sarebbe uno spreco di circuiti (su entrambi i lati). Voglio circuiti minimi sul lato target (essenzialmente 0).
Wouter van Ooijen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.