Existe um conector de programação padrão em circuito para chips LPC?

8

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)?

Wouter van Ooijen
fonte
2
Existem conectores padrão para JTAG e SWD, mas não há um conector padrão para o carregamento do programa por meio de uma conexão serial.
Leon Heller
Por falta de um padrão, existe algum conector que é frequentemente usado? Ou mesmo uma única placa que possua esse conector?
Wouter van Ooijen
Basta usar um cabeçalho com três pinos - Gnd, Tx e Rx.
Leon Heller
Para 'mãos livres', são necessários um ou dois pinos extras: reset e BootModeEnable (podem ser combinados ao custo de alguns circuitos extras).
Wouter van Ooijen

Respostas:

3

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

BSEE
fonte
Você não precisa usar energia do usb para estabelecer um terreno comum, é o suficiente para unir os motivos.
precisa
1

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.

Chris Stratton
fonte
Eu considerei essa abordagem, mas prefiro seguir a abordagem mais ou menos padrão de duas linhas de aperto de mão. Isso deixa a opção aberta para comandar uma redefinição que não seja da carga de inicialização e salva alguns componentes na placa de destino.
Wouter van Ooijen
1

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).

insira a descrição da imagem aqui pinagem do conector

insira a descrição da imagem aqui

insira a descrição da imagem aqui diagrama de circuito do programador ('dongle') insira a descrição da imagem aqui

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.

Wouter van Ooijen
fonte
0

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/

Malkocoglu
fonte
Esta placa possui o hardware da interface serial (no caso: chip max232, mas poderia ser um FT232RL ou algo mais) na placa de circuito impresso; portanto, não há conector que transmita os sinais que eu quero interface.
Wouter van Ooijen
Na segunda página, há a interface JTAG. Você tem que usar um adaptador JTAG no lado do PC, mas no PCB, não há nenhum hardware adicional, como RS232 ...
Malkocoglu
Eu quero usar a interface serial, não JTAG. Muito complicado, muitas linhas de sinal.
Wouter van Ooijen
O SWD requer apenas dois ou três sinais. Você obtém a depuração, o que é muito útil.
Leon Heller
2
É verdade, mas ao custo de uma interface mais complexa no lado do PC. (E eu raramente usar um depurador, mesmo se eu tiver um disponível)
Wouter van Ooijen
0

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.

Kris Bahnsen
fonte
1
Conheço o lpcexpresso, tenho 1114, 1343, 1769 e o rodapé. Coisas legais (embora eu tenha abandonado o link IDE e LPC com nojo), mas não adequado para o que eu quero. Minha PCB terá no máximo 20 x 50 mm.
Wouter van Ooijen
@WoutervanOoijen, eu uso o vim e tenho todas as ferramentas configuradas para serem executadas via linha de comando. Minha placa é um pouco maior, mas deve funcionar da mesma forma. No passado, quando fiz projetos pequenos como esse, fiz com que os pinos de programação aparecessem em blocos maiores e, em seguida, montei um gabarito personalizado para conectá-los através de pinos de mola e mantê-lo no lugar. Eu realmente não conheço nenhuma solução pronta para uso em um conector "comum / padrão" para conectar à sua PCB.
Kris Bahnsen
0

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.

Drazen Cika
fonte
(comente alguns 6 anos depois ...) Não quero usar o conector RS232 padrão, isso seria um desperdício de circuitos (nos dois lados). Quero circuitos mínimos no lado do alvo (essencialmente 0).
Wouter van Ooijen