LPC1343 + bootloader USB

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

LPC1343 + bootloader USB

Mensagempor cristian » 22 Jun 2011 07:17

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
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor cristian » 22 Jun 2011 09:07

tava olhando sera q é pq o USBVBUS fica energizado quando liga na USB???
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor proex » 22 Jun 2011 09:42

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
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor cristian » 22 Jun 2011 09:50

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
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor RobL » 22 Jun 2011 09:55

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.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor cristian » 22 Jun 2011 10:01

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:?
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor RobL » 22 Jun 2011 12:01

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á.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor RobL » 22 Jun 2011 12:51

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.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor cristian » 22 Jun 2011 13:58

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
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor RobL » 22 Jun 2011 14:10

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.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor cristian » 22 Jun 2011 20:32

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
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor cristian » 22 Jun 2011 21:18

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
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor RobL » 23 Jun 2011 10:16

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.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor cristian » 23 Jun 2011 10:24

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 ...
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor RobL » 23 Jun 2011 10:56

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.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Próximo

Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x