ATtiny13a - Ha kitépjük egy processzor összes lábát...

 

2016-01-30

Első sorban a "tkiraaly_attiny13a.h"-ban lévő hibákat kellett javítanom, másrészt szétszedtem több lapra a mintaprogramokat.

2016-05-09 - Bekötési rajzon MOSI/MISO fel volt cserélve, javítva.

2016-01-27

 

A legtöbb ember ismeri az egyszeri tudós esetét a bolhával, de biztosan van legalább egy ember, akinek a kedvéért érdemes leírom, hogy miből jött a cím. Szóval a tudós egy bolhát vizsgálgatott. Ráüvöltött, hogy "Ugorj bolha!", és a bolha ugrott. Na kitépte az egyik lábát, üvöltés, ugrás. Ez a tudós Mengele tanítvány lehetett, megint kitépett egy lábat, üvöltés, ugrás. Kitépte a bolha utolsó lábát is, üvöltés, semmi. Összevonta a szemöldökét, majd feljegyezte naplójába, "Ha kitépjük a bolha összes lábát, megsüketül.". Annyi a párhuzam, hogy nekem még mindig a Z80 A MIKROPROCESSZOR, a maga 40 lábával, 3-400mA-es fogyasztásával. Nem feledhetjük, hogy Sinclair csupán egy Z80, 1kByte RAM, némi EPROM és egy fólia tasztatúra összeépítésével alkotta meg a ZX81 personal computer-t a nyolcvanas évek hajnalán. A ZX81-ben a Z80 állította elő a TV képet, és a sorvisszafutások szüneteiben futtatta a BASIC programot. Tudom, hogy béna volt, de 1982 vagy 83 ban a Majakovszkij (Király) utcai Bizóban 90eFT-ért maga volt a csoda, az akkor csak vállalati géptermekben fellelhető számítógépekhez képes. Viszonyításképpen, akkortájt apám olyan 3-4eFt-ot keresett havonta. Egy ZX81 árából egy Zsigulit lehetett venni. Milyen jó lett volna, ha mondjuk Sinclair-t megelőzve én találom fel a ZX81-et? Erről lekésve, mostanában egy elektronikus kulcson gondolkoztam, amihez egy minnél kisebb mikrovezérlőt kerestem, így fordultam az ATtiny13a felé. Tudtam én, hogy gyárt ilyesmit is az Atmel, de hát 8 lába van, abból kettő a föld és a táp. Mire elég, ha a processzorunk lábait kitépve, csupán 6-tal gazdálkodhatunk? Korábban tényleg nem sokat merengtem ezen, de most rájöttem, hogy jó lehet elég sok mindenre. Nem beszélve arról, hogy az ára elég alacsony, jelenleg olyan 200-250HUF, darabszámtól és bolttól függően. Hajlandó 1,8V..5,5V közötti tápokról elműködni, igen alacsony fogyasztás mellett, tehát akár egy 3V-os lítium gomb elemről is! Ha átfutjuk az adatlapját, kiderül, hogy van benne belső órejel, egy AVR proc mag, 1K program memória, 64 byte RAM, 64 byte EEPROM, egy AD, és egy számláló, amihez tartozik két PWM kimenet. Ennyi lába nincs a uC-nek :), tehát nyilván az alkalmazástól föggően kell választanunk, melyik mi legyen?

A munka nagy része a "tkiraaly_attiny13a.h" összeállítása volt. Beletettem az újabb okosságaimat/maróimat is (PB1_OUT, PB1_1, PB1_0, PB1_R, B_1(reg,bit), B_0(reg,bit), B_R(reg_bit)). Részletesen magyarázat a file-ban. Biztos nem definiáltam benne az összes lehetőséget, de a használata megkönnyíti a programozást, nem kell a regisztereket és a bitjeiket fejben tartanunk.

Ez a kép a fejlesztés közben készült. A munka megkönnyítésére csináltam egy kis smd-dip átalakító panelt. Murphy törvényei között van egy olyan is, hogy a mesterségbeli tudás egyenesen aránylik a tönkretett berendezések számával. Szóva, aki esetleg az én káromból hajlandó tanulni, annak tanulságul álljon itt, hogy a fentebb írt 6 port láb igazából csak 5. A Reset láb egyik funkciója a debugWIRE. Mikor a PB5 lábat akartam használni, nem úgy működött a chip ahogy kellett volna. Azután próbáltam valami okosságot leszűrni az adatlapjából, és arra jutottam, le kellene tiltani a debugWIRE funkciót. Na ez volt az utolsó kapcsolatom az IC-vel, amikor bepipáltam a DWEN bitet és letöltöttem a chip-be. Szóval a programozó is ezt használja. Chip kiforraszt, eldob, új chip beforraszt, és megint minden müxik. Én kerülni fogom az 1. láb felhasználását és a DWEN bit bepipálásá :(.

Az ATtini13a bekötése programozáshoz.

Az első kapcsolás/program, majdnem olyan, mint a C-ben a "Hello Word!", egy LED villogtatása 1Hz-cel. Ez arra is alkalmas, hogy a LED villogásának sűrűségéből rájöhetünk, ha esetleg rosszul konfiguráltuk az órajelet.


/*******************************************************************************
*   Author       -  Kiraly Tibor
*                   http://www.tkiraaly.hu
*   Date         -  2016.01.30.
*   Chip         -  Atmel ATtiny13A
*   Compiler     -  avr-gcc ( WinAVR)
*
*   LED flasher
*
********************************************************************************
*   PonyProg Configuration and Security Bits (bepipalva):
*
*   CKSEL1 -, CKSEL0 P      - Internal Oscillator 9,6 MHz
*   CKDIV8 P                - Divide clock by 8
*   
*******************************************************************************/
#define F_CPU    1,2 MHZ                    // orajel


#include "tkiraaly_attiny13a.h"
#include <util/delay.h>


int main( void)
{
   PB0_OUT;                                 // LED
   for(;;)
   {
      PB0_0;
      _delay_ms( 500);
      PB0_1;
      _delay_ms( 500);
   }
}

Itt a vége, fuss el véle, legytek az én vendégeim, innen letölthetitek a programokat, miegymást összecsomagolva.