Como corrigir um erro de não sincronização do AVRdude ao programar o Arduino via cabo USB para serial?

9

Estou tentando criar essa iluminação ambiente para PC. Isso funcionou perfeitamente no meu Arduino Uno. Meu próximo passo foi fazê-lo usando "Arduino em uma placa de ensaio" . Então, comprei um chip ATmega328 em branco e queimei o carregador de inicialização Arduino (para o quadro "Arduino Duemilanove w / ATmega328") nele usando o Arduino IDE e USBasp; e eu sei que isso foi carregado corretamente, pois esse chip ATmega funciona bem no Uno.

Então eu fiz o conversor USB-para-serial usando FT232RL ; mas seus drivers não foram instalados no meu PC (Windows 7 x64). Eu suspeito que superaqueci o chip FTDI de montagem na superfície e o matei enquanto o soldava à mão.

Então, guardei-o de lado e peguei esta ponte do conversor USB-para-serial: (desculpe pelas fotos ruins) usei um ST232CN adicional na minha placa de ensaio, para converter os níveis de tensão de RS232 para TTL, como mostrado neste página . E isso funciona bem, como verifiquei em um teste de loopback. E conectei o pino 9 do ST232 ao pino 2 do ATmega e o pino 10 ao pino 3.

Quando tentei fazer o upload de um exemplo de piscada do Arduino IDE, recebo este erro:

Binary sketch size: 1026 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00

Quando faço o upload detalhado (Shift + Upload), recebo este erro / mensagem:

avrdude: usbdev_open(): did not find any USB device "usb"

Além disso, tentei adicionar resistores pull-up de 1k nos pinos 2 e 3 do ATmega, mas não ajudou. Então eu acho que o problema agora está na comunicação serial do ST232 para o ATmega? E existe alguma conexão especial com o pino Reset do ATmega? Aumentei para 5V com um resistor de 10k.

potato_in_my_ear
fonte
Um esquema e ou imagem da sua configuração da placa de ensaio ajudaria.
Sptrks
3
Você redefiniu o chip imediatamente antes, ao mesmo tempo ou imediatamente após comandar o upload? Sempre que recebo o erro 'não sincronizado', isso está relacionado ao tempo relativo. Na minha placa de ensaio e no Eclipse / AVRDude, o aterramento do pino de redefinição logo antes ou quando clico no comando de upload é o momento certo. Mas também verificar se o seu PC realmente ver o adaptador quando você ligá-lo.
JRobert
11
@potato_in_my_ear - O formato adequado para postar uma solução não é uma edição, mas uma resposta. Veja abaixo e você verá uma caixa intitulada "Sua resposta" na qual deseja inseri-la. Depois de entrar, as pessoas votarão na sua resposta e você poderá 'aceitá-la' pressionando a marca de seleção à esquerda da resposta.
Kevin Vermeer
11
@potato_in_my_ear: Fico feliz que tenha ajudado. Você é um cavalheiro e um estudioso - farei meu comentário como resposta.
JRobert
2
A solução é que as pessoas parem de fornecer respostas nos comentários!
Kevin Vermeer

Respostas:

6

Sempre que recebi o erro 'não sincronizado', estava relacionado ao fato de eu perder o tempo de redefinição (ou esquecer completamente a redefinição!). Na minha placa de ensaio e no Eclipse / AVRDude, desassociar o pino de redefinição antes ou ao mesmo tempo em que clico no botão de upload é o momento certo. Mas verifique também se o seu PC realmente vê o adaptador quando você o conecta.

Posteriormente, as placas do arduino são criadas para redefinir sempre que uma conexão serial é estabelecida e programaticamente pelo gerenciador de inicialização. Este artigo descreve como ele funciona, e ainda mais interessante, como invadir os painéis anteriores. Não deve ser muito difícil colocá-lo em uma tábua de pão, se você quiser. O chip precisa ter um gerenciador de inicialização compatível, é claro (que você já colocou no seu). Para as tábuas de pão, eu apenas faço a dança do botão de reset / clique do mouse.

JRobert
fonte
Encontrei alguém dizendo que você pode fazer com que a cadeia de ferramentas do avr faça a redefinição por si mesma editando avrdude.conf ; aqui (nos comentários). Mas não tenho certeza de como fazer isso. Você pode ajudar. Eu odeio pressionar reset o tempo todo ..
Anubis
Isso exigirá suporte de hardware na placa ou na placa de ensaio do Arduino que posteriormente os Aduino incorporaram; código sozinho não pode fazer isso. Baseia-se em um capacitor do DTR serial para a redefinição e um pull-up de redefinição. Se você tem um antigo ou uma placa de ensaio, precisará adicioná-lo. Esta pergunta do EE StackEx e o artigo do blog que citei devem apontar você na direção certa.
JRobert #
2

Como o @JRobert disse nos comentários, o momento certo de aterrar e não aterrar o pino de redefinição no ATmega fez o truque. Continue aterrando o pino de redefinição do ATmega ao clicar em "Upload" e, da mesma forma que mostra "Uploading", desamarre-o.

potato_in_my_ear
fonte
Acabei de adquirir um mini arduino e eu sabia que precisava pressionar o botão de reset para fazer o upload do código, mas não consegui descobrir quando !!! Isso funcionou para mim. Obrigado.
Bob Esponja
0

Eu tive os mesmos erros que eu já vi postados em vários sites. RE: Mensagem do Arduino "avrdude: stk500_getsync (): não está sincronizada: resp = 0x00" ou similar.

Descobri que se eu remover o que estiver conectado ao D0 (o pino [D0] DIGITAL Zero, mais distante das tomadas USB e Power, também será exibido "RX").

Tentei dois computadores diferentes e obtive os mesmos erros e descobri que se: 1- removo o fio ou abro o circuito para [D0] 2- carregue no Arduino 3- remendo o fio removido ou feche o circuito aberto para [ D0]

Só encontrei esse erro ao fazer o upload e esta é a minha solução. por enquanto.

Espero que ajude.

É bom finalmente dar algumas informações úteis para a comunidade!

ddd
fonte
11
A resposta não é clara: a frase que começa com "Eu achei que se ..." está incompleta, não sei o que você está tentando dizer. Por favor edite, obrigado.
Anindo Ghosh
Esta resposta refere-se a um circuito conflitante conectado aos pinos seriais do hardware atmega.
22813 Chris Stratton
0

Isso corrigiu o meu problema, vá para Drivers e instalação, substitua o Boards.txt no arduino IDE ...

Eu tenho arduino MEGA 2560 R3 e tive o mesmo problema

avrdude: stk500_getsync (): não está sincronizado: resp = 0x00

http://arduino.cc/en/Main/ArduinoBoardADK

user36857
fonte
-1

Para corrigir o erro "avrdude: stk500_getsync (): não está sincronizado: resp = 0x00". Basta instalar o driver FTDI versão 2.8.24.0. Existem alguns problemas com o novo driver v2.8.28.0.

Christian Skjerning
fonte
-1

Ao codificar os códigos do IDE do Arduino no seu computador, retire o pino RX da placa Arduino 0. Você receberá o upload do código com êxito. Conecte o pino RX e tente. Ou, você pode colocar (talvez) o RX do bluetooth no RX do Arduino para que os TX sejam conectados um ao outro.

Baía
fonte