atmega8 - bootloader

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

Moderátor: Moderátoři

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

#16 Příspěvek od FHonza »

Ale celou dobu se bavíme o bootloaderu, tj o bitech BOOTSZx a BOOTRST ( Boot Reset vector Enabled) o BOD (Brown-out detection) nepadlo ani slovo. A na funkci bootloaderu to vliv nemá.
Uživatelský avatar
lesana87
Příspěvky: 4395
Registrován: 20 zář 2014, 00:00

#17 Příspěvek od lesana87 »

Netvrdila jsem nic o vlivu na bootloader, jen říkám, že jsou nevhodně nastavené fuse bity. :)
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#18 Příspěvek od FHonza »

Máš pravdu, bez BOD by dle doporučení měla být nastavená prodleva po resetu. Byl jsem "zaseklej" na tom bootloaderu :) Mimochodem Arduino to má v instalaci tím pádem jinak než je doporučeno.

Takže, ještě zkus nastavit L: 0xFF H:0xCA (i v boards.txt)

Jestli je to tím, tak celý měsíc, každé ráno, zarecituju oslavné verše na Lesanu :)

Edit: omlouvám se za překlep ve jménu.
Naposledy upravil(a) FHonza dne 06 bře 2016, 20:50, celkem upraveno 1 x.
Uživatelský avatar
lesana87
Příspěvky: 4395
Registrován: 20 zář 2014, 00:00

#19 Příspěvek od lesana87 »

Tím to zadrhávání asi nebude, ale je dobré v tom mít pořádek a držet se doporučení výrobce.
A jsem z lesa, ne z lase. :)
Uživatelský avatar
Dan555
Příspěvky: 36
Registrován: 03 bře 2016, 00:00

#20 Příspěvek od Dan555 »

Díky za rady, zkusím to a dám vědět.
Uživatelský avatar
Dan555
Příspěvky: 36
Registrován: 03 bře 2016, 00:00

#21 Příspěvek od Dan555 »

FHonza píše:Máš pravdu, bez BOD by dle doporučení měla být nastavená prodleva po resetu. Byl jsem "zaseklej" na tom bootloaderu :) Mimochodem Arduino to má v instalaci tím pádem jinak než je doporučeno.

Takže, ještě zkus nastavit L: 0xFF H:0xCA (i v boards.txt)

Jestli je to tím, tak celý měsíc, každé ráno, zarecituju oslavné verše na Lesanu :)

Edit: omlouvám se za překlep ve jménu.


Recitace nebude. :? Bootloader je i nadále šíleně líný. Naslouchá UARTu mnoho zbytečně dlouhých sekund a po nahrání (mimochodem viditelně pomalém) mu další dlouhé sekundy trvá, než se zresetuje a spustí program. Ten ale pak ovšem sviští obvyklým způsobem a i časování v programu souhlasí, takže potíž je výhradně s bootloaderem. Něco je ohledně něj špatně, akorát nevím co... Mám různé vývojové desky, všechny s 16MHz krystalem. Nemůže být přeci jen problém s časováním? Není bootloader určený pro jinou pracovní frekvenci? Třeba vnitřních 1MHz či 8MHz? Nerozumím také tomu, co znamená "start up time: 16k CK + 64ms", když se podívám na nastavení pojistek. Vám finguje bootloader atmegy8 stejně rychle jako atmegy328?
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#22 Příspěvek od FHonza »

Napiš prosím jakou máš verzi IDE a přidej sem tu část board.txt, kde máš definovanou tu desku s atmega8.

K tomu času viz dva obrázky. Těch 64ms je čas Tout
Přílohy
reset.gif
Vnější reset
(2.02 KiB) Staženo 103 x
poweron.gif
Power-on reset
(2.19 KiB) Staženo 121 x
Uživatelský avatar
Dan555
Příspěvky: 36
Registrován: 03 bře 2016, 00:00

#23 Příspěvek od Dan555 »

FHonza píše:Napiš prosím jakou máš verzi IDE a přidej sem tu část board.txt, kde máš definovanou tu desku s atmega8.

K tomu času viz dva obrázky. Těch 64ms je čas Tout


