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ó Tápcsatlakozás Buszcsatlakozók Atmega128L processzor ISP csatlakozó JTAG csatlakozó Reset nyomógomb System LED
3 4 4 4 5 6 6 6
Csatlakozókiosztás
7
Buszcsatlakozók JTAG csatlakozó ISP csatlakozó
BME MIT 2006.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -D02c
7 13 13
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)
system LED
mitmót busz (1-28)
ATmega128L
reset nyomógomb
tápkapcsoló
ISP csatlakozó
JTAG csatlakozó
tápleválasztó jumper
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.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -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.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -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 InSystem 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.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -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.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -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 A csatlakozási felület a következő megvalósított funkcionális elemeket tartalmazza:
Tápfeszültség-stabilizátor 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.
Reset 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ú.
UART A csatlakozósorra az Atmega128L UART1 perifériája van kivezetve. Az UART0 a processzorpanelen van kivezetve az ISP csatlakozóra.
I2C 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.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -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 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.
PWM0, PWM1 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.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -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 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 Vos 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).
AN_REF Innen kaphat külső referenciafeszültséget az A/D konverter.
DAC Nincsen bekötve.
RESERVED0-3 Nincsenek bekötve.
BME MIT 2006.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -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 ADC1 AN_REF VssA SSEL MOSI SDA Tx TCAP1 PWM1 VddD VssD VssD
28 26 24 22 20 18 16 14 12 10 8 6 4 2
27 25 23 21 19 17 15 13 11 9 7 5 3 1
ADC2 ADC0 DAC VddA VssA SCK MISO SCL Rx TCAP0 PWM0 VddD VssD V_IN
56 54 GPIO_1 52 GPIO_3 50 GPIO_4 48 GPIO_6 46 GPIO_8 44 GPIO10 42 GPIO12 40 GPIO14 38 Reserved 36 Reserved 34 VddD 32 VssD 30 RESET
EXT_IT0
55 53 51 49 47 45 43 41 39 37 35 33 31 29
EXT_IT1 GPIO_0 GPIO_2 GPIO_5 GPIO_7 GPIO_9 GPIO11 GPIO13 GPIO15 Reserved Reserved VddD VssD
3. táblázat A mitmót busz csatlakozó-kiosztása
BME MIT 2006.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -D02c
10/13
Pozíció 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Leírás Stabilizálatlan tápfesz. bemenet Digitális föld Digitális föld Digitális föld Stabilizált digitális tápfeszültség Stabilizált digitális tápfeszültség Pulzusszélesség modulált kimenet Pulzusszélesség modulált kimenet Időzítő kimenet/számláló bemenet Időzítő kimenet/számláló bemenet Soros vétel Soros adás Inter IC (I2C) interfész Inter IC (I2C) interfész SPI interfész SPI interfész SPI interfész SPI interfész Analóg föld Analóg föld Analóg tápfeszültség Pizícionáló vakdugó* Digitál/analóg átalakító (kimenet) Analóg referenciafeszültség Analóg/digitál bemenet Analóg/digitál bemenet Analóg/digitál bemenet Analóg/digitál bemenet
Blokknév V_Input VssDigital VssDigital VssDigital VddDigital VddDigital PWM PWM Timer-Capture Timer-Capture USART USART I2C I2C SPI SPI SPI SPI VssAnalog VssAnalog VddAnalog
Jelnév V_IN VssD VssD VssD VddD VddD PWM0 PWM1 TCAP0 TCAP1 Rx Tx SCL SDA MISO MOSI SCK SSEL VssA VssA VddA
DAC An_Ref ADC ADC ADC ADC
DAC AN_REF ADC0 ADC1 ADC2 ADC3
Pozíció 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
Leírás Digitális föld Digitális föld Stabilizált digitális tápfeszültség Stabilizált digitális tápfeszültség Későbbi bővítésre foglalt Későbbi bővítésre foglalt Későbbi bővítésre foglalt Későbbi bővítésre foglalt Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Pizícionáló vakdugó* Általános célú I/O Általános célú I/O Általános célú I/O Általános célú I/O Külső megszakítás Külső megszakítás Reset
Blokknév VssDigital VssDigital VddDigital VddDigital Reserved Reserved Reserved Reserved GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO
Jelnév VssD VssD VddD VddD
GPIO GPIO GPIO GPIO EXT_IT EXT_IT RESET
GPIO_3 GPIO_2 GPIO_1 GPIO_0 EXT_IT0 EXT_IT1 RESET
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO_9 GPIO_8 GPIO_7 GPIO_6 GPIO_5 GPIO_4
Megjegyzés Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Opcionális Kötelező Opcionális Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Opcionális Opcionális Opcionális Kötelező Opcionális Opcionális Opcionális Opcionális Opcionális Opcionális Megjegyzés Kötelező Kötelező Kötelező Kötelező Opcionális Opcionális Opcionális Opcionális Opcionális Opcionális Opcionális Opcionális Opcionális Opcionális Opcionális Opcionális Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező Kötelező
4. táblázat A mitmót busz jelei
BME MIT 2006.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -D02c
11/13
Busz 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
MCU-AVR
V_IN VssD VssD VssD VddD VddD PWM0 PWM1 TCAP0 TCAP1 Rx Tx SCL SDA MISO MOSI SCK SSEL VssA VssA VddA
A szabályozatlan táp (3,6V-9V) GND (22, 53, 63) GND (22, 53, 63) GND (22, 53, 63) 3.3 V (21, 52) 3.3 V (21, 52) PB5/OC1A (15) PB6/OC1B (16) PD4/IC1 (29) PE7/INT7/IC3 (9) PD2/INT2/RXD1 (27) PD3/INT3/TXD1 (28) PD0/INT0/SCL (25) PD1/INT1/SDA (26) PB3/SPI-MISO (13) PB2/SPI-MOSI (12) PB1/SPI-SCK (11) PB0/SPI-SS (10) GND (22, 53, 63) JP1-en keresztül GND (22, 53, 63) JP1-en keresztül -
DAC AN_REF ADC0 ADC1 ADC2 ADC3
AREF (62) PF0/ADC0 (61), PE2/AIN0/XCK0 (4) PF1/ADC1 (60), PE3/AIN1/OC3A (5) PF2/ADC2 (59) PF3/ADC3 (58)
VssD VssD VddD VddD
GPIO15 GPIO14 GPIO13 GPIO12 GPIO11 GPIO10 GPIO_9 GPIO_8 GPIO_7 GPIO_6 GPIO_5 GPIO_4
GND (22, 53, 63) GND (22, 53, 63) 3.3 V (21, 52) 3.3 V (21, 52) PC7/A15 (42) PC6/A14 (41) PC5/A13 (40) PC4/A12 (39) PC3/A11 (38) PC2/A10 (37) PC1/A9 (36) PC0/A8 (35) PA7/AD7 (44) PA6/AD6 (45) PA5/AD5 (46) PA4/AD4 (47)
GPIO_3 GPIO_2 GPIO_1 GPIO_0 EXT_IT0 EXT_IT1 RESET
PA3/AD3 (48) PA2/AD2 (49) PA1/AD1 (50) PA0/AD0 (51) PE5/INT5/OC3C (7) PE6/INT6/T3 (8) -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.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -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 17 16 15 14 13
23x15 raszter (58.42mm x 38.1mm)
46 45 44 43 42 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
2. ábra A csatlakozók elhelyezkedése (felülnézet)
JTAG csatlakozó A reset nyomógomb mellett található a JTAG csatlakozó. A JTAG fejlesztőkártya szalagkábelét ehhez kell csatlakoztatni.
ISP csatlakozó 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.
Az MCU-AVR-S-01c mikrovezérlő kártya – Felhasználói dokumentáció -D02c
13/13