Pessoal, boa noite.

Estou desenvolvendo um projeto com a Atmega 2560. Para tanto comprei um 2560 (CI) e estou quebrando a cabeça para fazê-lo funcionar no modo standalone no proto-board.

A boa notícia é que consegui acordá-lo, ou seja, consegui gravar o bootloader utilizando uma placa UNO como gravadora, na opção "Arduino as ISP" da IDE 1.6.5.

Logo após a gravação do bootloader, gravei através da mesma placa do UNO, o programa "blink". Coloquei um led na porta 13 do 2560 (até então "virgem") e tudo deu certo, ou seja, o led está piscando no proto board.

O próximo passo foi utilizar o canal serial (TX0 e RX0) disponibilizado nos pinos 2 e 3 do 2560, assim como acontece com o Atmega 328. A ideia é ligar o monitor serial da IDE nesse canal para debugar o programa, bem como gravar os programas por essa porta também, assim como é feita nas placas de desenvolvimento que compramos prontas. Para isso utilizei um conversor USB/Serial - FTDI232.

Isso funciona 100% quando utilizo um Atmega 328, comprado já com o bootloader gravado. Não funcionou com o 2560, na hora de gravar o programa, dá um erro de timeout, ou seja, a IDE não se comunica com o CI via essa porta serial. Será problema no bootloader ?

Alguém já passou por essa experiência ?

Preciso fazer funcionar o "monitor serial", alguém tem outra idéia ?

Desde já, agradeço se puderem ajudar.

Exibições: 2578

Responder esta

Respostas a este tópico

A nomenclatura internacional da uart (serial) é do seginte modo:
tx<>rx rx<>tx Não sei o motivo pelo qual o arduino deixou de seguir a nomenclatura.Tente inverter os cabos da serial

Valeu Almir. Já inverti, não deu certo.

Abç.

Deve ser devido que o bootloader arduino deve ter sido criado apenas para atmega328.
Para gravar outros modelos adquira um gravador.Não adianta perder tempos com isso.Se quiser te vendo um que tenho parado aqui

Ok Almir, vou quebrar a cabeça mais um pouco.

Obrigado.

Caro Professor Bernardo bom dia. 

O ATmega 2560 possui 4 UARTs ( interface serial) . Você esta usando a UART 0. 

Esse é o diagrama do Arduino Mega: TX - pino 3 e RX - pino 2. 

E essa é a conexão com o ATmega 16U2 que faz a interface USB serial do Arduino Mega R3 :

RX >>> TX 

TX >>> RX 

Esta usando um conversor FTDI 232. O driver da placa Arduino Mega é para o ATmega 16U2. 

Será que a IDE espera uma interface ATmega 16U2 ? Pode ser esse o problema. 

O Windows esta reconhecendo o seu conversor ( interface serial USB) ?

Esta usando a IDE 1.6.5 . Alterou a placa para Arduino Mega na IDE ?

Se deixar como Arduino Uno, possivelmente terá problemas. 

https://www.arduino.cc/en/Main/ArduinoBoardMega2560

Abraços, 

Gustavo

Grande amigão Gustavo ! Sabia que poderia contar com você.

No Atmega 328 é a mesma coisa (inclusive os pinos TX0 e RX0). A interface FDI funciona perfeitamente com o 328 montado no proto-board, porém com o bootloader original, gravado em "fábrica".

Como o 2560 que comprei era "virgem", acredito que possa ser algum problema na gravação do bootloader que eu mesmo fiz.  Não apareceu nenhuma mensagem de erro durante o processo de gravação. Ele roda o sketch "blink" sem problemas, gravado via ISP.

Tentei e fiz tudo que você recomenda. Por enquanto não funcionou.

Ainda hoje vou tentar ligar o módulo FTDI na placa do Mega, onde tem um 2560 com bootloader funcionando (gravado de fábrica). Porém, tenho receio de uma coisa: vou ligar os pinos TX e RX do FTDI "em paralelo" com o circuito original da placa, com o cabo USB desconectado. Vou ligar nos pontos PE0 e PE1, que correspondem aos pinos TX0 e RX0 da placa do Arduino Mega. Será que vai dar certo ? Se não der vou retirar os resistores RN4A e RN4B (....adeus plaquinha do Mega). Dessa forma eu desconecto o 2560 do 16U2 e posso testar o bootloader original.

Acho que vou fazer um teste com a placa do UNO antes de ligar no MEGA.

Assim que tiver um tempinho faço isso e mando notícias....ou passo na sua casa, já que somos vizinhos...rsrsrsr.

Grande abraço.

Bernardo boa tarde, 

Será um prazer ter a sua visita no meu Lab . É só me avisar antes . 

Acho melhor não correr o risco de perder um Arduino Uno ou Arduino Mega fazendo esses testes !

Pode ser que não funcione e ainda possa danificar algo...

Você tem osciloscópio ai . Faça algumas medições nos pinos RX e TX da sua montagem do ATmega 2560 com a interface FTDI ( usando a IDE Arduino) . 

Se for um problema de driver, os sinais TX e RX não serão alterados. 

Se os sinais variarem de acordo com a comunicação serial, ai podemos pensar em outra alternativa, como usar um analisador lógico. 

Faça um teste com a IDE configurada para Arduino UNO também e veja com o osciloscopio.

Abraços 

Gustavo 

Estou me lembrando de algo mais .

Existe  um arquivo de configuração da IDE do Arduino. 

Vou pesquisar para ver se dá para mudar o driver a ser usado para cada placa Arduino. 

https://www.arduino.cc/en/Hacking/Preferences

No meu Windows 10 :

C:\Users\Gustavo\AppData\Local\Arduino15

http://playground.arduino.cc/Main/CustomizeArduinoIDE

Gustavo,

Funcionou na placa do Mega, mesmo em paralelo com o 16U2. Utilizei apenas um capacitor de 100nF em série com o pino RST do 2560.

Veja a foto.

Anexos

Bernardo, você já matou a charada !! 

O problema esta no drive usado pela IDE. Quando usou a IDE configurada com o Arduino Mega , o circuito e o driver (no Windows)  do ATmega 16U2 foi usado. 

E quando troca pela interface FTDI 232, o driver é diferente, por  isso não existe comunicação. 

Como alterar o driver ??? Boa pergunta. 

Hummmmm deixa eu pensar aqui.

Mais quando eu usei a placa do Mega2560 eu liguei nela o FTDI232 (usei os pinos TX0/RX0 e RESET da placa) e funcionou (teste que enviei a foto), o seja, quando eu tento programar o 2560 standalone eu também ligo nele a placa FTDI e uso a IDE.

Me corrija se estiver errado: acho que pode ser o bootloader que não foi gravado no CI de forma correta, mesmo não dando nenhum erro aparente durante a programação.

Estou tendendo para uma solução um pouco radical: desoldar o 2560 da placa original e fazer um teste com ele no proto-board. Dessa forma garanto que o CI terá o bootloader correto.

José Gustavo

A IDE do Arduino não faz distinção no uso do conversor USB-serial.

Veja o caso do Arduino UNO chines com CH340 ou com ATmega 16U2, não há diferença, eles são programados da mesma forma, apenas deve-se escolher o modelo da placa (UNO/Genuino) e a porta serial correspondente a placa.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço