Página 1 de 2

LPC1343 + bootloader USB

MensagemEnviado: 22 Jun 2011 07:17
por cristian
levei 3 dias fazendo minha placa para lpc1343 , passei um dia pra fazer ele funcionar com o bootloader via USB....enffim . funcionou



desde q alimentei a plca q fica 3 leds aceso com 1,8v ...

mas ao ligar no usb ele ja entra no bootloader , aparece o firmware.bin com 32k , ai pego o o meu firmware.bin gerado pelo keil e jogo no LPC blza

dou o reset ai ele vai e se conecta denovo com o bootloader .....

ai tiro o cabo usb e alimento com fonte externa

mas mesmo assim o codigo q fiz nao funciona

alguem pode me dizer , oque ta fazendo o lpc so ao ligar conectar no pc

com bootloader.

minha placa caseira

http://www.youtube.com/watch?v=Xjcs4axwa5k

MensagemEnviado: 22 Jun 2011 09:07
por cristian
tava olhando sera q é pq o USBVBUS fica energizado quando liga na USB???

MensagemEnviado: 22 Jun 2011 09:42
por proex
Só deve haver tensao no pino VBUS quando o cabo USB estiver conectado (e energizado com 5V).

Depois de retirado o cabo, sua plaquinha deve ser alimentada com fonte própria.

Veja esse esquema:

http://www.microbuilder.eu/Files/Projec ... c_v1.6.pdf

MensagemEnviado: 22 Jun 2011 09:50
por cristian
esta assim ....

mas o meu problema é que so em conectar no USB ele ntra no BOOTLOADER ....

outra cosia o .bin que tenho de gravar no LPC tem q ter o nome FIRMWARE.BIN , ou pode ser qualquer nome com extençao .bin

MensagemEnviado: 22 Jun 2011 09:55
por RobL
Se seu bootloader for versão 5.2 há um problema (bug) que pode ser resolvido inicializando o endereço da memo desta forma :
*((unit32_t *)(0x1000 0054)) = 0x0;

O pino PIO0_1 tem que estar alto depois do reset.

E claro, seus arquivos de config da inicialização deve estar setado corretamente, ou deixar por default para teste.

MensagemEnviado: 22 Jun 2011 10:01
por cristian
como saber a versao do bootloader ?

este comando coloco onde no codigo ?

*((unit32_t *)(0x1000 0054)) = 0x0;

o pino PIO0_1 esta em nivel alto ....

alguem teria um codigo so pra testar meu LPC ... pq ate agora so tenho

3 leds acesos nos PIO3 o UART nao funciona ...

e o bootloader toda hora conecta

e outra o arquivo BIN q jogo pro LPC tem 4KB mas ao conectar depois de graado ele aparece com 32KB é normal:?

MensagemEnviado: 22 Jun 2011 12:01
por RobL
Em cima do chip está escrito LPC1343 blablabla e finalmente 1X.
Se tiver este 1X é a versão 5.2
NOTA: Só tenho isto como informação, não como prática. Sei que se le pelo ISP também, mas nunca fiz isto. Este seria o meio mais seguro de ver a versão.

Veja esses detalhes de boot no manual que tem tudo por lá.

MensagemEnviado: 22 Jun 2011 12:51
por RobL
Você disse que o pino PIO0_1 está alto, porém, se ele subir 3ms após o reset, vai entrar no modo ISP. Ele tem que estar alto sempre antes e depois do reset. Procure retardar o seu reset com um cap maior, como experiência.

Só como informação para tentar, se não for algo mais simples:
Há como desabilitar essa varredura nesse pino, mas não sei lhe dizer se isto vai impossibilitar um novo bootloader, portanto, não faça sem saber, ou tenha o Magicflash a mão, para restaurar.

MensagemEnviado: 22 Jun 2011 13:58
por cristian
nao coloquei cap no pino do reset ele so ta com um reisitor de 10k ao +3,3v assim como o ISP , todos 2 com uma chave tactil ...


ainda nao tenho nada de gravaçao , por isso optei pelo LPC1343 pois é via USB a gravaçao ,

