KTimer
Jednoduchý časovač/čítač s ATtiny2313
kiko@ostcogito.org, 05.08.2009-00:00












UPOZORNENIE
Prenášanie doma vyrobeného časovača v batožine na letiskách, Vás môže dostať do problémov s pracovníkmi letiskovej kontroly.

Hardvérové vlastnosti


Vlastnosti firmvéru




HARDVÉROVÁ KONŠTRUKCIA (KONŠTRUKCIA PRISTROJA)
Požiadavky na konštrukciu prístroja boli:


Poznámka:V konštrukcii sa nenachádza napäťový regulátor, prístroj je teda napájaný priamo z batérií. Toto eliminuje prúd pretekajúci regulátorom, ktorý môže byť v tejto aplikácii dosť podstatný.
Preto je výhodnejšie využiť široký rozsah napájacieho napätia procesora ATtiny2313. Kombinácia týchto vlastností predlžuje životnosť batérií.


Taktiež sa tu nenachádza žiadny hodinový kryštáľ, čím sa vylučuje využitie prístroja v aplikáciách s požiadavkou na vysokú presnosť.
Presnosť okolo 2% môže byť dosiahnutá ladením TOP hodnoty čítača/časovača1, definovanej v kóde procesora. Softvér obsahuje aj kalibračnú procedúru, ktorá umožňuje zvýšiť presnosť asi na 0,5%.

Štyri multiplexované numerické displeje so spoločnou anódou (LSD056BSR-10) sú v klasickom zapojení s budiacimi tranzistormi.
Považoval som za rozumnejšie použitie trikov ako striedanie displejov so spoločnou anódou a spoločnou katódou (ušetrili by sa tým dva piny procesora), alebo dokonca charliesplexing (týmto mohli byť ušetrené tri piny procesora a štyri tranzistory), nakoniec som ale od nich upustil, pretože som mal problémy s jasom zobrazovačov.
Prvý skúšaný, červeno - oranžový displej (Para-Light A-552E), spotrebovával až 72mA, avšak nedosahoval potrebný jas. Použitím modrej verzie displeja (Para-Light A-551UB), ktorá má veľmi vysoký jas, môžete časovač používať na svietenie, takmer ako baterku.
Pri ich použití je celkom dosť možné, že sa jas medzi jednotlivými zobrazovačmi bude líšiť. Ak by ste chceli získať rovnaký jas, pokúste sa vyberať displeje z rovnakej výrobnej série. Napokon, boli v zapojení použité 4 kusy malého zeleného displeja LN543GA, ktoré som našiel vo výpredaji. S týmto typom zobrazovačov postačuje na dobrú čitateľnosť údajov za denného svetla prúd iba 30mA.

Ak vám bude vyhovovať menší jas zobrazovačov, namiesto pôvodných 220 ohmových rezistorov R1 až R8 uvedených v schéme, použite 330 alebo 470 ohmové rezistory. Touto úpravou dosiahnete zároveň predĺženie životnosti batérie.
Na druhej strane ak budete chcieť vyšší jas, znížte hodnotu rezistorov na 100 až 150 ohmov, avšak počítajte aj zo zníženou výdržou batérie.
Ako môžete vidieť z obrázka, posledné dva zobrazovače som osadil hore nohami. Je to klasický trik, kde desatinná bodka druhého a tretieho zobrazovača spolu nahrádzajú chýbajúcu dvojbodku.

Tlačidlá klávesnice zdieľajú spoločné vodiče s niektorými segmentami zobrazovačov, čím prišlo k ušetreniu ďalších pinov procesora. Ak stlačíte niektoré tlačidlo, spôsobí to nepatrný pokles jasu zobrazovača, ktorý však nemá vplyv na čitateľnosť údajov. Druhá strana klávesnice je paralelne cez rezistor a diódu pripojená k pinu externého prerušenia INT0 mikroprocesora.Tento sa využíva pri zobudení zariadenia z úsporného režimu.
Rezistor R17 je veľmi citlivý na hodnotu. V niektorých prípadoch je potrebná vysoká hodnota (v schéme 100k), ale zdá sa mi, že novšie AVR potrebujú nižšiu hodnotu (3k3).

