collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Flashar bootloader no Arduino - BitBang Mode  (Lida 42968 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline tr3s

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 811
  • char x=1, y=5; x^=y^=x^=y;
Re:Flashar bootloader no Arduino - BitBang Mode
« Responder #30 em: 15 de Junho de 2009, 10:40 »
Não estragas nada!
Se a tua placa já trouxer os buracos é uma maravilha, é so meteres as fichas e encostar uma gota de solda. Se não trouxer, um chupa-solda mete-te os buracos limpinhos e fazes o mesmo!  ;)
Tr3s
Daniel Gonçalves

Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.064
  • El RoboSapiens
Re:Flashar bootloader no Arduino - BitBang Mode
« Responder #31 em: 19 de Junho de 2009, 12:00 »
aaah é do mesmo tamanho? estás a falar dos que vêm com as motherboards/caixas de pc? já tive alguns desses deixa lá ver se arranjo, se puderes bota ai uma foto :D

Sim, de pc....eu usei esta que é de uma usb


mas ha mais compatives, desde que encaixem na ficha :P

logo tiro mais umas fotos para veres

Offline zordlyon

  • Mini Robot
  • *
  • Mensagens: 1.768
Burn do Bootloader no Duelaminove com ATMEGA328P
« Responder #32 em: 09 de Agosto de 2011, 13:00 »
Deixo aqui uma explicação de como recarregar o bootloader do duelaminove com o ATmega328p.

Não me responsabilizo por qualquer dano efectuado nos vossos arduinos.

É chamado de "BitBang Mode" e dá para fazer o Burn dos seguintes modelos:
Arduino NG, Arduino Duemilanove e/com ATMega328P.

Atenção para fazer isto convém ser com o Windows, para fazer com outros sistemas operativos tem que se alterar o Patch, reconfigurar e compilar.

Primeiro vamos modificar o arduino tirando a solda destes 4 pinos do X3:


e soldando um "header" no local:


Após isto fazemos o download dos ficheiros que vamos utilizar:
->serjtag-0.3.zip
->avrdude.conf
->avrdude-GUI-1.0.5.zip

Nota:O avrdude-GUI requer no minimo o Microsoft .Net Framework 2.0 para quem não tem aqui fica o link:
-Microsoft .Net Framework 2.0

1. Instalação

a)
-Extrair o "serjtag-03.zip" e copiar a pasta  "avrdude-serjtag" para C:/Programas


-Na pasta "avrdude-serjtag" apagar a pasta "src".

b)
-Substituir o "avrdude.conf" que está dentro da pasta "C:/Programas/avrdude-serjtag/binary/" pelo avrdude.conf descarregado aqui...

c)
-Extrair o "avrdude-GUI-1.0.5.zip" para "C:/Programas"
(Relembro que precisa do .Net Framework 2.0 ou superior)

2. Configurar o Avrdude-GUI
a)
-Abrir o "C:/Programas/avrdude-GUI-1.0.5/avrdude-GUI.exe"


b)


i)-avrdude.exe file
-Selecionar o "avrdude.exe" da pasta C:/Programas/avrdude-serjtag/binary/avrdude.exe"

ii)-Programmer
-Selecionar "FT232R Synchronous BitBang (diecimila)"

iii)-Device
-Selecionar "ATmega328p (m328p)"

iv)-Command line option
-Escrever "-P ft0 -B 4800"

Nota: Explicação
    -> "-P ft0" ->Configurações da porta
    -> "-B 4800" -> Configurações de Clock em modo "Slow"(lento)

-Manter o campo "Port" Vazio!.

Nota: Após isto fechar o avrdude-GUI!

3. Ligar os fios

a)
Ligar deste modo os fios:


b)
-Conectar o cabo USB ao arduino e ao PC
-Abrir o "avrdude-GUI" em C:/Programas/avrdude-GUI-1.0.5
-Verificar se os campos estão preenchidos com as configurações do Passo 2.

c)
-Após isto, vamos ler os "Fuse Bits" em modo "Slow"
-E deve aparecer algo assim:


-Se os "Fuse-Bits" forem lidos é porque está a funcionar.
-Caso não esteja a funcionar consultar os Erros no fim deste tutorial.


NOTA:Estes bits diferenciam consoante o ATmega que está a ser usado.

