Zobrazují se příspěvky se štítkemavr. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemavr. Zobrazit všechny příspěvky

10. srpna 2014

Programátor ATTiny4/5/9/10/20/40

ATTiny4/5/9/10/20/40 jsou nejmenší procesory z rodiny AVR od firmy ATMEL. Občas se hodí nějaký úplně malinký MCU v malém pouzdře třeba SOT23-6. Pro tvorbu SW je možné použit assemblem v AVR studiu. Trošku problém je, že tyto MCU využívají programovací rozhraní TPI. Na internetu je návod jak naprogramovat tyto MCU jen pomocí FTDI převodníku a AVRDude. Programování je velmi pomalé (desítky vteřin na 1kb) a funguje jen pod linuxem se speciální verzí AVRDude. Já jsem využil jinou možnost  a to programovaní pomocí dnes hodně rozšířeného Arduina. Vytvořil jsem destičku (shield), která jde nasadit přímo na Arduino UNO. Umožňuje připojit ATTiny4/5/9/10 přimo položením na desku  (přichycením např kolíčkem) nebe přes redukci na DIP. Pro větší  MCU s rozhraním TPI jsou vyvedeny signály na konektoru.



Schéma zapojení

Plošný spoj

Konstrukce je velmi jednoduchá. Pokud chceme použít všechny vývody je třeba zakázat RESET na MCU. Pro opětovné programovaní pak musíme použít HV programovaní. Přepínač mezi LV a HV programováním je umístěn na desce. Arduino je třeba pak napájet z 12V.

Programovací SW pro Arduino umí jen několik základních příkazů. Po připojení MCU by se měl na sériové lince (rychlost 9600) objevit:
NVM enabled

Potom jsou zadávat příkazy:
D = dump memory, vypíše paměť MCU
E = erase chip. Smaže MCU
P = write program. Programuje MCU, po zadaní tohoto příkazu pošlete HEX soubor po sériové lince (stačí vložit ze schránky)
S = set fuse. Nastavuje pojistky
C = clear fuse.Maže pojistky
H = zapne HV programování
T = přepíná jestli je HV programovaní při log 0 nebo 1
R/r = reset

Kompletní balík s programem pro Arduino a soubory pro Eagle si můžete stáhnout zde.
Stavebnici je možné zakoupit na Hamshop.cz.


9. března 2014

AVR ATtiny fusebit doktor

Docela často pracuji s mikroprocesory AVR řady ATtiny. Občas se stává, že potřebuji použít vývod resetu jako I/O port (RSTDISBL) a pak procesor už nejde naprogramovat a nebo si špatně spočítám hodnoty pojistek a procesor také přestane komunikovat s programátorem. K resetu pojistek je třeba použít programátor, který podporuje HVP.Na internetu jsem objevil jednoduchý přípravek, který umí vrátit pojistky do výchozího stavu. Podporuje většinu obvodů řady ATtiny. Zapojení je velice jednoduché. Srdcem je ATtiny2313 a okolo je jen pár součástek.


Přidat popisek

Přidat popisek
Ovládání je velmi jednoduché. Stačí připojit procesor, který chceme vrátit do původního stavu a stisknout tlačítko START. Pokud vše proběhne jak má, rozsvítí se zelená LED.
Obsah procesoru včetně zdrojových kódů je na stránkách autora. Přípravek jsem si vyráběl hlavně por svoji potřebu, ale zbylo mi pár plošných spojů. Pokud by měl někdo zájem, je možné plošný spoj zakoupit na hamshop.cz.


14. června 2012

ATiny10 - Programování

Nejmenší mikrokontrolér od Atmelu - ATtiny10 se vyrábí už delší dobu. Disponuje 1024b paměti flash a 4 použitelnými IO piny (včetně AD převodníku, PWM) , programování je použito rozhraní TPI. Na internetu se objevilo několik návodu jak tento mikrokontrolér naprogramovat až v poslední době (samozřejmě, že je možné použít komerční prograátory, které disponují TPI rozhraním - ASIX Presto apod.). Jednou možností je využití Arduina, dále pak existuje návod přímo na na USB programátor na AVRFreaks. Já jsem zvolil poslední nejjednodušší možnost a to využití převodníku USB na sériovou linku od FTDI (FT232R), který jsem měl doma. Vycházel jsem z toho návodu na internetu.  Připojení k procesoru k převodníku je na následujícím obrázku:

K prvním pokusům jsem použil  redukci ze SOT23-6 na DIL. Při programování je třeba používat 5V napájení. Při 3.3V nejde procesor naprogramovat.



K programování je třeba mít nainstalované Avrdude 5.11 (je k dispozici pro WIN i Linux). Do avrdude.conf přidáme novou definici programátoru:


programmer
  id    = "dasaftdi";
  desc  = "FTDI serial port banging, reset=rts sck=dtr mosi=txd miso=cts";
  type  = serbb;
  reset = ~7;
  sck   = ~4;
  mosi  = ~3;
  miso  = ~8;
;

A pak už můžeme spustit programování:

sudo avrdude -c dasaftdi -P /dev/ttyUSB0 -p t10 -U flash:w:blik.hex


Programování je poměrně pomalé, ale to je daň za využití převodníku bit bang módu.
Zatím jsem nevyřešil použití pinu reset jako IO pinu. Pokud tento pin pomocí konfiguračních pojistky změníme na IO pin, je třeba pro další programovaní je použít 12Vna tomto pinu.
Plošný spoj na SOT23-6 na DIL nebo i destičku se zapájeným procesorem je možné zakoupit na hamshop.cz.

13. května 2012

Univerzální USB IO s ATTINY2313