Existujú dve verzie prístroja:



Verzia 1


Verzia 2

Žiadna z verzií nemá ISP (In-System Programming) konektor. Predpokladá sa, že nahratie počiatočného firmvéru do procesora je možné urobiť na pokusnej doske (kontaktnom poli), alebo na vývojovej doske/ starter kite ako napríklad Kanda STK-200 alebo Atmel STK-500.

FIRMVÉR ČASOVAČA
Ak používate avrdude alebo usbasp ako ja, pozrite sa či sú v poriadku cesty v Makefile pre váš systém:
  1. make fuses
  2. make upload_usbasp_full


Toto bude nahraté do súboru full.hex, ktorý bude obsahovat kód aplikácie spolu s bootloaderom.
Takisto môžte nahrať iba bootloader a to pomocou:
  1. make fuses
  2. make upload_boot


Následne pripojte sériový port a uploadnite aplikáciu.
  1. make upload_serial

Ak používate iný programátor, upravte si adekvátne k tomu Makefile.

Generovanie obrazu
Použite najnovšiu verziu avr-gcc (ja som použil 3.4.4.) s avr-libc 1.4.0. alebo vyššiu.
Ak pracujete so systémom Windows, myslím že posledné verzie WinAVR sú dobré, aj keď GCC 4.X generuje za určitých situácií viac kódu.
Poznámka: Ak používate gcc-avr 4.0 alebo novší, pridajte do globálnej extern deklarácie atribút „__attribute__((...))“ do definície prerušenia. Bez tohto to nebude fungovať.

Ak chcete vytvoriť bootloader, budete taktiež potrebovať AvrAssembler2 z Atmel AVR štúdia.
Ja som to úspešne skompiloval s avra.
Nastavte cesty v Makefile tak aby zodpovedali Vášmu systému, potom zadajte „make clean“ pred samotnou kompiláciou.

Funkcia
Prvé dve tlačítka s označením "+" a "-" sa používajú k nastaveniu počiatočnej hodnoty časovača. Tretím tlačidlom je Enter, ktoým sa spúšta/zastavuje časovač. Ak je časovač spustený, počítanie sa dá pozastaviť hociktorým tlačítkom. Stlačením tlačítka enter sa znovu obnoví počítanie. Posledných 10 sekúnd odpočítavania je zvýraznených zvukovým tikaním (vyzerá to tak trochu ako bomba chystajúca sa vybuchnúť).
Ked je odpočítavanie skončené (na displeji svieti nula), prístroj pípa a bliká po dobu 30 sekúnd. Pípanie je možné zastaviť stlačením tlačítka enter.
Stlačením "+" a "-" súčasne je možné zastaviť počítanie a vynulovať displej. Táto funkcia je aktívna vo všetkých módoch, rovnako aj v prípade ručného počítadla.
Ak spustíte časovač v hodnote 00:00, vstúpite do módu odmeriavania času (stopky), namiesto odpočítavania sa bude čas pripočítavať. V tomto móde nepracuje funkcia alarmu.
Ak zastavíte a znovu spustíte počítanie, čas sa bude naďalej pripočítavať a to dokonca aj ak použijete tlačítka "+" a "-" na zmenu hodnoty počítadla.

Pre návrat do módu odpočítavania času, použite resetovací príkaz (stlačenie tlačidiel "+" a "-" v rovnakom čase) a potom nastavte požadovanú počiatočnú hodnotu.
Automatické vypnutie (v skutočnosti režim spánku) nastane po 20 sekundách nečinnosti prístroja. Ak stlačíte vsetky tlačidlá súčasne, obnovovacia frekvencia bude polovičná.
Táto funkcia je užitočná ako ukážka princípu multiplexovania. Po zobudení prístroja, je defaultne nastavená frekvencia 50Hz

