The modular mitmót system Az AVR mikrovezérlő kártya Kártyakód: MCU-AVR-S-01c Felhasználói dokumentáció Dokumentációkód: -D02c Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Beágyazott Információs Rendszerek csoport 2006. április
Tartalom A kártya felépítése 3 Tápkapcsoló 3 Tápcsatlakozás 4 Buszcsatlakozók 4 Atmega128L processzor 4 ISP csatlakozó 5 JTAG csatlakozó 6 Reset nyomógomb 6 System LED 6 Csatlakozókiosztás 7 Buszcsatlakozók 7 JTAG csatlakozó 13 ISP csatlakozó 13 BME MIT 2006. -D02c 2/13
A kártya felépítése A kártya az ATMEL Atmega128L típusú mikrovezérlőjéhez készült. A kártya felülnézeti képe az 1. ábra látható. tápcsatlakozó elem+ elem- mitmót busz (29-56) ATmega128L reset nyomógomb tápkapcsoló ISP csatlakozó system LED mitmót busz (1-28) tápleválasztó jumper JTAG csatlakozó 1. ábra Az AVR kártya Tápkapcsoló Ennek a kapcsolónak a segítségével lehet ki/be kapcsolni a külső tápról vagy elemről történő tápellátást. Bekapcsolt állapot: a kapcsoló felől nézve balra (a tápcsatlakozó felé). Kikapcsolt állapot: a kapcsoló felől nézve jobbra (az ISP csatlakozó felé). BME MIT 2006. -D02c 3/13
Tápcsatlakozás Ez egy 1,3 mm-es tápegység-csatlakozó. A középső csatlakozókontaktus a pozitív. A fordított polaritással való csatlakozás által okozott problémák kivédésére a kártya tartalmaz egy sorosan bekötött Schottky-diódából álló védelmet. A csatlakoztatott DC tápfeszültségnek 4 és 9 V között kell lennie. Fontos, hogy amennyiben hálózati adaptert használunk, ellenőrizzük annak tényleges feszültségét, mert az üresjárási feszültsége lényegesen nagyobb lehet a specifikáltnál. A kártya 10 V-nál nagyobb bemeneti feszültség esetén meghibásodhat! A kártya hely hiánya miatt csak korlátozott túlfeszültség elleni védelemmel rendelkezik (Zenerdiódás védelem). A kártya elemről vagy akkumulátorról is üzemeltethető. Ez célszerűen 3 db AA méretű ceruzaelem vagy akkumulátor. A tápcsatlakozó bedugásakor az elembemenet lekapcsolódik. Buszcsatlakozók A buszcsatlakozás 1 28 és 29 56 lába. A csatlakozó kiosztása később részletesen bemutatatásra kerül. Atmega128L processzor A kártyán egy 8-bites Atmel AVR processzor található. Fontosabb tulajdonságai a következők: RISC felépítés, egy utasítást átlagosan 1 órajel alatt hajt végre, (kb. 8 MIPS), szétválasztott kód- és adatmemória 128 kbyte on-chip flash (10 000 írás-törlés), opcionális Boot code szekcióval, önprogramozási lehetőséggel 4 kbyte on-chip adat SRAM 4 kbyte on-chip EEPROM (100 000 írás-törlés) In-System Programming (ISP), In-Application Programming Vektoros interrupt, fix IT prioritások és vektorcímek, de a vektortábla átállítható a Boot szekció elejére JTAG támogatás (programozás, debuggolás, Boundary-scan) 2 db UART, SPI, I2C kommunikációs interfészek 2 db 8-bites timer, 2 db 16-bites timer (compare, capture, PWM üzemmód), független timer előosztók, real-time clock külön kvarccal, watchdog timer 10-bites successive approximációs A/D mintavevő tartóval, különféle bemeneti konfigurációk: 8 egyedi bemenet, 7 közös negatív pontú differenciális bemenet, 2 független differrenciális BME MIT 2006. -D02c 4/13
bemenet programozható erősítéssel: 1x (10 bit), 10x (8 bit), 200x (7 bit), belső referencia: AVCC vagy 2,56 V vagy külső referencia Kisfogyasztású üzemmódok (hatféle) Maximum 8 MHz-es órajel, programozható rendszeróra-osztó (fogyasztáscsökkentés céljából) Egyes perifériák tápellátása külön ki/be kapcsolható, ezzel biztosítva további fogyasztás-optimalizálási lehetőségeket Bekapcsolási RESET áramkör, programozható Brown-out detektor A kártya nem használja ki a mikrovezérlő összes lehetőségét. ISP csatlakozó Ez egy, az AVR processzorok programozóinál használt, szabványos 10-pólusú csatlakozó, ami egy szalagkábel segítségével csatlakoztatható a PC-hez. Ezen keresztül lehet (az SPI interfészeknél megszokott szinkron soros protokoll szerint) az In- System programozást végrehajtani (de erre a JTAG interfész is alkalmas). A csatlakozón levő bemeneteken soros ellenállással és Schottky-diódával megvalósított szintkonverzió történik, mivel a printer port CMOS vagy TTL szinteket ad ki, a kártya pedig LV szintekkel dolgozik. Az ISP a normál soros port lábakat is használja (de más funkcióban), és a tápfeszültség is megjelenik a csatlakozón, ezért egy külső szintkonverter csatlakoztatása esetén soros portként is használható a programozó kábel lehúzása után. A programozó PSCK bemenete az SPI interfész SCK órajel lábára csatlakozik egy ellenálláson keresztül, ezért az SPI-t használó program esetén a programozás után célszerű lehúzni a programozó csatlakozót. A csatlakozó-kiosztást az 1. táblázat tartalmazza. (A táblázat ahhoz igazodik, ahogyan a kártyán szemből nézve látjuk a csatlakozót.) 2 4 6 8 10 VCC (3,3V) GND GND GND GND 1 3 5 7 9 PMOSI/RXD0 (input) NC PNRES (input) PSCK (input) PMISO/TXD0 (output) 1. táblázat Az ISP csatlakozó lábkiosztása BME MIT 2006. -D02c 5/13
JTAG csatlakozó A JTAG csatlakozó segítségével lehet a processzort In-Circuit debuggolni, programozni, ill. a processzor és környezete Boundary scan alapú tesztelésére is alkalmas. A JTAG használatához be kell programozni a JTAGEN fuse bitet. Ha debuggolásra akarjuk használni, akkor az OCDEN fuse bitet is. A kártya dedikáltan csak a JTAG céljára használja ezeket a port lábakat. 2 4 6 8 10 GND VCC (3,3V) NRES_JTG NC GND 1 3 5 7 9 Tck (input) TDO (output) TMS (input) VCC (3,3V) TDI (input) 2. táblázat A JTAG csatlakozó lábkiosztása Reset nyomógomb Ennek a nyomógombnak a lenyomásával lehet a processzornak, illetve az egész rendszernek egy reset impulzust adni (a reset impulzus csatlakoztatva van a buszra, így minden panel megkapja azt). System LED A processzor PD.7 lábára kötött nagy fényerejű LED. Elsősorban diagnosztikai jellege van, ennek villogtatásával jelezhetjük, hogy a processzorkártya működik. A LED fogyasztása bekapcsolt állapotban hozzávetőlegesen 6 ma. BME MIT 2006. -D02c 6/13
Csatlakozó-kiosztás A buszcsatlakozóra kapcsolódó processzorlábak hely hiánya miatt nem tartalmaznak soros védelmet, ezért fokozottan vigyázni kell a szembekapcsolásra. Buszcsatlakozók Tápfeszültség-stabilizátor Reset UART I2C A csatlakozási felület a következő megvalósított funkcionális elemeket tartalmazza: A processzorpanel és a többi modul tápfeszültség-ellátása a processzorpanelen lévő csatlakozóról történik, amennyiben a tápellátó áramkörök be vannak ültetve. A tápellátó áramkör 4 V-tól 9 V-ig üzemel. A 3,3 V-os táplábak együttes terhelhetősége 400 ma, ebbe az értékbe nem kell beleszámolni a processzorpanel fogyasztását. Ha a processzorpanel 3,3V feszültségét nem a kártyán levő DC/DC konverterről vesszük, hanem másik kártyán állítjuk elő és így azt a buszról akarjuk táplálni, akkor el kell távolítani a JP2 jumpert, ami leválasztja a tápot a kártyáról! A kártya nem tartalmaz analóg tápfeszültséget, ezek a részek nincsenek bekötve. A mikrovezérlő reset jele rá van kötve a buszra, ezáltal lehetőségünk van az egész rendszernek reset impulzust adni. A reset impulzus hozzávetőlegesen 240 ms hosszú. A csatlakozósorra az Atmega128L UART1 perifériája van kivezetve. Az UART0 a processzorpanelen van kivezetve az ISP csatlakozóra. Az I2C az egyik legelterjedtebb kétvezetékes, IC-k közötti kommunikációs busz; sok IC rendelkezik ilyen felülettel. Az I2C 4,7 k-s felhúzó-ellenállásai a kártyán vannak elhelyezve. A buszon BME MIT 2006. -D02c 7/13
maximálisan 400 kbit/sec-os sebességet lehet elérni (I2C gyors üzemmód), de ehhez még egy 2,2 k-s felhúzó-ellenállást kell a perifériakártyán elhelyezni mind a két vezetékre. Egyébként a garantált sebesség 100 kbit/sec. SPI Az SPI szintén elterjedt kommunikációs protokoll, a legtöbb mikrovezérlő támogatja. A MISO, MOSI és egy SSEL jel van kivezetve a buszon. Az SSEL jelet akkor használjuk, ha a kontroller kártya SPI-jét SLAVE üzemmódban akarjuk használni. MASTER módban a GPIO jelek használhatók a SLAVE-ek kiválasztására. A programozó PSCK bemenete az SPI interfész SCK órajel lábára csatlakozik egy ellenálláson keresztül, ezért az SPI-t használó program esetén a programozás után célszerű lehúzni a programozó csatlakozót. EXT INT0, EXT INT1 A külső megszakítás lábak igen fontosak minden beágyazott rendszerben, ezekre nyomógombok (a prellezésre figyelemmel kell lenni) vagy riasztási funkciók köthetők, és a processzort képesek felkelteni power-down módból. A külső megszakítás láb felhúzására a belső programozható felhúzás használható. TIMER_CAP0, TIMER_CAP1 PWM0, PWM1 A timerekhez tartozó capture vezetékek fontosak lehetnek egyes időzítési feladatoknál, események pontos idejének loggolásánál, óraszinkronizációnál. A bemenet triggereli, hogy a hozzá tartozó timer egység aktuális értéke átíródjon egy regiszterbe, amelyből az érték kiolvasható. A trigger programozhatóan fel vagy lefutó él lehet. Opcionálisan egy tüskeszűrő is bekapcsolható, ha a zajos jel miatt szükséges. A kártyán a TIMER_CAP0 a mikrokontroller TIMER1 16-bites timeréhez, a TIMER_CAP1 pedig TIMER3 16-bites timeréhez kapcsolódik. A TIMER3 capture-t az analóg komparátor is képes triggerelni, mely az ADC0-1 bemenetre van kapcsolva. A capture lábakhoz nincsenek felhúzó-ellenállások rendelve, itt is a programozható belső felhúzás alkalmazható, ha szükséges. A PWM-ek jól használhatók primitív AD átalakítókként, léptetőmotor vezérlésére stb. A PWM0 és PWM1 a mikrokontroller TIMER1 16-bites timerének OC1A, ill. OC1B kimenetei. Mivel ezek ugyanazon timerhez tartoznak, egyszerűen előállíthatók egymáshoz képest eltolt fázisú jelek (pl. léptetőmotor vezérléséhez). BME MIT 2006. -D02c 8/13
GPIO0-GPIO15 Mind implementálva van, általános célú I/O-ként használhatók, programozható belső felhúzással rendelkeznek. ADC0-3 AN_REF DAC Az Atmega 128 10-bites A/D konverterének 0-3-as csatornája van ide kötve. Ezek használhatók 4 aszimmetrikus bemenetként vagy 2 független szimmetrikus bemenetként programozható erősítővel. Az ADC0 bemenetre rá van kapcsolva az analóg komparátor +AIN0, az ADC1-re pedig a -AIN1 bemenete, így ezek feszültséghatár-túllépés figyelésére is alkalmasak. Az A/D referencia feszültsége programból választhatóan vagy a belső 2,56 V-os referenciaforrás vagy a 3,3 V- os táp vagy külső referencia lehet. A belső 2,56 V-os belső referencia általában megfelelő. Az A/D a GND-hez képest csak pozitív feszültséget képes fogadni, melynek legnagyobb értéke a választott referenciafeszültség lehet, ehhez tartozik az átalakított 1111111111 10-bites érték. Az ADC-n jobb jel/zaj viszonyt érhetünk el, ha a CPU-t ADC noise reduction módba kapcsoljuk. Ekkor néhány belső órajelforrás leáll (a CPU-é is). Az A/D órajele programozható. A legjobb felbontás 50-200 khz között érhető el. Normál üzemmódban 14 órajelenként keletkezhet legsűrűbben új adat, folyamatos üzemmódban 13 órajelenként. A legelső konverzió hosszabb időt igényel. Az A/D bemeneti sávszélessége 4 khz, legnagyobb ajánlott mintavételi frekvencia 15 khz. (A mintavételi frekvencia a választott órajel 13-ad része). Innen kaphat külső referenciafeszültséget az A/D konverter. Nincsen bekötve. RESERVED0-3 Nincsenek bekötve. BME MIT 2006. -D02c 9/13
A mitmót busz jeleit a 4. táblázat, a csatlakozó-kiosztását a 3. táblázat tartalmazza. Az MCU-AVR kártya buszjeleit az 5. táblázat mutatja. A táblázat zárójelben feltüntetett számai az AVR processzor lábszámai. felülnézet ADC3 28 27 ADC2 RESET 56 55 EXT_IT1 ADC1 26 25 ADC0 EXT_IT0 54 53 GPIO_0 AN_REF 24 23 DAC GPIO_1 52 51 GPIO_2 22 21 VddA GPIO_3 50 49 VssA 20 19 VssA GPIO_4 48 47 GPIO_5 SSEL 18 17 SCK GPIO_6 46 45 GPIO_7 MOSI 16 15 MISO GPIO_8 44 43 GPIO_9 SDA 14 13 SCL GPIO10 42 41 GPIO11 Tx 12 11 Rx GPIO12 40 39 GPIO13 TCAP1 10 9 TCAP0 GPIO14 38 37 GPIO15 PWM1 8 7 PWM0 Reserved 36 35 Reserved VddD 6 5 VddD Reserved 34 33 Reserved VssD 4 3 VssD VddD 32 31 VddD VssD 2 1 V_IN VssD 30 29 VssD 3. táblázat A mitmót busz csatlakozó-kiosztása BME MIT 2006. -D02c 10/13
Pozíció Leírás Blokknév Jelnév Megjegyzés 1 Stabilizálatlan tápfesz. bemenet V_Input V_IN Kötelező 2 Digitális föld VssDigital VssD Kötelező 3 Digitális föld VssDigital VssD Kötelező 4 Digitális föld VssDigital VssD Kötelező 5 Stabilizált digitális tápfeszültség VddDigital VddD Kötelező 6 Stabilizált digitális tápfeszültség VddDigital VddD Kötelező 7 Pulzusszélesség modulált kimenet PWM PWM0 Kötelező 8 Pulzusszélesség modulált kimenet PWM PWM1 Opcionális 9 Időzítő kimenet/számláló bemenet Timer-Capture TCAP0 Kötelező 10 Időzítő kimenet/számláló bemenet Timer-Capture TCAP1 Opcionális 11 Soros vétel USART Rx Kötelező 12 Soros adás USART Tx Kötelező 13 Inter IC (I2C) interfész I2C SCL Kötelező 14 Inter IC (I2C) interfész I2C SDA Kötelező 15 SPI interfész SPI MISO Kötelező 16 SPI interfész SPI MOSI Kötelező 17 SPI interfész SPI SCK Kötelező 18 SPI interfész SPI SSEL Kötelező 19 Analóg föld VssAnalog VssA Opcionális 20 Analóg föld VssAnalog VssA Opcionális 21 Analóg tápfeszültség VddAnalog VddA Opcionális 22 Pizícionáló vakdugó* Kötelező 23 Digitál/analóg átalakító (kimenet) DAC DAC Opcionális 24 Analóg referenciafeszültség An_Ref AN_REF Opcionális 25 Analóg/digitál bemenet ADC ADC0 Opcionális 26 Analóg/digitál bemenet ADC ADC1 Opcionális 27 Analóg/digitál bemenet ADC ADC2 Opcionális 28 Analóg/digitál bemenet ADC ADC3 Opcionális Pozíció Leírás Blokknév Jelnév Megjegyzés 29 Digitális föld VssDigital VssD Kötelező 30 Digitális föld VssDigital VssD Kötelező 31 Stabilizált digitális tápfeszültség VddDigital VddD Kötelező 32 Stabilizált digitális tápfeszültség VddDigital VddD Kötelező 33 Későbbi bővítésre foglalt Reserved Opcionális 34 Későbbi bővítésre foglalt Reserved Opcionális 35 Későbbi bővítésre foglalt Reserved Opcionális 36 Későbbi bővítésre foglalt Reserved Opcionális 37 Általános célú I/O GPIO GPIO15 Opcionális 38 Általános célú I/O GPIO GPIO14 Opcionális 39 Általános célú I/O GPIO GPIO13 Opcionális 40 Általános célú I/O GPIO GPIO12 Opcionális 41 Általános célú I/O GPIO GPIO11 Opcionális 42 Általános célú I/O GPIO GPIO10 Opcionális 43 Általános célú I/O GPIO GPIO_9 Opcionális 44 Általános célú I/O GPIO GPIO_8 Opcionális 45 Általános célú I/O GPIO GPIO_7 Kötelező 46 Általános célú I/O GPIO GPIO_6 Kötelező 47 Általános célú I/O GPIO GPIO_5 Kötelező 48 Általános célú I/O GPIO GPIO_4 Kötelező 49 Pizícionáló vakdugó* Kötelező 50 Általános célú I/O GPIO GPIO_3 Kötelező 51 Általános célú I/O GPIO GPIO_2 Kötelező 52 Általános célú I/O GPIO GPIO_1 Kötelező 53 Általános célú I/O GPIO GPIO_0 Kötelező 54 Külső megszakítás EXT_IT EXT_IT0 Kötelező 55 Külső megszakítás EXT_IT EXT_IT1 Kötelező 56 Reset RESET RESET Kötelező 4. táblázat A mitmót busz jelei BME MIT 2006. -D02c 11/13
Busz MCU-AVR 1 V_IN A szabályozatlan táp (3,6V-9V) 2 VssD GND (22, 53, 63) 3 VssD GND (22, 53, 63) 4 VssD GND (22, 53, 63) 5 VddD 3.3 V (21, 52) 6 VddD 3.3 V (21, 52) 7 PWM0 PB5/OC1A (15) 8 PWM1 PB6/OC1B (16) 9 TCAP0 PD4/IC1 (29) 10 TCAP1 PE7/INT7/IC3 (9) 11 Rx PD2/INT2/RXD1 (27) 12 Tx PD3/INT3/TXD1 (28) 13 SCL PD0/INT0/SCL (25) 14 SDA PD1/INT1/SDA (26) 15 MISO PB3/SPI-MISO (13) 16 MOSI PB2/SPI-MOSI (12) 17 SCK 18 SSEL 19 VssA PB1/SPI-SCK (11) PB0/SPI-SS (10) GND (22, 53, 63) JP1-en keresztül 20 VssA GND (22, 53, 63) JP1-en keresztül 21 VddA - 22 23 DAC - 24 AN_REF AREF (62) 25 ADC0 PF0/ADC0 (61), PE2/AIN0/XCK0 (4) 26 27 28 ADC1 ADC2 ADC3 PF1/ADC1 (60), PE3/AIN1/OC3A (5) PF2/ADC2 (59) PF3/ADC3 (58) 29 VssD GND (22, 53, 63) 30 VssD GND (22, 53, 63) 31 VddD 3.3 V (21, 52) 32 VddD 3.3 V (21, 52) 33-34 35 - - 36-37 38 39 GPIO15 GPIO14 GPIO13 PC7/A15 (42) PC6/A14 (41) PC5/A13 (40) 40 GPIO12 PC4/A12 (39) 41 GPIO11 PC3/A11 (38) 42 GPIO10 PC2/A10 (37) 43 GPIO_9 PC1/A9 (36) 44 GPIO_8 PC0/A8 (35) 45 46 47 48 49 50 GPIO_7 PA7/AD7 (44) GPIO_6 PA6/AD6 (45) GPIO_5 PA5/AD5 (46) GPIO_4 PA4/AD4 (47) GPIO_3 PA3/AD3 (48) 51 GPIO_2 PA2/AD2 (49) 52 GPIO_1 PA1/AD1 (50) 53 GPIO_0 PA0/AD0 (51) 54 EXT_IT0 PE5/INT5/OC3C (7) 55 EXT_IT1 PE6/INT6/T3 (8) 56 RESET -RESET (20) csak kimenet! 5. táblázat Az MCU-AVR kártya buszcsatlakozójának lábkiosztása (a zárójelben feltüntetett számok az AVR processzor lábszámai) BME MIT 2006. -D02c 12/13
A 2. ábra mutatja a csatlakozási pontok tényleges fizikai elhelyezkedését. (Az ábra nem méretarányos). 9 7 5 3 1 10 8 6 4 2 JTAG 28 27 56 55 26 25 54 53 24 23 52 51 22 21 50 49 20 19 48 47 18 16 14 17 15 13 23x15 raszter (58.42mm x 38.1mm) 46 44 42 45 43 41 12 11 40 39 10 9 38 37 8 7 36 35 6 5 34 33 4 3 32 31 2 1 30 29 ISP 2 4 6 8 10 1 3 5 7 9 JTAG csatlakozó ISP csatlakozó 2. ábra A csatlakozók elhelyezkedése (felülnézet) A reset nyomógomb mellett található a JTAG csatlakozó. A JTAG fejlesztőkártya szalagkábelét ehhez kell csatlakoztatni. A PC párhuzamos portjáról jövő szalagkábelt ehhez a tüskesorhoz kell csatlakoztatni. A szalagkábel tízpólusú csatlakozójának két alkalmas pontja vakdugóval be van tömve annak érdekében, hogy a kábelt véletlenül se lehessen a JTAG csatlakozó tüskesorához csatlakoztatni. BME MIT 2006. -D02c 13/13