queria ter certeza q meu codigo esta sendo gravado....

alguem teira um codigo simples q so mandasse uma string pela serial , so pra saber q funciona minha palca e o erro é no meu codigo


TEM UMA SEMANA Q NAO DURMO DIREITO TENTANDO FAZER ISSO FUNCIONAR FICO ATE 1H DA MANHA E ACORDO 6H PRA TRABALAHR

MensagemEnviado: 22 Jun 2011 14:10
por RobL
Já tentou ressetar na mão e ver se seus leds operam conforme seu programa? Com Vdd estável : dê um reset no pino.

Como a placa é sua, não custa lembrar: Tem capacitores cerâmico adequados entre o VDD e VSS ?

Basta ter um código pisca led para ver se seu programa está ok.

MensagemEnviado: 22 Jun 2011 20:32
por cristian
realmente parace q nao ta gravando o LPC pela USB

jogeui no bixinho o arquivo teste.bin de 4kb , ai resetei quando ele voltou tava firmware.bin de 32kb


ai coloquei abaixo da main o codigo

*((unit32_t *)(0x1000 0054)) = 0x0;


so que deu este erro

main.c(42): error: #18: expected a ")"


e os leds acesos estao com 1,70V mesmo resetando e segurando os leds ficam acesos

ja corri esta placa toda atras de curto e nao achei nada


e ai pra onde vou ?

ja coloquei os capacitores

MensagemEnviado: 22 Jun 2011 21:18
por cristian
FUNCIONOU PORRAAAAAAAAAAAAAAAAA........


gravei usando o flashmagic o arquivo hex

agora o bootloader é realmente 5.2 , e pelo usb nao vai de forma nenhuma , aquele codigo quando coloco da erro


os leds ficam meio acesos mas pisca normal so que nunca ficam com 0v sempre com 1,70v

MensagemEnviado: 23 Jun 2011 10:16
por RobL
Os leds ficam com 1,7V devido estar com corrente muito alta. Não use mais que 4mA nessas portas. Há 3 pinos que aturam até 20mA , dois pinos no SPI e uma porta por aí que não lembro.

Isso acima é válido se não for um problema com frequência alta. Se tiver certeza que há um pulso lento, ordem de grandeza de um segundo, então é corrente alta. Você deve estar acendendo o led com nivel zero.

O código é para modificar nos arquivos de inicialização. Tem que ver onde entraria no Keil. Deve estar nos arquivos CMSIS. Certamente deve ser colocado antes do main().

O problema é que a maioria do pessoal usa kits, como eu, e fica mais difícil de lhe ajudar, pois não vamos ter esses problemas. Mas o seu caminho é o melhor para aprender, sem dúvidas.

MensagemEnviado: 23 Jun 2011 10:24
por cristian
aqui eu coloqeui os leds ao gnd com resistor de 470R , acho q isso foi meu erro ....

mas tem um buzzer q estou usando um transistor BC547 para acionar comn resistor de 3k3 na base ....

pode ser q os leds esteja interferindo na porta do bc tb ....

a freq esta 1 hz para piscar os leds

vou modificar a ligaçao dos leds

agora tenho q ver onde colocar este codigo no CMSIS , no manual do lpc fala deste comando , mas nao fala onde colocar ...

MensagemEnviado: 23 Jun 2011 10:56
por RobL
Tente colocar no seu arquivo (arquivo do usuario) mas antes do main(), pois veja que é inicialização de um ponteiro que deve ser lido antes do main(). Não mexa por agora no CMSIS. A coisa deve ser mais simples.
Tentei ver se encontrava algo no 1343, quanto a este ponteiro, nos exemplos do LPCXPresso, mas não achei nada e o chip é bootloader V 5.2 !!!
Numa rápida olhada, não há nada no main() e não encontrei nos arquivos do CMSIS.

editando...
Desculpe-me: Claro que não vou encontrar nada nesses exemplos, usa JLINK e não USB. Vou ver se encontro um exemplo que use o bootloader. Para não se confundir, o Jlink se comunica com o PC via USB mas entre o Jlink e o micro é JTAG mesmo.