Arduino, bootloader a pojistky pro Atmega 328P *vyřešeno*
Moderátor: Moderátoři
- hafca
- Příspěvky: 4401
- Registrován: 27 črc 2004, 02:00
- Bydliště: 25km na západ od Prahy
- Kontaktovat uživatele:
Arduino, bootloader a pojistky pro Atmega 328P *vyřešeno*
Tak dlouho jsem si hrál s Arduino UNO 3 a přehazoval procesory kvůli naklonování v programátoru, až jsem se v tom ztratil a teď mi Arduino nebootuje. Hledal jsem po internetu bootloadery a nastavení pojistek, ale je to pokaždé trochu jinak a hlavně, žádná kombinace nefunguje.
Nemá někdo tip, co tam napálit aby to fungovalo?
Nemá někdo tip, co tam napálit aby to fungovalo?
Naposledy upravil(a) hafca dne 15 bře 2017, 16:05, celkem upraveno 1 x.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Pro Uno je to v boards.txt takto:
Plná cesta k bootloaderu je (Win x64)
Vše platí pro Arduino IDE 1.8.1.
Kód: Vybrat vše
uno.bootloader.tool=avrdude
uno.bootloader.low_fuses=0xFF
uno.bootloader.high_fuses=0xDE
uno.bootloader.extended_fuses=0x05
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.bootloader.file=optiboot/optiboot_atmega328.hex
Kód: Vybrat vše
C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex
- hafca
- Příspěvky: 4401
- Registrován: 27 črc 2004, 02:00
- Bydliště: 25km na západ od Prahy
- Kontaktovat uživatele:
Tohle jsem zkoušel v eXtreme Burner. Bootloader tam je, ale v EX fuse mi 05 odmítá zapsat. Je tam DE, nebo DA. Nebo při kontrole http://www.engbedded.com/fusecalc by tam mohlo být FD. Ale je to na trigger level a to by snad nemuselo vadit, nebo se pletu? Lock fuse je tam FF.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Na Extended fuse v tomto případě určitě nezáleží, Brown-out detection je stejně vypnuté. Záleží na "vypalovacím" programu jak se s tím popere. Když nejde 0x05, tak půjde 0xFD. Lock bity také není třeba měnit, naopak bych je nechal na default hodnotě od výrobce, abys nezamkl procesor. Při takto nastavených fuse musí být připojen krystal nejméně 8Mhz. SPI zapnuto je, takže nahrát bootloader by jít mělo.
- hafca
- Příspěvky: 4401
- Registrován: 27 črc 2004, 02:00
- Bydliště: 25km na západ od Prahy
- Kontaktovat uživatele:
Ani s tím nastavením se Arduino nerozběhne. Při pokusu o nahrání programu do něj, kompiluje a pak se nic neděje. V závěru vypíše chyby
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x77
což znamená, že není bootloader. To i přesto, že ho při zpětném načtení v programátoru vidím. Krystal mám 16MHz.
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x77
což znamená, že není bootloader. To i přesto, že ho při zpětném načtení v programátoru vidím. Krystal mám 16MHz.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
- hafca
- Příspěvky: 4401
- Registrován: 27 črc 2004, 02:00
- Bydliště: 25km na západ od Prahy
- Kontaktovat uživatele:
Hlásí se jako http://www.fischl.de/usbasp/. ale mám ho už docela dlouho. Takže je to nejspíš nějaká starší verze.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.
Až přijdu domů, tak to zkusím. Obecně v Arduino IDE je možnost "Export kompilovaného Binaru". To vytvoří dva *.hex soubory ve stejném adresáři jako je *.ino soubor. V jednom je samotný program, druhý je program + bootloader (v názvu má *with_bootloader*). Vyzkoušej ho nahrát do procesoru mimo prostředí Arduino IDE. Třeba pomocí AVRDude.
Vzal sem novou ATmegu328, přidal k ní krystal a pojistky nastavil viz výše (Lock bity jsem neměnil). V Arduino IDE jsem jenom nastavil desku na "Arduino Uno", připojil programátor "USBasp" na příslušné porty a vše funguje. Napadlo mě podle hlášky co jsi sem dával: máš asi špatně nastavený programátor na stk500
- hafca
- Příspěvky: 4401
- Registrován: 27 črc 2004, 02:00
- Bydliště: 25km na západ od Prahy
- Kontaktovat uživatele:
Přes Arduino mi to hlásí, že mám aktualizovat firmware, případně problém s SCK. Nakonec se to chytlo přes eXtreme Burner - AVR a ten soubor s bootloaderem, co Arduino vygenerovalo. Ale pojistku 05 to ve všech programech co umí můj programátor nechtělo zapsat. Skončil jsem nakonec na FD.
Dík všem za pomoc.
Dík všem za pomoc.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.