d) Agora vamos ler em modo "Fast" (Rapido) apagando no "Command line Option" o "-B 4800".


-Façam Read novamente nos "Fuse-Bits". E se os Fuse-Bits foram lidos com sucesso com o mesmo resultado anterior é porque está a funcionar em modo "fast clock". Porreiro!

4. Burn

a)
-No "Command line Option" coloquem em "Slow Clock" ou seja escrevam novamente o "-B 4800".

Atenção- Se for um chip novo (virgem) que queiram programar pela primeira vez o bootloader, não podem fazer o burn em modo "Fast Clock"

-1º Cliquem no "Chip Erase"
-2º Depois cliquem em "Read" e deve aparecer algo como "0F" no caso do ATmega328p.


b)
-Reescrever os Fuse-Bits, escrever os valores como veem na imagem SOMENTE SE FOR O ATmega328p, caso seja outro ATmega consultar no fim os valores.

-Depois de preencher os campos dos fuse-bits clicar em "Write".

-Mudar para "Fast Clock", apagar o "-B 4800" e cliquem em "Read" e vejam se os valores aparecem, caso não apareçam é porque foram mal inseridos, nesse caso voltem a "Slow Clock" e insiram novamente os valores e cliquem em "Write" e façam o mesmo processo.

c)
-Preparar o ficheiro .hex.
-No campo "Flash" selecionar o ficheiro .hex em "C:/Programas/arduino-0022/hardware/bootloaders/ATmegaBOOT_168_atmega328.hex"



-Clicar em "Erase-Write-Verify".


d)
-Escrever o "Lock-Bit" como está na figura..


Pronto e terminamos o nosso Burn.

Agora é so confirmar se tudo está a funcionar.
-Tirar o cabo USB do PC
-Tirar os fios que ligam o ICSP ao X3
-Conectar novamente o Cabo USB ao PC
-Clicar no botão de Reset do arduino.
-Abrir o IDE do arduino
-Fazer o upload de um programa exemplo tipo o "Blink" e verificar se o Led do arduino "L" pisca...

-------------------------------------------//----------------------------------------

->Configurações para outros ATmegas
ATmega8
Fuse-bits

hfuse = CA
lfuse = DF
Lock-bit
unlock = 3F
lock = 0F

ATmega168
Fuse-bits

hFuse = DD
LFuse = FF
eFuse = 00
Lock-bit
lock = 0F

-------------------------------------------//----------------------------------------

-Erros
Se for um erro deste genero:
Código: [Seleccione]
avrdude.exe: ft0 open failedVerifica se as ligações estão bem feitas e se o arduino está realmente ligado ao pc com os drivers FTDI. Para isso basta ir ao Gestor de Dispositivos e verificar se aparece "FTDI UART" com um ponto de interrogação amarelo, isso significa que os drivers do arduino não estão instalados.
Basta ir ao site do Arduino e fazer o download do software e depois instalar os drivers.


Se for um erro deste tipo:
Código: [Seleccione]
avrdude.exe: BitBang OK
avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
avrdude.exe: drain OK

ft245r: bitclk 230400 -> ft baud 115200
avrdude.exe: ft245r_program_enable: failed
avrdude.exe: initialization failed, rc=-1
É necessário rever as conexões, e tentar novamente, ou usar o -F para substituir essa verificação.

Se for um erro deste tipo:
Código: [Seleccione]
avrdude.exe done. Thank you.Primeiro verificar as ligações dos fios no arduino.
Depois de verificar que as ligações estão correctas, tentar novamente a operação mas com o comando "-B 4800" no Command line Option caso ainda não esteja lá.

Se estamos a tentar escrever alguma coisa para o chip e aparece um erro similar a este:
Código: [Seleccione]
avrdude.exe: verification error, first mismatch at byte 0x0000
0xff != 0x3f
Significa que tem que se clicar no "Erase Chip" antes de escrever algo para o chip.


Se foi feito o burn ao bootloader com sucesso mas não se vê o LED a piscar, ou então o arduino não faz o upload, é necessário tirar o cabo USB do PC e tornar a liga-lo.

Bibliografia:
http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
http://www.instructables.com/id/Programming-Arduino-Bootloader-without-External-Pr/step10/Troubleshooting/

