Bootloader pro ATmega328

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

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Jirka525
Příspěvky: 325
Registrován: 22 kvě 2013, 02:00
Bydliště: Psáry JN79GW

Bootloader pro ATmega328

#1 Příspěvek od Jirka525 »

Ahoj, potřeboval bych radu. Hledám bootloader pro ATmega328. Potřebuji pouze základní funkci. to znamená, při normální práci bude uživatelský program komunikovat po sériové lince s připojeným zařízením a přenášet data. Když se na linku připojím s prohramovacím SW, používám Atmel studio, tak bootloader provede upgrade SW v MCU.
Na internetu jsem našel pouze bootloadery pro Arduino a nejsem si jistý, jestli je to obecně použitelné.
Díky za radu.
Jirka

Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 01:00

#2 Příspěvek od frpr666 »

Já to chápu tak, že bootloader potřebuje:
1/ software pro MCU
2/ software pro uživatele (pro PC)
Obojí už dodává Atmel (zdarma) . http://www.atmel.com/

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#3 Příspěvek od mtajovsky »

Pro komunikaci při běhu firmware se nepoužívá bootloader. Firmware obsahuje sám kód pro ovládání např. sériové komunikace. To si můžete naprogramovat sám, nebo použít nějaké knihovny.

Při použití AS si opatřete levný programátor přes ISP, z Číny se dá sehnat pod 2 dolary. U nás asi za 150 Kč:
http://pest.cz/programator-usbasp-usb-i ... rogramator

Je to lepší než všechny bootloadery.

Pro bootloader přes sériovou linku byste stejně musel mít převodník USB <-> serial.

Uživatelský avatar
Jirka525
Příspěvky: 325
Registrován: 22 kvě 2013, 02:00
Bydliště: Psáry JN79GW

#4 Příspěvek od Jirka525 »

Mnohokrát děkuji za rady. Bootloader jsem hledal všude možně, jen na stránky Atmelu mě nenapadlo zajít. Asi už stárnu. Hi. Už jsem si stáhnul informaci ale bude chvíli trvat, než se tím prokoušu.
ISP programátor už mám. Čidlo o kterém je řeč bude umístěné dost nepřístupně. Obávám se, že se to přece jen na poprvé nepovede bez chyb a rád bych měl možnost pohodlně udělat upgrade. Kdybych se spoléhal pouze na ISP programátor, tak bych musel čidlo demontovat, na stole přeprogramovat a opět vrátit na místo. Takže v tuto chvíli bych dal přednost řešení, které umožní download programu po sériové lince.
Jirka

Uživatelský avatar
pavoucisit
Příspěvky: 176
Registrován: 02 lis 2008, 01:00
Bydliště: Havířov

#5 Příspěvek od pavoucisit »

http://www.arduino8.cz/hrajeme-si-wemos ... -wifi-ota/ za mě je toto řešení docela pěkné, řeší se pouze napájení.
Kdyby jsi chtěl natahovat program po sériové lince, tak nedovedu posoudit, jak max dlouhé vedení (např.UTP) může být. Pokud by jsi chtěl použít Arduino bootloader, tak stejně potřebuješ další drát pro reset čipu. Protože Arduino po resetu krátce čeká na příjem dat nového programu a pokud nic nepřichází, spustí se zavedený program.

Uživatelský avatar
Jirka525
Příspěvky: 325
Registrován: 22 kvě 2013, 02:00
Bydliště: Psáry JN79GW

#6 Příspěvek od Jirka525 »

Což o to, vypadá to pěkně. Jenže wifi tam nemám, zatímco RS485 ano. Reset bych vyřešil odepnutím napájení.
Jirka

Uživatelský avatar
dobrman
Příspěvky: 1470
Registrován: 12 srp 2012, 02:00
Bydliště: J H

#7 Příspěvek od dobrman »

pavoucisit píše:......Kdyby jsi chtěl natahovat program po sériové lince, tak nedovedu posoudit, jak max dlouhé vedení (např.UTP) může být.....
RS485 klidně přes 1000m

