¿Existe un conector de programación estándar en circuito para chips LPC?


8

Los diversos chips del microcontrolador LPC tienen un modo de arranque que acepta la comunicación en serie y escribe el programa recibido en Flash. Quiero hacer una PCB con y LPC1114 que debe programarse en circuito, con un circuito de interfaz mínimo en la PCB. ¿Existe un conector estándar para suministrar las señales requeridas (GND, RxD, TxD, Reset, BootModeEnable)?


2
Hay conectores estándar para JTAG y SWD, pero no hay un conector estándar para cargar programas mediante una conexión en serie.
Leon Heller

Por falta de un estándar, ¿hay algún conector que se use con frecuencia? ¿O incluso una sola placa que tenga dicho conector?
Wouter van Ooijen

Simplemente use un encabezado con tres pines: Gnd, Tx y Rx.
Leon Heller

Para 'manos libres' se necesitan uno o dos pines adicionales: restablecer y BootModeEnable (podría combinarse a costa de algunos circuitos adicionales).
Wouter van Ooijen

Respuestas:


3

Yo uso la placa USB a UART de Sparkfun. Saco UART0, reinicio e isp a los encabezados. Conecto reset e isp a tierra con puentes, luego uso FlashMagic. Esto solo parece funcionar bien si también alimento el dispositivo desde USB, por lo que los motivos son comunes.

El tablero de Sparkfun:

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


No necesita tomar el poder del usb para establecer un terreno común, es suficiente para unir los terrenos.
Chris Stratton

1

Si configura un conector para que sea compatible con la versión de encabezado de un cable serie USB FTDI de bajo voltaje, tiene la opción de no tener que contratar la fabricación de cables personalizados.

Puede conducir el modo de arranque desde una línea de estado y acoplar el restablecimiento a eso con un límite (creo que podría haber usado un transistor como inversor cuando hice esto con una parte ST). Luego, al deseleccionar y volver a seleccionar el modo de inicio, se reiniciará el chip y se preparará para la descarga.


Consideré ese enfoque, pero prefiero seguir con el enfoque más o menos estándar de dos líneas de apretón de manos. Eso deja la opción abierta para ordenar un reinicio sin carga de arranque y guarda algunos componentes en la placa de destino.
Wouter van Ooijen

1

Como no parecía existir ningún estándar, tomé mi propia decisión: un encabezado de clavija en ángulo recto de 2x4 para la placa de destino, y un conector hembra idéntico para la placa 'programadora'. El programador tiene un FT232RL o similar, un regulador de 5V-> 3.3V y un interruptor para deshabilitar la alimentación a la placa de destino (se requiere para forzar el chip de destino al modo de programación cuando el pin de reinicio se ha reutilizado como GPIO).

ingrese la descripción de la imagen aquí conector pinout

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí diagrama del circuito del programador ('dongle') ingrese la descripción de la imagen aquí

Programador con una placa de destino LPC1114 mínimamente poblada.

Utilizo lpc21isp como herramienta de programación en la PC (código abierto, fácilmente compilado para Windows o Linux), pero tuve que agregar una línea al código porque la forma en que inicia la aplicación después de una descarga (salta al inicio del código) no funciona para una corteza.


0

No trabajé con LPC1114 antes, pero eche un vistazo a la siguiente dirección. A la izquierda, verá un enlace a un archivo esquemático ...

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


Esta placa tiene el hardware de interfaz en serie (en este caso: chip max232, pero podría ser un FT232RL u otra cosa) en la PCB, por lo que no hay un conector que lleve las señales que quiero interconectar.
Wouter van Ooijen

En la segunda página, está la interfaz JTAG.
Debe

Quiero usar la interfaz en serie, no JTAG. Demasiado complicado, demasiadas líneas de señal.
Wouter van Ooijen

SWD solo requiere dos o tres señales. Obtienes depuración, lo cual es muy útil.
Leon Heller

2
Es cierto, pero a costa de una interfaz más compleja en el lado de la PC. (Y rara vez uso un depurador, incluso si tengo uno disponible)
Wouter van Ooijen

0

Realmente estoy construyendo algo con el mismo micro. Acabo de recoger uno de estos: http://ics.nxp.com/lpcxpresso/ por ~ $ 20 de digikey, corté el lado "objetivo" de la placa y conecté un conector personalizado en el lado "Enlace LPC" para trabajar con mi encabezado de programación. El entorno creado por CodeRed es molesto ya que está basado en Eclipse (odio Eclipse) pero funciona en Windows, Linux y quizás Mac. Tienen instrucciones para que todos los programas de línea de comandos funcionen con la interfaz LPC Link.

Tengo un entorno configurado en Linux para que simplemente se ejecute make dle inicializará el enlace, lo programará y habilitará los bits de seguridad, todo a través de USB y las conexiones SWD al LCP1114. Incluso se puede usar para la depuración siempre que no reutilice una de las señales SWD.

No es serial como lo que estás buscando, pero funciona de maravilla.


1
Conozco los lpcexpresso, tengo 1114, 1343, 1769 y el zócalo. Cosas buenas (aunque abandoné el enlace IDE y LPC con disgusto), pero no es adecuado para lo que quiero. Mi PCB será de 20 x 50 mm como máximo.
Wouter van Ooijen

@WoutervanOoijen, uso vim y tengo todas las herramientas configuradas para ejecutarse a través de la línea de comandos. Mi tabla es un poco más grande pero debería funcionar igual. En el pasado, cuando hice pequeños proyectos como ese, hice que los pines de programación salieran a paños más grandes, y luego preparé una plantilla personalizada para conectarlos a través de pines con resorte y mantenerlos en su lugar. Realmente no conozco ninguna solución estándar para un conector "común / estándar" para conectar a su PCB.
Kris Bahnsen

0

Si desea programación en serie con el conector estándar (es decir, RS232), ¿por qué no implementa UART normal (MAX3232 o algo así) con una conexión macho DB9 estándar en el lado LPC? Luego, simplemente use el cable DB9 extensor (macho a hembra) hacia la PC (o use el cable serie a usb si su PC no tiene puerto serie). En cualquier caso, coloque un DB9 hembra en su placa PLC y nunca tendrá que fabricar su cable serial :-). No olvide cablear los pines correctamente, los cables de extensión son rectos (1-1, 2-2, ... 9-9).

Si el espacio en el tablero fue un problema (no hay suficiente espacio para DB9), puede proporcionar solo un encabezado de 2 x 5 pines.

Por supuesto, también puede usar cambiadores de nivel MAX3232 de repuesto para forzar su placa en el modo de reinicio / arranque como lo hice en mi placa basada en NXP / AT89C51Rx2 que también usa Flashmagic. El mismo principio, Falshmagic toma el control de la entrada de arranque a través de la línea serie.

Dicho todo esto, iría con SWD / JTAG y tenía la depuración a mi disposición.


(comentario unos 6 años después ...) No quiero usar el conector RS232 estándar, eso sería un desperdicio de circuitos (en ambos lados). Quiero un circuito mínimo en el lado del objetivo (esencialmente 0).
Wouter van Ooijen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.