Resetovač
FUSE bajtů a ISP programátor Úvod Původní "vysokonapěťový" resetovač fuse bajtů
jsem přepracoval a navrhnul na něj plošňák. Napájení si bere z USB portu z počítače a pomocí tohoto USB připojení také probíhá komunikace při nahrávání programu. Požadované nastavení fuse bajtů se
dá jednoduše změnit pomocí DIL přepínačů.
Schéma a popis elektroniky Celé zařízení je řízeno pomocí Arduina NANO. Programované ATtiny je možné vložit buď do patice, nebo se dá připojit přes standardní ISP konektor (MLW10) na boku desky. K přeprogramování FUSE je potřebné zvýšené napětí 12V.
Toto napětí se získává z modulu zvyšujícího (Step-Up) regulátoru. Napětí na 12V zdroji je regulovatelné. Z toho důvodu
jsem považoval za vhodné testovat jeho skutečnou velikost. Signalizace různých stavů je zajišťována pomocí 3-barevné SMD LED. Jako alternativu je možné použít i vývodovou trojbarevnou LED (THT). Neosazujte obě LED zároveň. Tlačítko pro přepis fuse bajtů je dvojité. To umožňuje připojit 12V na ATtiny jen v případě jeho sepnutí. V režimu ISP programátoru je 12V odpojených. Pin RESET na ATtiny je ovládán přes FET tranzistor. Vychází to z původního zapojení restovače FUSE bajtů. Protože FET tranzistor v tomto zapojení obrací fázi signálu, bylo třeba upravit originální program pro ISP programátor, aby to obracení fáze zohlednil. Plošný spoj
Podklady pro výrobu plošného spoje ve formátu pro Eagle jsou tady: pcb_V4.zip Před osazením doporučuji alespoň zhruba nastavit 12V na Step-Up regulátoru. Kdyby byl při zapnutí vytočený na maximum, mohlo by to způsobit problémy na měřícím vstupu. Dále je nutné tento Step-Up regulátor osadit trochu výše nad základní destičku, aby byl zajištěn přistup k nastavovacímu trimru. Již několikrát se mi vyplatilo, že jsem nechal připojovací piny Step-Up regulátoru delší, takže jsou k dispozici snadno dostupná napětí 5V, 12V a GND. Pozor na správný typ dvojtlačítka! Musí být použito "symetrické" dvojtlačítko, u kterého je jedno jak se osadí. Věnujte pozornost popisku na plošňáku. Použité tlačítko má střední vývody v protilehlých rozích (v rozepnutém stavu jsou spojené krajní vývody). Existují ale i tlačítka se stejnými rozměry, které mají střední vývody uprostřed. Při jejich osazování záleží na správné orientaci. Plošný spoj ale na tato tlačítka není připravený. Software Jádrem celého programu jsou dva bloky, které jsem z větší části opsal a trochu upravil.První blok je resetovač FUSE bajtů. Byl převzatý z
těchto stránek: https://sites.google.com/site/wayneholder/attiny-fuse-reset Druhý blok je ISP programátor, který je obsažen v příkladech ve vývojovém prostředí Arduino. V tomto bloku jsem upravil přiřazení pinů tak, aby to odpovídalo plošnému spoji. Další změnou bylo invertování signálu RESET (kvůli spínacímu FET tranzistoru). K těmto dvěma blokům je přidán kus kódu pro testování napětí 12V zdroje a několik dalších jednodušších podprogramů pro signalizaci (blikání 3-barevnou LED).
Celý program pro Arduino NANO je ke stažení tady: isp_refu_v6.ino Do Arduina NANO je nutné nahrát tento program ještě před jeho zasunutím do základní destičky.Kvůli správné funkci ISP programátoru bylo nutné zablokovat resetovací pin kondenzátorem C4 (viz schéma), takže do zasunutého Arduina není možné nahrát program přes USB konektor. Když se Arduino NANO vytáhne z patice, kondenzátor C4 se odpojí a programování přes USB konektor probíhá zase normálně. Návody a videa
1) Nastavení FUSE pro nové ATtiny13 tak, aby bylo možné s obvodem komunikovat Nové obvody ATtiny mají přednastavené fuse bajty tak, že
dělí základní frekvenci 8 (v LowFuse je nastavený bit CKDIV8). V případě THT varianty obvodu ATtiny13 ho stačí zasunout do patice, přepnout DIL přepínače do polohy ON-ON (zelená LED trvale svítí) a podržet tlačítko tak dlouho, než se rozsvítí modrá LED. Tím jsou FUSE bajty přepsány. Pro obvody ATtiny25, ATtiny45 a ATtiny85 se FUSE resetují podobně, akorát DIL přepínač se při použití těchto obvodů nastaví do polohy ON-2 (trvale svítí červená LED)
2) Nastavení FUSE pro ATtiny, které je osazené na jiné desce s ISP konektorem Pokud je ATtiny osazené na externí desce nebo je v SMD variantě (takže nejde zasunout do patice), připojí se tato externí deska pomocí standardního ISP konektoru. Navíc je nutné ještě propojit pin PB3, který není součástí ISP konektoru. Pak se postupuje stejně, jako v předchozím případě. Pomocí DIL přepínače se zvolí požadované FUSE a tlačítko se podrží tak dlouho, než se rozsvítí modrá LED.
3) Nahrání programu do ATtiny v režimu ISP programátoru Pokud je ATtiny ve stavu, kdy je možné ho zasunout do patice, stačí připojit programovací přípravek k počítači. V případě, že je ATtiny součástí externí desky, stačí propojit ISP konektory (tady už není nutné propojovat pin PB3). Ve vývojovém prostředí vybrat typ programátoru "Arduino
as ISP" a pak už jen příkazem "Nahrát pomocí programátoru" poslat
program do ATtiny.
4) Obnovení funkce pinu RESET v ATtiny, nahrání programu a opětovné přepnutí pinu RESET do funkce výstupu
5) Přímé operace s EEPROM a FLASH pamětí pomocí režimu ISP programátoru (přes AVRDUDE) Stejně, jako je možné do ATtiny poslat program přes
vývojové prostředí Arduino, je možné provádět i přímé operace s EEPROM
nebo FLASH. Přes příkazovou řádku dokáže například přečíst obsah EEPROM z ATtiny a uložit ho do souboru, nebo naopak obsah souboru zapsat do FLASH paměti v ATtiny. Má spoustu nastavení. Popis všech parametrů je třeba zde: http://www.nongnu.org/avrdude... Protože ovládání přes příkazovou řádku je nepohodlné,
existuje mnoho grafických nadstaveb, pomocí kterých je možné provádět
operace pomocí klikání myši. V nastavovacím formuláři je nejdůležitější zvolit správný typ programátoru a přenosovou rychlost (na obrázku níže označeno červeně). Tyto položky nastavte přesně tak, jak je uvedeno na obrázku. Dále je třeba zvolit virtuální COM port (vytvoří se po připojení ISP programátoru k počítači) - na obrázku modře, ale u každého to může být jiné. Další nastavení už snad nepotřebuje žádné komentáře. Zvolí se soubor ze kterého se mají načíst a odeslat data do ATtiny, nebo do kterého se má zapsat obsah příslušné paměti z ATtiny.
Doplnění:
|
úvodní strana webu AstroMiK.org |
|
poslední úprava stránky 29.5.2024 |