AProg - ISP programátor pro Atmel AVR (USB, RS232)

Programátor slouží k programování MCU Atmel AVR pomocí SPI rozhraní.

Základní vlastnosti:

  • podpora obvodů ATmega, ATtiny a částečně AT90S
  • zápis a čtení Flash i EEPROM
  • nastavení fuse a lock bitů
  • napájení 2.7V až 5.5V (z programovaného zařízení)
  • podpora rozhraní USB (USB1.1, USB2.0) nebo RS232
  • možnost galvanického oddělení od PC
  • rychlost zápisu až 25kB/s, rychlost čtení až 60kB/s (závisí na frekvenci hodin SPI a konkrétním MCU)

Vyzkoušené obvody:

  • ATmega2313, ATmega8, ATmega16, ATmega32, ATmega64, ATmega2560

Na vlastní zodpovědnost!

Veškerá rizika spojená s užíváním tohoto zařízení nese uživatel. Autor nenese v žádném případě odpovědnost za škodu, vzniklou používáním zařízení ať by byla jakákoli.

Ve vlastním zájmu si překontrolujte názvy fuse bitů s katalogovým listem ;-)

Popis zapojení

Jako základ celého zapojení byl zvolen MCU ATmega8 vybavený hardwarovým SPI rozhraním, který zajišťuje komunikaci mezi PC a programovaným obvodem. Z důvodu stability přenosové rychlosti asynchronního sériového přenosu dat mezi převodníkem na USB a dostatečné výpočetní rychlosti je použit krystalový oscilátor s frekvencí 10MHz. Napájení MCU se odebírá z programovaného zařízení, což zaručuje správné logické úrovně signálu.

Rozhraní USB poskytuje obvod FT232BM kompatibilní s USB 1.0 i USB 2.0, který se napájí přímo z PC přes USB konektor. Komunikace USB převodníku a MCU využívá hardwarové řízení toku RTS/CTS, ale pouze ve směru odesílání dat do PC (z důvodu možnosti přeplnění vyrovnávací paměti obvodu FT232BM při velkém zatížení PC).


K dispozici jsou tři varianty HW části programátoru:

USB bez galvanického oddělení od PC

  • první vývojová verze - používají hazardéři jako já :D
  • jednostranná DPS
  • součástky SMD 0805, ATmega8 v TQFP32

USB s optoelektronickým oddělením od PC (PCB 1)

USB s optoelektronickým oddělením od PC (PCB 2)

  • dvoustranná DPS
  • součástky SMD 0805, ATmega8 v TQFP32

RS232 port bez galvanického oddělení od PC

Firmware

Firmware pro MCU je kompletně napsán v assembleru přeložitelný překladačem AvrAsm32 (součást AvrStudia od Atmelu). Pokud se v mém kódu někdo vyzná :-), tak si jej může sám vylepšit a zbavit chyb ...

Nastavení fuse bitů

Bit (MSB->LSB) 7 6 5 4 3 2 1 0
Fuse Low Byte 1 0 1 1 1 1 1 1
Fuse High Byte 1 1 0 0 1 0 0 1

0 = naprogramován, 1 = nenaprogramován (jak v datasheetu)

Software

Obslužný software pod Windows má jednoduché uživatelské rozhraní. Vstupní data načítá jak v binárním formátu, tak ve formátu IntelHEX a automaticky detekuje změny datových souborů.

Program umožňuje programovat, číst a verifikovat obsah paměti flash a EEPROM, dále pak nastavovat fuse bity (low, high, extended), lock bity a číst signaturu obvodu. Pro dosažení co největší rychlosti programování lze nastavit frekvenci hodinového kmitočtu SPI rozhraní volbou děliče 2, 4, 8, 16, 32, 64 nebo 128.


Obr. 17 - Ovládací software pod Windows

Ovladače a nastavení

Pro správnou funkci USB verze programátoru je nutné nainstalovat ovladače obvodu FT232BM, které vytvoří při připojení programátoru k PC v systému virtuální sériový port. Ovladače naleznete na stránkách výrobce.

Aby bylo možné dosáhnout maximální rychlosti čtení a zápisu musí se ve vlastnostech sériového portu v rozšířených nastaveních (Ovládací panely -> Systém -> Správce zařízení -> Porty COM a LPT -> COMx -> Vlastnosti ...) zvolit hodnota latency timeru 2ms.

V ovládacím programu AProg (Soubor -> Nastavení) pak nastavit pouze správný port COMx a přenosovou rychlost (1250000 pro USB verzi a 115200 pro RS232 verzi).


Obr. 18 - Nastavení virtuálního portu USB programároru

WebZdarma.cz