Stav odpočítavania je vyvedený na pine PD6 a je prístupný pomocou konektora XTRNL_DEVICE.
Naň môžete pripojiť externé zariadenia a ovládať ich.

Zariadenie pracuje v dvoch režimoch: jednoduchom a rozšírenom. Oba sú podrobnejšie opísané nižšie.
Toto rozlíšenie bolo zavedené preto, že niektorý užívatelia by mohli byť zmätený vstupom do módu ručného počítadla spôsobeným nepozornosťou, keď jednoducho chceli iba vynulovať počítadlo.

Jednoduchý režim
Tento režim je defaultne nastavený pri prvom zapnutí prístroja. Nachádza sa v nom niekoľko obmedzení:
Klávesy "+" a "-" ovládajú čítač iba po minútach (prvé dva zobrazovače), tým je nastaviteľné rozlíšenie limitované na jednu minútu.
Po zapnutí prístroja (v skutočnosti , po zobudení z režimu spánku) je počítadlo automaticky vynulované.
Mód ručného počítadla je vypnutý, príkaz pre vstup a výstup z/do módu ručného počítadla jednoducho nuluje čítač.

Rozšírený režim
Pre vstup do rozšíreného módu, stlačte a podržte tlačítka "-" a "enter" súčasne asi 15 sekúnd, pokiaľ prístroj nezačne pípať.
Pre návrat späť do jednoduchého režimu, stlačte a podržte asi 15 sekúnd tlačidlá "+" a "enter" až kým nebudete počuť pípnutie.
Tento rozšírený režim, sa vyznačuje viacerými funkciami:


Mód ručného počítadla
Tento mód je vhodný na počítanie vecí, ako sú napríklad položky inventára. Ľahšie sa vám budú počítať dlhšie zoznamy a máte menšiu pravdepodobnosť omylu.
Aby bolo na pohľad zrejmé, že sa nachádzame v móde ručného počítadla, na displeji sa nezobrazuje dvojbodka a ani nuly na jednotlivých zobrazovačoch.
Pripočítanie sa uskutočnuje stlačením a uvoľnením tlačidla "enter". Tlačidlo "enter" pritom môžete držať ako dlho chcete, hodnota sa ku aktuálnemu stavu počítadla pripočíta (zvýši sa iba o jedna) až po jeho uvoľnení.
Pre odpočítanie jednotky od aktuálneho stavu počítadla (napr. korekciu chyby), stačí stlačiť tlačidlo "-". Rovnako ako predtým, nezáleží na tom ako dlho budete tlačidlo držať, od aktuálneho stavu počítadla sa odpočíta jednotka až po jeho uvoľnení.
V tomto móde je tlačidlo "+" neaktívne. Je užitočné pri prebudení prístroja, bez toho aby došlo k zmene hodnoty počítadla.



Ďalšie aplikácie
Prepísanie firmware nám umožnuje použiť prístrroj aj na iné veci. Niektoré z možností sú: pripojenie svetelnej závory na XTRNL_DEVICE konektor, počítanie udalostí, počítadlo na navíjanie cievok, počítadlo ubehnutých kilometrov, otáčkomery, rýchlomery, taxametre a daľšie.

Licencia a sťahovanie
Download: 17_ktimer-1.2.zip

Bootloader bol upravený z bootloaderu LadyAda od fy. Atmex a je licencovaný pod GNU General Public License v2

Pripomienky, návrhy alebo kritiku posielajte na kiko_at_ostcogito_dot_org

Článok zverejnený na základe licencie Creative Commons Attribution-NonCommercial-ShareAlike version 2.5 license


Preklad: kiwwicek


tento článok je z mikroZONE
( https://www.mikrozone.sk/pluginy/content/content.php?content.17 )