Uživatelský avatar
PC-maniak
Příspěvky: 945
Registrován: 11 čer 2006, 02:00
Bydliště: Plzen-Jih

#8 Příspěvek od PC-maniak »

muzu potvrdit tvrzeni pana dobrman RS485 da opravdu hodne ja osobne mam vyzkouseno 532m


tady na foru nekdo zkusil pres 4km :D

Kód: Vybrat vše

http://forums.parallax.com/discussion/114581/rs-485-and-max-cable-length
a horsi RS232 taky neni uplne spatne tech 10m da spolehlive osobne sem zkousel zatim max jen 2m

tady nekdo pise ze ma vyzkouseno 60m

Kód: Vybrat vše

http://www.edaboard.com/thread47096.html
hodne zalezi jak zarusene to prostredi bude ... ale rozhodne bych se toho nebal ;)
Tomáš

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#9 Příspěvek od rnbw »

Kedysi som mal v byte prepojene dve PC cez 15m RS232 kabel. Dal sa cez to hrat napr. DOOM :D
Potom som to vymenil za 50Ω koax pre ethernet a ten tam funguje dodnes (10Mbit staci a nikomu sa nechce vytahovat ho spod kobercov a spoza nabytku).

Uživatelský avatar
PC-maniak
Příspěvky: 945
Registrován: 11 čer 2006, 02:00
Bydliště: Plzen-Jih

#10 Příspěvek od PC-maniak »

joo DOOM :D sakra nekdy musim znovu zahrat pekne od jednicky :P
Tomáš

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#11 Příspěvek od mtajovsky »

Jirka525 píše:Což o to, vypadá to pěkně. Jenže wifi tam nemám, zatímco RS485 ano. Reset bych vyřešil odepnutím napájení.
Nejsem si s tím jist, alespoň co se týče bootloaderu pro Arduino. Po resetu se skočí do bootloaderu a tam se čeká jistou dobu. Pokud se v této době započne s uploadem firmware je v činnosti bootloader. Pokud se tato doba překročí, startuje se normální běh. Tipuji, že i jiné bootloadery to dělají podobně. Musel byste mít speciální spínač ovládaný z PC, který bude zapínání napětí synchronizovat s uploadem firmware.

Uživatelský avatar
PC-maniak
Příspěvky: 945
Registrován: 11 čer 2006, 02:00
Bydliště: Plzen-Jih

#12 Příspěvek od PC-maniak »

jo me se ten reset taky nezda .. proste si tahni jeden kablik navic .. v utp jich je dost ne ? :)
Tomáš

Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 01:00

#13 Příspěvek od frpr666 »

Reset MCU a skok do bootloaderu se dá udělat i softwarově něco jako:

Kód: Vybrat vše

if (SEQ_RECEIVED_IS_RESET)
{
  goto BOOTLOADER_RESET_VECT;
}

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

#14 Příspěvek od Atlan »

Myslim ze to je najmensi detial, upravit bootloader od atmelu tak, aby pri zapnuti cakal 5s ci nenastane komunikacia ohladom aktualizacie programu. Tych 5s ta asi nezabije cakat pri zapnuti napajania ci? a soft vies tam dostat cez tx rx vodice.

Uživatelský avatar
Jirka525
Příspěvky: 325
Registrován: 22 kvě 2013, 02:00
Bydliště: Psáry JN79GW

#15 Příspěvek od Jirka525 »

Děkuji za náměty. Zatím jsem nestačil prostudovat manuál na bootloader od Atmelu http://www.microchip.com/wwwproducts/en/ATMEGA328. Ale tak rychle, jak jsem to prolétl očima mě připadá, že by to mohlo jít. Zdrojáky tam jsou, tak snad najdu, kde to čeká a prodloužím čas. Jestli se octnu ve slepé uličce, tak mě tu máte za 14 dní s prosíkem zase.
Jirka

Odpovědět

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