Arduino, bootloader a pojistky pro Atmega 328P *vyřešeno*

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
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*

#1 Příspěvek od hafca »

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?
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.

Uživatelský avatar
renda15
Příspěvky: 624
Registrován: 05 lis 2005, 01:00
Bydliště: Liberec

#2 Příspěvek od renda15 »

Nezkoušel jsi použít v Arduinu IDE volbu Vypálit zavaděč ? Ve verzi 1.6.9 to tam je.

Uživatelský avatar
hafca
Příspěvky: 4401
Registrován: 27 črc 2004, 02:00
Bydliště: 25km na západ od Prahy
Kontaktovat uživatele:

#3 Příspěvek od hafca »

Zkoušel, ale dlouho nic, jen párkrát problikne TX ledka. Je otázka, jaký má být nastavený programátor. U Arduino as ISP tvrdí, že nemůže otevřít port.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#4 Příspěvek od FHonza »

Pro Uno je to v boards.txt takto:

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
Plná cesta k bootloaderu je (Win x64)

Kód: Vybrat vše

C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex
Vše platí pro Arduino IDE 1.8.1.

Uživatelský avatar
hafca
Příspěvky: 4401
Registrován: 27 črc 2004, 02:00
Bydliště: 25km na západ od Prahy
Kontaktovat uživatele:

#5 Příspěvek od hafca »

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.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#6 Příspěvek od FHonza »

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.

Uživatelský avatar
hafca
Příspěvky: 4401
Registrován: 27 črc 2004, 02:00
Bydliště: 25km na západ od Prahy
Kontaktovat uživatele:

#7 Příspěvek od hafca »

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.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#8 Příspěvek od FHonza »

A jaký máš programátor ?

Uživatelský avatar
hafca
Příspěvky: 4401
Registrován: 27 črc 2004, 02:00
Bydliště: 25km na západ od Prahy
Kontaktovat uživatele:

#9 Příspěvek od hafca »

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.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#10 Příspěvek od FHonza »

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.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#11 Příspěvek od FHonza »

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

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#12 Příspěvek od Atlan »

Skontrolovat ci nieje v poistkach nastavene div8, a skontrolovat clk frekvenciu na programatore.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#13 Příspěvek od FHonza »

div8 nastaven není

Uživatelský avatar
hafca
Příspěvky: 4401
Registrován: 27 črc 2004, 02:00
Bydliště: 25km na západ od Prahy
Kontaktovat uživatele:

#14 Příspěvek od hafca »

Dík, vyzkouším, jen co vratim domu. Musel jsem odjet a wifina tu moc nefunguje.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.

Uživatelský avatar
hafca
Příspěvky: 4401
Registrován: 27 črc 2004, 02:00
Bydliště: 25km na západ od Prahy
Kontaktovat uživatele:

#15 Příspěvek od hafca »

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.
Kdyby Edison nevynalezl elektřinu, do teď se díváme na televizi při svíčkách.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“