[DUVIDA] [RESOLVIDO]como gravar sketchs em um arduino usando USB TTL

Olá galera,

    Eu tava usando um arduino Mega com um shield que tinha alimentação 12 e 5v,  sendo que os 12v alimentava o arduino pelo Vin e os 5V ia direto para funções.

    Dai rolou um acidente, uma peça metálica sobre a bancada fechou o curto levando 12v para lugares que não deviam,   o arduino mega aqueceu e a partir dai passou a não ser mais reconhecido pelo PC.

    Porem, notei que o blink que estava gravado nele, continava fazendo o led 13 piscar, quando alimentado corretamente.

    Pensei então usar um adaptador usb ttl serial pl2303 que eu já uso normalmente pra upar sketchs para montagens de arduinos stand alone,  Mas não funcionou.

    Bem, então peguei um arduino UNO normal, que tá funcionando, e resolvi testar nele,  mas tambem não rolou,  ou seja, se eu ligar um cabo USB nesse arduino UNO, e upar um sketchs ele upa normalmente,  mas se eu usar um USB TTL externo, não funciona.

   A ligação que fiz foi a seguinte:

PL2303                               ARDUINO

DTR                                     RESET

TX                                         RX

RX                                        TX

5V                                          5V

GND                                    GND

   resumindo,  se eu colocar o atmega328 em uma protoboard com a montagem basica standalone,  funciona tudo perfeito, o sketch é upado normalmente,   mas se eu coloco o atmega328 de volta em qualquer placa UNO, e faço a ligação acima,  simplesmente não rola.

   Alguem sabe porque?    o que tô fazendo errado?

Exibições: 2738

Responder esta

Respostas a este tópico

Oi WD, bom dia.

Se voce observar o esquema do arduino UNO, verá que nos pinos D1 e D2  dele (RX e TX), tem internamente

a ligação com o chip dele que faz o interface USB/Atmega.

Ao ligar o seu USB TTL, nestes pinos (RX TX) , como  já tem um carga, não funciona corretamente.

É a mesma coisa se você ligar algo nos pinos 1 e 2 do arduino e tentar carregar um código, não carregará.

Rui

Sim eeeee....   como resolver isso ?

Como carregar um código no UNO pra depois eu poder carregar no meu MEGA que queimou o chip conversor serial dele?

Weider, 

Veja se isso ajuda

Conectando um conversor externo USB Serial no Arduino, teste com CP...

Creio que o seu problema seja o auto reset.

Outra forma é usar um gravador externo ou um arduino como gravador ISP, para gravar o sketch.

https://www.arduino.cc/en/Tutorial/ArduinoISP

Quando for fazer upload, indique o gravador externo.

Weider, 

Retire o ATmega328 do soquete do UNO, depois conecte o 5V, GND, TX, RX e RESET do UNO aos mesmos pinos do MEGA, ligue o cabo USB ao UNO e na IDE selecione o a placa MEGA que estiver usando e ai faça o upload do seu sketch, do UNO será usado como conversor  serial e deverá funcionar como se fosse um arduino mega. A menos que o chip danificado do MEGA esteja colocando os pinos TX e RX em curto com o GND, matando o sinal, tudo irá funcionar normalmente.

Abraço. 

Flavio,

   Essa montagem que você sugeriu é justamente o que eu estava fazendo,  com excessão do caso que não utilizei um circuito tão elaboracom com transistor e capacitor,  mas  a função é basicamente a mesma, ou seja,  pra mantar o arduino funcionando se coloca 5v no pino reset, e para reseta-lo, é só liga-lo ao terra,  dai a montagem que fiz eu usei simplesmente um resistor de 10k do reset para o 5v e liguei o DTR em paralelo,  o que o DTR faz é jogar o GND na hora certa,  isso funciona beleza no sistema normal,  já com o mega nem com o uno não funcionou.