Agradecimentos ao user Senso que me forneceu o link com o tutorial.

Cumprimentos,
André Carvalho.

















Cumprimentos,
André Carvalho.

Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.064
  • El RoboSapiens
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #33 em: 09 de Agosto de 2011, 14:03 »
zordlyon, juntei o teu topico a este por se tratar do mesmo assunto, embora o teu esteja um pouco mais detalhado.

:)

Offline zordlyon

  • Mini Robot
  • *
  • Mensagens: 1.768
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #34 em: 09 de Agosto de 2011, 14:20 »
zordlyon, juntei o teu topico a este por se tratar do mesmo assunto, embora o teu esteja um pouco mais detalhado.

:)

No problema..  ;)
O que interessa é a partilha de informação. Nem conhecia este Tópico..

Cumprimentos,
André Carvalho.
Cumprimentos,
André Carvalho.

Offline souza_neto

  • Mini Robot
  • *
  • Mensagens: 7
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #35 em: 07 de Novembro de 2014, 15:11 »
Prezados colegas,

Eu realmente preciso do BOOTLOADER em um AVR para usar em um gravador externo como por exemplo o USBasp. Ou seja posso usar o atmega328p sem BOOTLOADER com um USBasp? O BOOTLOADER  seria pra utilizar com o ARDUINO somente ou com outros gravadores? E como faço pra remover o BOOTLOADER que foi gravado no arduino?

Qual a real necessidade de gravar o bootloader num AVR se não vou utilizar o arduino?

Desde já agradeço a atenção dos senhores.

Att,
Souza
Disse Jesus: Eu sou o caminho, e a verdade e a vida. Ninguém vem ao pai, senão por mim.

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #36 em: 07 de Novembro de 2014, 15:35 »
A grande vantagem de um bootloader é não precisares de um programador específico para programar o AVR. Podes usar a porta serie, o que simplifica muito as atualizações.

Com um USBasp podes programar o ATmega independentemente se sem bootloader ou não, desde que não tenham desligado o pino de ?RESET?, que nesse caso só com um programador com HV.

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #37 em: 08 de Novembro de 2014, 00:37 »
Bootloder para aqui bootloader para ali, andei a tentar mudar os bootloaders aos meus PRO MINI's.
Como a minha FTDI tinha um jumper 3.3V/5V nem me preocupei com isso...
La mudei eu o jumper para 3.3V, e os 5V constavam la na mesma.
Tentei programar mesmo assim os arduinos e nada...

Bem decidi reverter o processo. E entao continuar a usar os arduinos a 5V e para isso fui mudar o bootloader.
A questão é que agora nem programam, nem aceitam bootloader novo nem nada...

E nesta situação tenho 6 PRO Minis... existe alguma maneira de recuperar isto? Mesmo que seja preciso um programador especifico?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #38 em: 08 de Novembro de 2014, 13:36 »
Qual é que é a diferença de correr a 3.3 ou 5v, não estava na moda correr todos os atmegas a 16Mhz fossem alimentados a 3.3 ou 5v?
Se não houver diferença de cristal, não é preciso mudar nada porque os fuses "oficiais" do Arduino nem o BOR usam, mas se usarem é só mudar fuses.
Avr fanboy

Offline Electropepper

  • Mini Robot
  • *
  • Mensagens: 116
    • Electropepper
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #39 em: 08 de Novembro de 2014, 21:35 »
Kristey tive um problema semelhante á uns tempos atrás, em que a bincar com os fuses desativei o SPI, depois disso só com um HVPP(High Voltage Parallel Programmer).
Pus mãos á obra e fiz um eu mesmo aqui.
Isto baseado no mightyohm.

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #40 em: 09 de Novembro de 2014, 03:11 »

Kristey tive um problema semelhante á uns tempos atrás, em que a bincar com os fuses desativei o SPI, depois disso só com um HVPP(High Voltage Parallel Programmer).
Pus mãos á obra e fiz um eu mesmo aqui.
Isto baseado no mightyohm.
Hoje com paciencia e ajuda de um amigo, conseguimos meter tudo outra vez a 5V 16Mhz.
Mas isso é interessante vai ja aqui para os bookmarks.
precisas mesmo de todos os pinos do ATMEGA?
É que neste caso sendo PRO MINI e não dip teria de adaptar o teu HVPP

