LusoRobótica - Robótica em Português
Robótica => Tutoriais => Tópico iniciado por: tr3s em 21 de Janeiro de 2009, 02:47
-
Olá a todos!
Bom tenho um Arduino há menos de uma semana e infelizmente já tive de reprogramar o bootloader!
Estava eu muito bem a testar algumas coisas e a ver as capacidades do Arduino, ja que o TigPT tanto insistia para que eu o experimentasse :P (eu costumo trabalhar com PICs). Continuando... Experimentei fazer umas coisas com i2c e criei um array de dimensões razoáves (~<4kbytes). Ao mandar isto para o Arduino reparei que estava a demorar demais a enviar o código. Ao fim de 1 minuto e tal a enviar lá se deu por concluído, mas... Agora o Arduino estava todo maluco! Quando fazia reset, o Led PIN nao parava de piscar e a um ritmo estonteante, sempre que tentava descarregar algum código para lá o programa dizia que lia 0x24 e esperava 0x51 e assim nem programar conseguia!
Nos tempos em que queimava PICs "como quem troca de cuecas" :P, percebi logo que o bootloader tinha ido de c****** ops xuxu, mas porque? Acontece que o programa Arduino tem um bug e não lida bem com arrays muito grandes (ate já o TigPT pode constatar comigo, ontem com dois arrays de uns 400 bytes cada, estes ficavam sobrepostos durante a compilação). Esta situação é agrava quando se usa i2c no mesmo código.
O programa ao compilar o meu código gerou um ficheiro hex com quase 1 MB, conseguem imaginar isso? Ao descarregar isto tudo para o Arduino o bootloader desapareceu e assim Arduino, "Adios Adieux Aufidersein Goodbye, lala". ;D
Como gosto de fazer tudo à manapula e nem o programador de PICs comprei, decidi começar a ver esquemas de programadores de AVR para poder flashar o bootloader do Diecimila (=Duemilanove). Encontrei este site http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html (http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html) que até já tinha sido referido aqui e pensei, "oh ouro sobre azul" e fiz logo o que eles mostravam.
Senti alguma dificuldade em soldar 4 os pinos X3 pois um dos buracos ainda não era buraco :P! Ultrapassado este problema foi so ligar os fios. Recomendo que usem uma daquelas pontas de ligar USBs à motherboard que vagueiam lá por casa, liguem os fios aos pinos X3 seguindo o esquema da na imagem em anexo.
De seguida é so executar os passos que o tipo diz la no site e já está, Arduino está de volta! Foi bastante simples!
Durante o processo ele pede para se alterar um ficheiro e adicionar umas coisas etc, para isso deixo um RAR já com tudo e com um .bat e assim é só executar o bat e "dar" ok, contudo sigam o tutorial da página http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html (http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html) para garantirem que está tudo ok. Se não se sentirem a vontade com o bat copiem os comandos da página http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html (http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html).
Alterando apenas o ficheiro .conf e algumas ligações é possivel programar qualquer AVR e Também é possível flashar qualquer bootloader! :D
Cumprimentos,
Tr3s
Nota: isto só funciona em Windows! Para usar em outras plataformas instalem uma máquina virtual com windows.
Nota: Ah se quiserem um programador de PIC por porta COM usando apenas 3 resistências é só pedir!
-
obrigado pela informaçao detalhada ;)
gostei especialmente da frase: Nos tempos em que queimava PICs "como quem troca de cuecas" ;D
ja agora, relata lá o programador de pics com 3 resistencias :D se for o que eu estou a pensar, já o fiz, mas este tambem leva um diodo ;D :P
-
Pensei que já tinha feito reply a este post mas é capaz de ter havido algum erro ou edit.. weard...
Obrigado por partilhares a tua experiência e os ficheiros, assim facilitas a vida a quem tenha que passar pelo mesmo :D
-
Sim ja tinhas! Houve uma transferencia de topico parece! Alguma coisa foi comida pelo caminho :P
http://lusorobotica.com/index.php/topic,436.0.html (http://lusorobotica.com/index.php/topic,436.0.html)
-
Ahh ok, entendido ;)
-
pensei que aquilo era resposta ao programador ;D
-
bem, isto é fantástico!
não que eu pense em vir a queimar Atmels, mas sim para fazer os meus arduinos de raiz sem precisar de comprar chips já flashados.
um dia que me sinta cheio de confiança hei-de experimentar :D
obrigado por partilhares tr3s ;)
-
bah...já tou farto de ter de meter o bootloader no arduino :P hoje tive de meter outra vez
...
Senti alguma dificuldade em soldar 4 os pinos X3 pois um dos buracos ainda não era buraco :P! Ultrapassado este problema foi so ligar os fios. Recomendo que usem uma daquelas pontas de ligar USBs à motherboard que vagueiam lá por casa, liguem os fios aos pinos X3 seguindo o esquema da na imagem em anexo.
...
ó tr3s...foste roubado ;D o meu tinha os 4 buracos! :D ah....e arranjei uma ficha de umas usbs da motherboard....maravilha :D
-
fogo ao fim de um m ficaste preocupado? o meu demora normalmente uns 15minutos...
-
Eu não sei como tens paciencia lol eu normalemnte em 15 minutos já alterei o programa meia duzia de vezes :P
-
fogo ao fim de um m ficaste preocupado? o meu demora normalmente uns 15minutos...
bootloader...não é o programa :P
Eu não sei como tens paciencia lol eu normalemnte em 15 minutos já alterei o programa meia duzia de vezes :P
true ;D me too :P
-
Eu não sei como tens paciencia lol eu normalemnte em 15 minutos já alterei o programa meia duzia de vezes :P
pois lol por isso é que demoro para sempre a arranjar bugs... tenho de deixar o ,programa que uqero mais perto do que quero e tá a andar :P
-
Tem uma vantagem é que te preocupas mais antes de enviar o programa. Eu é mais mandar e depois ver o que não funcionou em vez de pensar no que estou fazer, o que é uma má metodologia!
-
fogo ao fim de um m ficaste preocupado? o meu demora normalmente uns 15minutos...
Como é que isso é possível? Já pensaste em formatar o PC :P !?
Provavelmente tens algum serviço a correr que te está a "estragar" a comunicação... Tem cuidado porque isso não é bom sinal! Já agora os LEDs RX e TX piscam muito rápido (tipo 5x por seg.) ou durante os 15 minutos ou piscam mesmo muito devagar (tipo 1x de 2 em 2 seg)?
-
fogo ao fim de um m ficaste preocupado? o meu demora normalmente uns 15minutos...
Como é que isso é possível? Já pensaste em formatar o PC :P !?
Provavelmente tens algum serviço a correr que te está a "estragar" a comunicação... Tem cuidado porque isso não é bom sinal! Já agora os LEDs RX e TX piscam muito rápido (tipo 5x por seg.) ou durante os 15 minutos ou piscam mesmo muito devagar (tipo 1x de 2 em 2 seg)?
só começam a piscar uns 5 segundos ates de dizer ''done uploading'' mas o disco rígido está todo partido, e o windows não tem certificado windows(o PC man instalou uma cópia depois de desfragmentar e apagar tudo)... estou agora é espera de um portátil da e-escola :) tenho um PC de jeito agora, mas é para a familia toda... é o irmao no MSN sempre... lol mas há dias que não usam tanto :)
-
fogo ao fim de um m ficaste preocupado? o meu demora normalmente uns 15minutos...
Como é que isso é possível? Já pensaste em formatar o PC :P !?
Provavelmente tens algum serviço a correr que te está a "estragar" a comunicação... Tem cuidado porque isso não é bom sinal! Já agora os LEDs RX e TX piscam muito rápido (tipo 5x por seg.) ou durante os 15 minutos ou piscam mesmo muito devagar (tipo 1x de 2 em 2 seg)?
só começam a piscar uns 5 segundos ates de dizer ''done uploading'' mas o disco rígido está todo partido, e o windows não tem certificado windows(o PC man instalou uma cópia depois de desfragmentar e apagar tudo)... estou agora é espera de um portátil da e-escola :) tenho um PC de jeito agora, mas é para a familia toda... é o irmao no MSN sempre... lol mas há dias que não usam tanto :)
Assim como quem não quer a coisa :P
http://lusorobotica.com/index.php/topic,365.0.html (http://lusorobotica.com/index.php/topic,365.0.html)
-
fogo ao fim de um m ficaste preocupado? o meu demora normalmente uns 15minutos...
Como é que isso é possível? Já pensaste em formatar o PC :P !?
Provavelmente tens algum serviço a correr que te está a "estragar" a comunicação... Tem cuidado porque isso não é bom sinal! Já agora os LEDs RX e TX piscam muito rápido (tipo 5x por seg.) ou durante os 15 minutos ou piscam mesmo muito devagar (tipo 1x de 2 em 2 seg)?
só começam a piscar uns 5 segundos ates de dizer ''done uploading'' mas o disco rígido está todo partido, e o windows não tem certificado windows(o PC man instalou uma cópia depois de desfragmentar e apagar tudo)... estou agora é espera de um portátil da e-escola :) tenho um PC de jeito agora, mas é para a familia toda... é o irmao no MSN sempre... lol mas há dias que não usam tanto :)
Assim como quem não quer a coisa :P
http://lusorobotica.com/index.php/topic,365.0.html (http://lusorobotica.com/index.php/topic,365.0.html)
ps acabei de ver, mas o portatil da e-escola fica-me a 0€ e 5€ por mes de net movel... :) mas net com mt pouco tráfego... mas liga-se a net deste(comprei um router) e já está um PC a 0€ :) é realemnte uma oferta irrecusavel ;D
-
Que escalão tens, desculpa se estou a ser indiscreto!
-
deve ter o A para ter o portatil á borlix :P
-
Depois se poderes fifas move estes posts daqui que está a desviar-se bastante.
Pessoalmente gosto de ver essas campanhas pelo preço final (somatório de todas as prestações do contrato mínimo, mas não te quero influenciar a nada para não parecer que tenho segundas intenções ;))
-
deve ter o A para ter o portatil á borlix :P
Pois claro ;D
bem dsculpem lá estes offtopics todos :S
-
Eu não tenho nada a ver com o que cada um faz com dinheiro, alias o que vou dizer até parece ser um bocado cobarde por estar a falar pelo forum e não pessoalmente só que há coisas que não consigo ficar sem dizer que é o facto de não perceber como já gastas-te mais de 100€ em coisas para robotica, que embora sejam educativas não deixam de ter uma parte de hobby/"brinquedo" e não tens 100€ para pagar o portatil! Só há coisas que não entendo!
-
Eu não tenho nada a ver com o que cada um faz com dinheiro, alias o que vou dizer até parece ser um bocado cobarde por estar a falar pelo forum e não pessoalmente só que há coisas que não consigo ficar sem dizer que é o facto de não perceber como já gastas-te mais de 100€ em coisas para robotica, que embora sejam educativas não deixam de ter uma parte de hobby/"brinquedo" e não tens 100€ para pagar o portatil! Só há coisas que não entendo!
pk esses 100€ pa coisas de robotica vieram de um trabalho de verão... e eu guardei, e guardei, e queria já há uns tempos um portátil mas não comprei pk com 200€ não se arranja grandes portáteis... e com isto da e-escola pago 300€ mas 5€ por mes, só pa net, no resto nao vai nada... até fica caro, contando que um portatil não dura mt e vou estar a pagar a net mesmo depois de ele ter ''morrido''...
mas pois. por 200€ não se arranja um portatil...
mas enfim isso de robotica não estava planeado! tenho de guardar mt mais para tirar a carta e comprar mota... :S
-
É melhor arranjares uma caixinha para ires juntando uns trocos todos os dias ;P tens demasiados planos pelo que vejo!
Quanto ao gastar demasiado na robótica, eu pessoalmente não posso falar pois também já gastei muito.. se contabilizar despesas do fórum então. :P O que costumo dizer é que é um investimento na minha formação e que virá a dar lucros no futuro!
-
Olá tr3s, estou a pensar seriamente em fazer isto :)
basicamente só tenho que correr o .bat, fazer figas e rezar??? :D ou há mais algum outro passo a seguir?
-
Eu só costumo correr o bat seguindo os passos do tutorial e mais nada :D
-
Vou experimentar muito em breve, depois digo os resultados :D
-
Bem tr3s muito obrigado pelo tutorial. Perfeito perfeito era fazeres um video! :)
- Soldar 4 pinos X3 do Arduino (já estou a ver como isto me vai correr, tenho mesmo que aprender a fazer isto bem)
- Usar cabos femea-femea bem janotas como os do tutorial no geocities (comprar Sparkfun? ou isto é possivel de se fazer?)
- Ligar arduino atraves de transformador e usb?
- Correr o programa
Onde comprar os Arduinos ATmega168?
-
joaoamaral,
em relaçao aos 3 buracos, no meu arduino tinha os 4 buracos :P por isso devia ser "defeito" do arduino do tr3s....:)
as fichas, eu uso de uma ficha USB interna....é perfect...mas podes fazer :)
só liguei o meu arduino por usb :)
-
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
o meu receio é soldar os pinos no arduino... ainda estrago a placa... >_<
e donde compras os ATmega? da SparkFun?
-
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! ;)
-
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
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg265.imageshack.us%2Fimg265%2F8128%2Fdsc01202psy.jpg&hash=163985562b39da47324f60016bc76c0775429d1b)
mas ha mais compatives, desde que encaixem na ficha :P
logo tiro mais umas fotos para veres
-
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:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3014%2F2755442998_7d322108e5_o.jpg&hash=25596a5832c4bb6e8cb5838f033442ed3934bdfc)
e soldando um "header" no local:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3231%2F2755442952_ecaf734f12_o.jpg&hash=672d0a85737089a96aaa18be68a46b28e5ef79bb)
Após isto fazemos o download dos ficheiros que vamos utilizar:
->serjtag-0.3.zip (http://www.geocities.jp/arduino_diecimila/bootloader/files/serjtag-0.3.zip)
->avrdude.conf (http://www.geocities.jp/arduino_diecimila/bootloader/files/avrdude.conf)
->avrdude-GUI-1.0.5.zip (http://yuki-lab.jp/hw/avrdude-GUI/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 (http://www.microsoft.com/Downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=us)
1. Instalação
a)
-Extrair o "serjtag-03.zip" e copiar a pasta "avrdude-serjtag" para C:/Programas
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.geocities.jp%2Farduino_diecimila%2Fbootloader%2Ffiles%2Favrdude-serjtag2.png&hash=7d6a705d10048b85a7691a770531d71682f7151d)
-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"
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.geocities.jp%2Farduino_diecimila%2Fbootloader%2Ffiles%2Favrdude-gui.png&hash=bc175cb39004d41a191a5f838fe8ecf64c4d9634)
b)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg546.imageshack.us%2Fimg546%2F4331%2Fguimark.png&hash=12ece8835de4b4e5aa42c35f9606d688a443a460) (http://imageshack.us/photo/my-images/546/guimark.png/)
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:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffarm4.static.flickr.com%2F3270%2F2754610263_0c173021dd_m.jpg&hash=8ab94673cb1bdc676a477aaf68a0b12adfee64be)
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:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg215.imageshack.us%2Fimg215%2F241%2Ffusec.png&hash=8308411ce49e254c79943858e5fe089fe51a4c1c) (http://imageshack.us/photo/my-images/215/fusec.png/)
-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".
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg855.imageshack.us%2Fimg855%2F6002%2Ffastclock.png&hash=07e913023d48d5aa14549490f43da7cd01a69a72) (http://imageshack.us/photo/my-images/855/fastclock.png/)
-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.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg20.imageshack.us%2Fimg20%2F677%2Feraseq.png&hash=042341f98fb352d7a3365eff790bd4de9955d029) (http://imageshack.us/photo/my-images/20/eraseq.png/)
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.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg27.imageshack.us%2Fimg27%2F9422%2Fwfuse.png&hash=c5200f83ba6e2f12e2d8fd078c85d8ae8d5d57ec) (http://imageshack.us/photo/my-images/27/wfuse.png/)
-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"
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg819.imageshack.us%2Fimg819%2F3200%2Fflashf.png&hash=6060d251dd16645b376d0e292288561619d0a765) (http://imageshack.us/photo/my-images/819/flashf.png/)
-Clicar em "Erase-Write-Verify".
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg220.imageshack.us%2Fimg220%2F6185%2Fwflash.png&hash=3c3a7516f44cb9429bafb0c600fe73f34ce37cb8) (http://imageshack.us/photo/my-images/220/wflash.png/)
d)
-Escrever o "Lock-Bit" como está na figura..
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.geocities.jp%2Farduino_diecimila%2Fbootloader%2Ffiles%2Fw_lock.png&hash=4b9df276eb6c7179679ca1c7e5f3979cee3a5a81)
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:
avrdude.exe: ft0 open failed
Verifica 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:
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:
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:
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.geocities.jp/arduino_diecimila/bootloader/index_en.html)
http://www.instructables.com/id/Programming-Arduino-Bootloader-without-External-Pr/step10/Troubleshooting/ (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.
-
zordlyon, juntei o teu topico a este por se tratar do mesmo assunto, embora o teu esteja um pouco mais detalhado.
:)
-
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.
-
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
-
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.
-
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?
-
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.
-
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 (http://electropepper.org/blog/item/rescue-avr-with-hv-rescue-arduino-shield-copy).
Isto baseado no mightyohm (http://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/).
-
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 (http://electropepper.org/blog/item/rescue-avr-with-hv-rescue-arduino-shield-copy).
Isto baseado no mightyohm (http://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/).
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.
-
Dá para adaptares certamente que não usa todos os pinos.
-
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.
-
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 (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.
-
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 (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.
-
Hit and miss ::)
Compra ou faz um usbAsp, sempre é mais dedicado que um arduino com o sketch ISP.