Jdu si obrázky nastudovat, ale něco mi říká, že tohle by mohl být možná důvod, proč programátor nemůže přes UART provést reset a při nahrávání ho musím provádět ručně (zatímco s atmega328 to funguje). Viz. obrázek. Zkoušel jsem zkratovat i kondenzátor 100n na DTR, výsledek stejný. Programátor prostě reset nedokáže s atmega8 provést.

Verzi IDE mám 1.6.5 i 1.6.7, v obou je to stejné.

## Arduino NG or older w/ ATmega8
## ------------------------------
atmegang.menu.cpu.atmega8=ATmega8

atmegang.menu.cpu.atmega8.upload.maximum_size=7168
atmegang.menu.cpu.atmega8.upload.maximum_data_size=1024

atmegang.menu.cpu.atmega8.bootloader.low_fuses=0xdf
atmegang.menu.cpu.atmega8.bootloader.high_fuses=0xca
atmegang.menu.cpu.atmega8.bootloader.file=atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex

atmegang.menu.cpu.atmega8.build.mcu=atmega8
Přílohy
atmega_board3.png
Zapojení vývojové desky pro atmega328p a atmega8
(76.17 KiB) Staženo 116 x
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#24 Příspěvek od FHonza »

V tom boards.txt je ještě společná část kousek nad tvojí ukázkou. Měla by být takto (resp. tak jí mám já a funguje to):

Kód: Vybrat vše

atmegang.name=Arduino NG or older

atmegang.upload.tool=avrdude
atmegang.upload.protocol=arduino
atmegang.upload.speed=19200

atmegang.bootloader.tool=avrdude
atmegang.bootloader.unlock_bits=0x3F
atmegang.bootloader.lock_bits=0x0F

atmegang.build.mcu=atmegang
atmegang.build.f_cpu=16000000L
atmegang.build.board=AVR_NG
atmegang.build.core=arduino
atmegang.build.variant=standard


Ale stejně si myslím že to tím nebude :(
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#25 Příspěvek od mtajovsky »

Mě to trápení se sériovým uploadem připadá jako zbytečný masochismus. Stačí si pořídit tohle a tohle a je za stovku vystaráno. Mám to vyzkoušené právě s ATMega8. USBasp doporučuji opatřit s připravenou propojkou JP2, aby šel flashnout novější firmware, který nedělá problémy s nastavováním hodinového kmitočtu při programování. K tomu ještě nainstalovat např. programovací SW Khazama.

Z IDE se pak volí upload přes programátor - Ctrl+Shift+U.
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#26 Příspěvek od FHonza »

To sem psal jako svůj první příspěvek. Pod tím je odpověď proč místo ISP chce tazatel použít bootloader.
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#27 Příspěvek od mtajovsky »

No vím, ale ty důvody se mi zdají slabé, zvlášť když jsou s tím takové potíže. Ono vyvést 3 piny pro bootloader nebo 4 piny pro ISP už není takový rozdíl.
Uživatelský avatar
Dan555
Příspěvky: 36
Registrován: 03 bře 2016, 00:00

#28 Příspěvek od Dan555 »

mtajovsky píše:No vím, ale ty důvody se mi zdají slabé, zvlášť když jsou s tím takové potíže. Ono vyvést 3 piny pro bootloader nebo 4 piny pro ISP už není takový rozdíl.


Výše uvedenými čínskými udělátky jsem si zpočátku prošel též. Jsou to skvělí pomocníci a lze s nimi tyhle obtíže úplně obejít. Ale já už se nyní neptám jak to udělat, ale proč to tak či onak (ne)funguje. To proto, že skrze SPI či paralelním programováním (tím mažu pojistky) mám obvody od attiny13 po atmega328 zvládnuté. Teď bych rád porozuměl ještě i bootloaderům.
Uživatelský avatar
Dan555
Příspěvky: 36
Registrován: 03 bře 2016, 00:00

#29 Příspěvek od Dan555 »

Jeejda píše:Pak ti asi nezbyde než podívat se do zdrojáků bootloaderu, jen tak se přesně dozvíš jak to v něm funguje a případně si ho můžeš upravit podle sebe... když ti to jinak jde a jen ti vadí prodleva a ruční reset, tak nevím co jiného poradit.


Díky za odkaz, jdu ho studovat. :-)
Odpovědět

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