Již delší dobu je k dispozici virtuální USB port (V-USB)pro mikrokontrolery AVR. Je to softwarové řešení USB portu přímo na pinech mikrokontroléru včetně ovladačů pro WINDOWS a LINUX. Na tomto řešení jsou dnes postavené levné programátory a spousta další zařízení. Pokusil jsem se vytvořit jednoduchou univerzální desku,  kde by bylo řešeno vše potřebné k USB připojení a všechny zbylé piny MCU byly vyvedeny na pájecí plošky. Na desce je osazen ATTINY2313, který má dostatečný počet portů.

Schéma zapojení
Plošný spoj
První aplikací pro tuto desku je jednoduchý spínač ovládaný přes USB, který může ovládat až 8 relé. Využívá celý port PB MCU.  V paměti EEPROM MCU je uložen poslední stav. Takže i po výpadku napájení se spínač vrátí do původního stavu. SW vychází z demo kódu od V-USB a je mírně upraven.
Připojení relé 
Součástí SW je i ovládací program pro Windows a Linux (na WIN je třeba nainstalovat ovladače). Ovládání spínače je velmi jednoduché, stačí spustit ovládací program powerSwitch se správnými parametry:


Pro sepnutí portu 3 (PB3 na MCU),  zadáte (pozor v linuxu, pouštět pod rootem):

powerSwitch on 3

Pro vypnutí portu  3,  zadáte:

powerSwitch off 0

Pro zapnutí portu 0 na 5 sekund zadáte:

powerSwitch off 3 5

Stav portů zjistíte zadáním:

powerSwitch status

Zde je ukázka blikání LED na portu PB0 z linuxu:



Celý software se zdrojovými kódy i binárkami pro WIN a LINUX si můžete stáhnout zde. Na www.hamshop.cz si můžete zakoupit stavebnici (MCU je dodáván zvlášť). Tento modul nabízí široké uplatnění a jen změnou firmware procesoru lze vytvořit třeba převodník I2C na USB nebo 1-WIRE na USB apod. Momentálně pracuji na ovládání DDS přes USB.

23. března 2011

Vývojové desky pro AVR

Docela často něco dělám s mikroprocesory AVR. Pro urychlení vývoje jsem si vyrobil destičky pro různé verze (ATtiny13,ATtiny2313, ATmega8/48/168/328) dle potřeby, které pasují do nepájivého  kontaktního pole.  Na deskách je ošetřený reset, vyvedeno 6 pinové ISP pro připojení programátoru a u verze pro procesory řady mega i UART a I2C. Malé kontaktní pole se vejde i s deskou do krabičky od Energitu.
ATmega168

ATtiny2313

Stavebnice destiček je možné objednat zde.

18. října 2010

Externí display pro FT-817 a transvertory II.

Díky Paolovi je na světě nový firmware. Změnilo se zobrazení - kmitočet je nyní zobrazován na 100 Hz. Mód se přesunul dolů. Celkově je zobrazení přehlednější. Dále je možné při programování LO nastavit přesněji kmitočet. Finta je v tom, že FT-817 vrací mód jako číslo. Takže je možné nastavit LO s větší přesností. K LO se přičte (kHz):
LSB: 0
USB: 1
CW : 2
CWR: 3
AM : 4
FM : 8
Zde je krátké video, jak to funguje

Dále je na světě první návrh plošného spoje. Teď je třeba ověřit, jestli všechno pasuje do krabičky, jak má.

17. října 2010

Externí display pro FT-817 a transvertory I.

FT-817 je hojeně využívaná jako mezifrekvence pro mikrovlnná pásma. Paolo IK1ZYW je autorem externí klávesnice a externího displeje pro FT-817. Napadlo nás využít  tento externí display jako zobrazení frekvence pro transvertory. Protože používám jednu FT-817 pro buzení dvou transvertorů 10GHz s MF na 2m a 24GHz na 70cm je diplay doplněn ještě o přepínání PTT aby člověk nemusel během závodu na nic myslet. Paolo upravil velmi rychle svůj firmware pro toto použití.

 
Srdcem celého displaye je AVR ATTiny2313 a několik součástek. Zatím je hotov první prototyp, ale narážíme na nedostatek paměti v procesoru a možná do finální verze bude použit jiný typ. Zatím lze nastavit kmitočet LO mezi 100MHz a 170GHz s rozlišením na 10kHz. Pro 10GHz nastavíme na FT-817 10 224 .00 a stiskneme talčítko S1. Přepínač S2 slouží k volbě jestli programujeme  LO pro VHF nebo UHF pásmo. S3 slouží k rychlému přepnutí mezi VFO A/B.


Prototyp zatím vznikl na univerzálním plošném spoji, ale pracuji na finálním provedení. I firmware  dozná  zřejmě ještě určité změny.
Více fotek najdete v galerii...

16. května 2010

Krokoměr s CW výstupem

Tohle jednoduché zařízení vzniklo pro děti na kroužek elektrotechniky, aby se mohli nenásilnou formou pomalu učit CW. Inspirací byla stránka Alana VK2ZAY, kde popisuje krokoměr s rtuťovým snímačem. Bohužel díky zákazu rtuti jsou tyto snímače v Evropě nedostupné. Já jsem nahradil rtuťový snímač mechanickým  od Adafruit.com. Celé zařízení je postaveno na mikroprocesoru AVR ATtiny13a a je napájené z jedné knoflíkové baterie CR2032. Procesor je většinu času v režimu spánku a odběr je zanedbatelný a při přehrávání počtu ušlých kroků nebo metrů (záleží na volbě ve firmware) cca 1.5mA. Program pro mikroprocesor je napsán v jazyce C (GCC) pod AVR studiem. Samolepku na krabičku Hammond 1551G navrhl Dan OK1HRA.
Celý projekt včetně zdrojových kódů programu je k dispozici na AVRFreaks.net.