Resetovač FUSE bajtů a ISP programátor Zde je původní verze - V3 Ú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), ale kvůli omylu při navrhování plošného spoje je nutné v programu přeházet barvy (viz níže). 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 Plošný spoj jsem si nechal vyrobit u DirtyBoards: ODKAZ
Tato první objednaná verze (označená jako Ver.3) má dva nedostatky, které je ale jednoduché opravit: První problém byl v tom, že alternativní THT varianta tříbarevné LED má jinak uspořádané vývody,
než jsem předpokládal. Takže barvy v SMD a THT verzi neodpovídají.
Nejjednodušším řešením je změna přiřazení pinů pro THT LED v programu. Při použití
SMD LED je všechno v pořádku.
Já už další desky vyrábět nebudu, ale pokud byste si chtěli nechat tyto desky vyrobit sami, tak tady je opravená verze plošného spoje, která by měla mít výše zmíněné nedostatky opravené: refuse_v4.zip
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: isprefu.ino 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.
|
úvodní strana webu AstroMiK.org |
|
poslední úprava stránky 12.2.2017 |