Wiechert,

  Cara, eu já havia tentado essa montagem retirando o atmega328 de um UNO e testei colocar na ide tanto que estava mandando pra um MEGA como pra um UNO que não rolou,  vou tentar novamente,  senão, acho que queimou de vez.

   Tentei usar aquele esquema via SPI,  ele até indica que carregou,  mas o sketch não roda.

   

   Bem,  como sou prevenido tinha comprado um mega reserva,  agora vou usar ele, e já vou mandar pegar outro,   é o jeito.

    Sinceramente,  depois me perguntam porque fiz doação de 3 Arduinos UNO SMD que eu tinha,   esse negocio de chip que eu não posso trocar é complicado,  eu tenho em cima da minha bancada 4 atmegas328 queimados que já troquei de arduinos fazendo testes,   pra mim só se aprende assim, acertando,  errando, levantado e tentando de novo.

Weider

A linha DTR não pode ficar diretamente conectada ao pino RESET do microcontrolador, fiz um teste no CP2102, a linha DTR fica em nivel baixo enquanto a comunicação estiver ativa, só volta a nível alto, quando fecha o terminal serial ou termina a comunicação.

Fiz um segundo teste:

Abri a IDE, e apertei o botão de upload, o DTR ficou em nivel baixo em todas as tentativas de upload, logo o microcontrolador ficaria resetado nessa situação, por isso é colocado um capacitor em série, entre DTR e RESET.

Eu fiz com um transistor, pois o DTR do conversor, não tem corrente suficiente para ativar o RESET, lembrando que na placa do Arduino, há outras coisas "penduradas " nessa trilha.

Agora fui testar e pensei melhor,  apenas um transistor "inverte" o sinal, ou coloco mais um transistor ou uso uma porta lógica não inversora.

Coloquei mais um transistor, dessa forma ficou melhor o resultado, mas o circuito ficou "grande".

Dá pra usar apenas um transistor, usando a configuração coletor comum...

Verdade, vou experimentar depois.

Pessoal,   muito obrigado pela ajuda,   como é fim de semana, só poderei fazer os testes amanhã,  mas já agradeço antecipadamente.

   Quanto a ligar o pino DTR direto,  eu não sei se influencia,  mas tenho alguns conversores USB TTL 2303 e todos vieram sem pino para o RESET dai descobri que era só colocar um capacitor de 0.1uF.no pino DTR e puxar um cabo em série.

 

    No geral, para os stand alone funciona maravilhosamente bem, ja para as placas promtas arduino não,  amanhá vou tertar as dicas que vocês deram,  valeu mesmo.

   

Ola Galera,

    Um feedback pra vocês.

    A ligação sugerida pelo Wiechert retirando o atmega328 de um arduino e tentado gravar outro,  NÃO funciona,  assim como não funciona usar o conversor USB/TTL.

 

    Já a ligação sugerida pelo Flavio Hernan funcionou bem para gravar o UNO usando o gravador USB/TTL,  não funcionou quando usado a ideia de um segundo arduino como gravador,  e funcionou uma vez só para gravar o arduino mega problematico.

    Porem, aos 45 do segundo tempo,  usei o gravador USB/TTL e lembrei de uma sugestão que se não me engano foi o proprio wiechert deu em um post antigo,  o que fiz foi:

- Liguei apenas os pinos 5v-5v ,  GND-GND,  TX-RX, RX-TX  e deixei desligado o reset ou DTR

- Dai apertei o botão reset do MEGA e fiquei segurando.

- Em seguida apertei o botão upar na IDE.

- Aguardei até desaparecer o compilando.. e surgir o carregando... e soltei.

E VOILÁ...   o Arduino Mega voltou a vida !!!

Gostaria de lembrar que reupar o bootloader foi fundamental, pois antes ele nem dava sinal de luz.

  Já testei outros sketchs como a leitura de uma porta analogica, e parece estar tudo ok.

Logo,  gostaria de pedir UM MUUUUUUITO OBRIGADO A TODOS

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço