ISP programátor (USBasp)

Desky Arduino a jejich klony je (většinou) možné snadno programovat pomocí USB. Předpokládá to ale, že v MCU je zaveden bootloader, tj. programový blok, který zavedení pomocí USB (popř. UART) umožní. Pokud se ale rozhodneme pracovat s "holými" nenaprogramovanými MCU, např. Atmega328 nebo Attiny85, narazíme na potřebu zavést do nich kód (což může být třeba právě bootloader) jinak. Narozdíl od STM32 totiž AVR procesory nemají bootloader pro UART obsažený přímo v čipu. A k tomuto nám právě poslouží popisovaný ISP programátor. Další možností, kdy se hodí zavedení programu pomocí ISP, je situace, kdy se nedostává paměti pro program. Absence bootloaderu pak nějaký prostor ušetří.

Na Aliexpressu jsem si pořídil tuto variantu programátoru:

Hlavním záměrem pro nákup programátoru bylo to, že jsem pořídil také několik MCU Atmega328P. Přestože pro jejich "inicializaci" se dá využít např. i Arduino naprogramované jako ISP programátor, je to celkem otravné, především kvůli zdlouhavému propojování kabeláže a celkem velkému prostoru k omylu při jejím zapojování. No a nekup to, když USBasp se dá pořídit za cca $2.

Pro programování holých MCU je taky šikovné mít k ruce něco takového:
(pozn: na obrázku je ZIF patice do DPS vložena opačně)

Tato vývojová deska umožňoje práci s 28pin AVR čipy (Atmega8/48/88/168/328...). Výhodou je, že na DPS je osazen konektor pro připojení IPS - ten je možné 1:1 propojit (plochým kabelem) přímo s USBaps či jiným ISP programátorem. Při zkoumání zapojení desky jsem zjistil, že vývod AREF je propojen s VCC, což pro samotné programování není na závadu, ale znemožňuje to alternativní řešení referenčního napětí pro analogové vstupy.

Upgrade firmware

Při práci s USBasp v ArduinoIDE jsem narazil na výpis chybových hlášení v průběhu programování. Eliminace těchto hlášení je možná zavedením nového firmwaru podle TOHOTO NÁVODU, nicméně programování funguje bez ohledu na tato chybová hlášení.

Další využití programátoru

Kromě zavádění bootloaderu lze ISP programátor využít i k přímému zavádění programu do Arduina či AVR čipů. Z ArduinoIDE to lze provést klávesovou zkratkou Ctrl+Shift+U, popř z menu "Projekt\Nahrát pomocí programátoru".

Je samozřejmě třeba mít správně zvolený typ programátoru "USBasp" v menu "Nástroje\Programátor:". Předpokládám, že v případě tohoto programování je přepsán bootloader, takže pokud takto programujeme Arduino, které budeme později chtít využívat standardně, budeme pak do něj muset bootloader zavést znovu.

Odkazy

Upgrade FW sts se zálohováním
Upg dle SVETELEKTRO