Os vários chips de microcontrolador LPC têm um modo de inicialização que aceita comunicação serial e grava o programa recebido no Flash. Eu quero fazer uma placa de circuito impresso com e LPC1114 que deve ser programado em circuito, com apenas um mínimo de circuito de interface na placa de circuito impresso. Existe um conector padrão para fornecer os sinais necessários (GND, RxD, TxD, Reset, BootModeEnable)?
microcontroller
lpc
icsp
in-circuit
Wouter van Ooijen
fonte
fonte
Respostas:
Eu uso a placa USB para UART do Sparkfun. Eu trago UART0, redefinir e ISP para cabeçalhos. Conecto reset e isp ao terra com jumpers e depois uso o FlashMagic. Isso só parece funcionar bem se eu também ligar o dispositivo via USB, então os motivos são comuns.
Quadro de Sparkfun:
https://www.sparkfun.com/products/718
fonte
Se você configurar um conector para ser compatível com a versão do cabeçalho de um cabo serial USB FTDI de baixa tensão, poderá optar por não precisar contratar um contrato para a fabricação de cabos personalizados.
Você pode acionar o modo de inicialização de uma linha de status e associar a redefinição a isso com uma tampa (acho que eu poderia ter usado um transistor como inversor quando fiz isso com uma peça ST). Desmarcar e selecionar novamente o modo de inicialização redefinirá o chip e o preparará para o download.
fonte
Como nenhum padrão parecia existir, eu fiz minha própria escolha: um cabeçalho de pino em ângulo reto 2x4 para a placa de destino e um conector fêmea do mesmo tipo para a placa 'programadora'. O programador possui um FT232RL ou similar, um regulador de 5V-> 3,3V e um interruptor para desativar a alimentação da placa de destino (necessária para forçar o chip de destino ao modo de programação quando o pino de redefinição for redefinido como GPIO).
pinagem do conector
diagrama de circuito do programador ('dongle')
Programador com uma placa de destino LPC1114 minimamente povoada.
Uso o lpc21isp como ferramenta de programação no PC (código aberto, facilmente compilado para Windows ou Linux), mas tive que adicionar uma linha ao código porque a maneira como ele inicia o aplicativo após um download (pule para o início do código) não funciona para um córtex.
fonte
Eu não trabalhei com o LPC1114 antes, mas dê uma olhada no endereço abaixo. À esquerda, você verá um link para um arquivo esquemático ...
http://www.keil.com/mcb1000/
fonte
Na verdade, estou construindo algo com o mesmo micro. Acabei de pegar um destes: http://ics.nxp.com/lpcxpresso/ por aproximadamente US $ 20 da digikey, corte o lado "alvo" da placa e conecte um conector personalizado no lado "LPC link" para trabalhar com o meu cabeçalho de programação. O ambiente criado pelo CodeRed é irritante desde o seu Eclipse (eu detesto o Eclipse), mas funciona no Windows, Linux e talvez Mac. Eles têm instruções para todos os programas de linha de comando trabalharem com a interface do LPC Link.
Eu tenho um ambiente configurado no Linux para apenas executar
make dl
e ele irá inicializar o link, programá-lo e habilitar bits de segurança, tudo via USB e as conexões SWD no LCP1114. Pode até ser usado para depuração, desde que você não reutilize um dos sinais SWD.Não é serial como você está procurando, mas funciona como um encanto.
fonte
Se você deseja programação serial com o conector padrão (ou seja, RS232), por que não implementa o UART normal (MAX3232 ou algo assim) com a conexão macho DB9 padrão no lado LPC? Simplesmente use o cabo DB9 do extensor (macho para fêmea) em direção ao PC (ou use o cabo serial para usb se o seu PC não tiver porta serial). De qualquer forma, coloque um DB9 fêmea em sua placa PLC e você nunca precisará fabricar seu cabo serial :-). Não se esqueça de prender os pinos corretamente, os cabos extensores são retos (1-1, 2-2, ... 9-9).
Se o espaço no quadro foi um problema (não há espaço suficiente para DB9), você pode fornecer apenas o cabeçalho de 2 x 5 pinos.
Obviamente, você também pode usar shifters de nível MAX3232 sobressalentes para forçar sua placa no modo de reinicialização / inicialização, como fiz na minha placa baseada no NXP / AT89C51Rx2, também usando o Flashmagic. Mesmo princípio, o Falshmagic assume o controle sobre a entrada de inicialização via linha serial.
Tudo isso dito, eu iria com SWD / JTAG e tinha a depuração à minha disposição.
fonte