Ir ao conteúdo
  • Cadastre-se

Arduino Gravar bootloader ATMEGA328P direto na PCI


Posts recomendados

Olá, bom dia.

 

Gostaria de saber se teria como eu gravar o bootloader no ATMEGA328P direto na PCI de um projeto que estou desenvolvendo, ou seja, sem utilizar, por exemplo, o arduino uno ou duemilanove. Alguém poderia me ajudar?

 

O projeto terá duas vertentes, sendo que uma utilizará um cristal de 16Mhz e alimentada com 5VDC, e outra utilizará o clock interno de 8Mhz do próprio ATMEGA e alimentada com 3,3VDC .

 

Grato da atenção de todos.

Link para o comentário
Compartilhar em outros sites

O que é PCI que você se refere? A placa pcb?

 

Arduino tem as entrada SPI para o programador, você pode colocar os pinos ou algum conector assim para você programar o atmega em qualquer pcb e com qualquer coisa ligado a ele.

 

Você pode programar usando o programador (procura no google "atmega Programmer"). Tem algumas formas de fazer isso.

 

Sobre usar o Rx Tx depende do projeto... se tiver algo ligado ao Rx Tx do tipo um módulo ou circuito bluetooth pode impedir a gravação. 

Link para o comentário
Compartilhar em outros sites

Me desculpe amigo. É isso mesmo, PCI é a placa de circuito impresso.

 

O meu problema não é gravar o programa, e sim o bootloader. Gostaria de saber como eu faço isso direto na minha PCI.

Como eu disse antes, terei duas vertentes, uma comunicando com a outra, porém a comunicação entre elas não será pelo Rx e Tx, logo, estes pinos ficarão exclusivamente para gravação.

Link para o comentário
Compartilhar em outros sites

Hum... me parece que só dá para passar o bootloader por SPI

 

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

 

Nunca tentei pelo Rx tx além de passar programa. Sendo que no SPI você pode tanto passar o bootloader como passar programas para ele.

 

Mas se o atmega já tiver o bootloader não precisa você ficar gravando ele toda hora... só uma vez.

adicionado 2 minutos depois

ah como disse tem outras forma de fazer também

https://diyhacking.com/make-arduino-board-and-bootload/

 

você pode fazer também seu próprio SPI por porta paralela* e coisa do tipo... depende.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Olá @Bommu Perneta, realmente não há como gravar o bootloader pelo Rx Tx. Pesquisei muito a respeito e realmente tive que mudar meu projeto. 

 

Descobri que quando se grava um ATMEGA328 pela SPI do Arduino não é necessário gravar o bootloader primeiro, pode-se subir direto a sketch.

 

Gostaria de compartilhar um problema que eu tive, pois talvez possa ajudar alguém.

 

 

Estou usando um Arduíno Duemilanove para carregar os programas. Inicialmente eu estava tendo o seguinte problema ao carregar bootloader e sketch:

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14 

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01 

avrdude: stk500 initialize(): (a) protocol error, expect=0x14, resp=0x10 

avrdude: initialization failed, 

rc=-1 Double check connections and try again, or use -F to override this check. 

avrdude: stk500_disable(): unknown response=0x12 

a porta serial avrdude: stk500_disable(): unknown response=0x12 selecionada não existe ou sua placa não está conectada

 

Depois de 4 dias quebrando a cabeça eu descobri que o problema não era a comunicação da placa do meu projeto com o Arduíno, e sim do computador com o Arduíno.

O lance é que o computador dava um reset no Arduíno quando eu solicitava para gravar pela SPI, e por isso dava esse erro de comunicação.

 

Solução:

Removi o ATMEGA328 da placa do meu gravador (Duemilanove), dobrei o pino 1 (referente ao reset), voltei ele pro gravador e pronto. Não há mais problemas de gravação, pois não há mais como a CPU resetar o Arduíno.

 

Lembrando: Caso queiram gravar algo no ATMEGA do gravador, é necessário voltar o pino de reset.

 

Caso tenham outra solução para este problema, por favor, compartilhem comigo.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
2 horas atrás, Leandro Lemos Kallás disse:

dobrei o pino 1

isso não é totalmente bom. Além do óbvio risco de quebrar o pino, não é nada bom deixar ele flutuando caso esse tal de

2 horas atrás, Leandro Lemos Kallás disse:

Arduíno Duemilanove

(wtf?) seja o sistema rodando. Se este for só gravador, consulte o ds do seu mc e veja qual a condição (0,1,vpp) é aplicada no pino reset durante a gravação pra não deixá-lo aberto...

 

De fato existem programadores relativamente simples e baratos pra atmegas. Me lembro de ter contato com algum há ... algum tempo atrás. Conversam direto com eles. Há vida além do arduíno

 

Link para o comentário
Compartilhar em outros sites

Em 13/11/2017 às 10:38, Leandro Lemos Kallás disse:

Olá @Bommu Perneta, realmente não há como gravar o bootloader pelo Rx Tx. Pesquisei muito a respeito e realmente tive que mudar meu projeto. 

 

Descobri que quando se grava um ATMEGA328 pela SPI do Arduino não é necessário gravar o bootloader primeiro, pode-se subir direto a sketch.

 

Gostaria de compartilhar um problema que eu tive, pois talvez possa ajudar alguém.

 

 

Estou usando um Arduíno Duemilanove para carregar os programas. Inicialmente eu estava tendo o seguinte problema ao carregar bootloader e sketch:

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14 

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01 

avrdude: stk500 initialize(): (a) protocol error, expect=0x14, resp=0x10 

avrdude: initialization failed, 

rc=-1 Double check connections and try again, or use -F to override this check. 

avrdude: stk500_disable(): unknown response=0x12 

a porta serial avrdude: stk500_disable(): unknown response=0x12 selecionada não existe ou sua placa não está conectada

 

Depois de 4 dias quebrando a cabeça eu descobri que o problema não era a comunicação da placa do meu projeto com o Arduíno, e sim do computador com o Arduíno.

O lance é que o computador dava um reset no Arduíno quando eu solicitava para gravar pela SPI, e por isso dava esse erro de comunicação.

 

Solução:

Removi o ATMEGA328 da placa do meu gravador (Duemilanove), dobrei o pino 1 (referente ao reset), voltei ele pro gravador e pronto. Não há mais problemas de gravação, pois não há mais como a CPU resetar o Arduíno.

 

Lembrando: Caso queiram gravar algo no ATMEGA do gravador, é necessário voltar o pino de reset.

 

Caso tenham outra solução para este problema, por favor, compartilhem comigo.

 

 

Existe alguns problemas desse tipo, até mesmo no Arduíno Uno. Por isso que é muito importante verificar no ato da compra qual a REVISÃO do Arduíno !

 

No caso do Uno, a recomendada é a R3.

 

Paulo

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...