Qual é que é a diferença de correr a 3.3 ou 5v, não estava na moda correr todos os atmegas a 16Mhz fossem alimentados a 3.3 ou 5v?
Se não houver diferença de cristal, não é preciso mudar nada porque os fuses "oficiais" do Arduino nem o BOR usam, mas se usarem é só mudar fuses.
senso, até pode ser como dizes (e acredito), o problema é que eu com uma FTDI de 5V não os conseguia programar, tal como quando programava por SPI (usando outro arduino) e depois ia ler a porta serie da FTDI, ele so mandava lixo.

Offline Electropepper

  • Mini Robot
  • *
  • Mensagens: 116
    • Electropepper
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #41 em: 09 de Novembro de 2014, 08:07 »
Dá para adaptares certamente que não usa todos os pinos.

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #42 em: 09 de Novembro de 2014, 10:59 »
Kristey,
Podes dizer qual foi a solução? Pode alguém ter o mesmo problema e ficava para futura referência. E se já sabes a razão em concreto porque deixaram de funcionar também era fixe partilhares.


Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #43 em: 09 de Novembro de 2014, 19:53 »
Pois realmente, costumo sempre fazer isso. Ontem como tinha de estudar vim ca muito por alto.

Como disse la em cima
No dia seguinte, voltei ao assunto.

Segui o tutorial do Arduino ISP (http://arduino.cc/en/Tutorial/ArduinoISP)
E fiz tudo de novo Upload do codigo Arduino ISP para um UNO.
Ligações e basicamente insistência.

Reparei numa coisa que nos deixou intrigado, mas nenhum de nós soube explicar (eu ou o meu amigo).
Supostamente tinhamos 6 arduinos PRO MINIS para flashar.

O primeiro pimba foi À primeira...
O segundo falhou --' , reset ao UNO, 2ª tentativa, nada, 3ª tentativa, puff deu.
O terceiro falhou, procedemos da mesma maneira, falhou sempre... Metemos outra vez o codigo do arduino ISP no UNO, experimentamos e Burn Bootloader, deu à primeira.
Pronto e foi assim com os 6

Um deles está mesmo morto, tentamos programar directamente um blink em registos pelo avrdude.
E supostamente o numero serie de chip (atmega 328p) estavva a 0x0000F (se não me falha a memoria)
E deveria ser um numero de serie qualquer que não aquele...
por isso estou a ver a solução do Electropepper, para ver se dá para recuperar assim.
« Última modificação: 09 de Novembro de 2014, 19:55 por Kristey »

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 783
Re: Flashar bootloader no Arduino - BitBang Mode
« Responder #44 em: 09 de Novembro de 2014, 19:57 »
Pois realmente, costumo sempre fazer isso. Ontem como tinha de estudar vim ca muito por alto.

Como disse la em cima
No dia seguinte, voltei ao assunto.

Segui o tutorial do Arduino ISP (http://arduino.cc/en/Tutorial/ArduinoISP)
E fiz tudo de novo Upload do codigo Arduino ISP para um UNO.
Ligações e basicamente insistência.

Reparei numa coisa que nos deixou intrigado, mas nenhum de nós soube explicar (eu ou o meu amigo).
Supostamente tinhamos 6 arduinos PRO MINIS para flashar.

O primeiro pimba foi À primeira...
O segundo falhou --' , reset ao UNO, 2ª tentativa, nada, 3ª tentativa, puff deu.
O terceiro falhou, procedemos da mesma maneira, falhou sempre... Metemos outra vez o codigo do arduino ISP no UNO, experimentamos e Burn Bootloader, deu à primeira.
Pronto e foi assim com os 6
Se gostava de perceber porque é que uns funcionam logo e outros ate tem que se fazer novamente o upload do codigo?
Gostava, mas ate ja pesquisei e não encontrei nada!

Um deles está mesmo morto, tentamos programar directamente um blink em registos pelo avrdude.
E supostamente o numero serie de chip (atmega 328p) estavva a 0x0000F (se não me falha a memoria)
E deveria ser um numero de serie qualquer que não aquele...
por isso estou a ver a solução do Electropepper, para ver se dá para recuperar assim.