====== Kontrollermoodul ATxmega128A1U v1.x ====== Robootika Kodulabori keskseks mooduliks on Kontrollermoodul, mis baseerub Atmeli uue põlvkonna USB toega mikrokontrolleril ATxmega128A1U. Lisaks mikrokontrollerile on plaadil veel SD kaardi pesa, pingealaldi ja ühenduspistikud. Kontrollermoodulil on järgnevad komponendid ja funktsionaalsus: * ATxmega128A1U mikrokontroller * 128 kB //flash//-mälu (programmi mälu) * 2 kB //EEPROM//-mälu * 8 kB //SRAM//-mälu (muutujate mälu) * 2 x 8-kanaliga 12-bitine 2 MHz analoog-digitaalmuundur (ADC) * 2 x 2-kanaliga digitaal-analoogmuundur (DAC) * 8 x 16-bitine taimer * riistvaraline USB 2.0 //Full speed// * 8 x UART liides * 4 x SPI liides (max. 16 MHz) * 4 x I2C/TWI liides * Väline katkestus igal viigul * 16 MHz taktigeneraator, 32 MHz operatsiooni takt * Mikro SD kaardi pesa * Programmeeritav oleku LED (PQ2) ja toite indikaator LED * Programmeeritav nupp S0 (PQ3) ja taaskäivitus (//reset//) nupp * USB indikaator LED (PQ0), USB toite indikaator LED (PQ1) * Grupeeritud AVR viigud (1: pordid C, D, E; 2: pordid K, J, H; 3: pordid A, B, F, Q) * 2,1 mm toitepistiku pesa * Automaatne toite ümberlüliti - USB või väline toide * Pingestabilisaator, 3,3 V väljund * Mini USB ühendus mikrokontrolleri programmeerimiseks ning kommunikatsiooniks arvutiga [{{ :kit:controller:kontroller_iii.png?400 |Robootika Kodulabori Kontrollermoodul}}] Kontrollermoodul on varustatud alaldiga ja pingestabilisaatoriga. Sisendpingeks sobib plaadile 6-14~~SP~~V. Voolukadude minimeerimiseks on soovitatav kasutada 6-9 V pingeallikat. Toite ühendamisel peab plaadil toite LED põlema hakkama. Kui see ei sütti, võib põhjus olla puudulikus toites või hoopis lühises Kontrollermoodulil või temaga ühendatud seadmetes. Kontrollermoodul on varustatud kaitsmetega ja lubatud voolu ületamisel toiteahelates põleb kaitse läbi, kaitstes nii kallimaid komponente. Kaitsmeid saab vahetada, aga soovitav on seda teha kogenud elektroonikul, kuna kaitsmed on väikesed SMD pakendis ja tavakasutajal keeruline vahetada. Mikrokontrollerit saab programmeerida üle USB, buudilaaduri kaudu. Buudilaadurisse minemiseks on vaja all hoida Kontrollermoodulil olevat nuppu S0 ning teha kontrollerile taaskäivitus (inglise keeles //reset//). Kontrollermoodul on varustatud oleku LED-iga, mis on ühendatud mikrokontrolleri viiguga PQ2. LED süttib, kui viik seada madalasse olekusse (loogiline 0). Seda on hea kasutada lihtsa indikaatorina. Samuti on ühendatud LED viiguga PQ0, kuid see on reserveeritud USB ühendusele ning selle programmiline juhtimine ei ole soovitatav. Viiku PQ1 on ühendatud läbi pingejaguri USB toitesignaal ning sealt viigust on võimalik lugeda, kas USB kaabel on Kontrollermooduliga ühendatud või mitte. Plaadile on paigaldatud SD mälukaardi pesa kuhu on võimalik sisestada standardne mikro SD mälukaart. Mälukaart on ühendatud SPI liidese kaudu mikrokontrolleriga ja seda võib kasutada andmete salvestamiseks, juhul kui need peavad säilima ka pärast toite eemaldamist mikrokontrollerilt. /* ===== Ühenduspesade viigud ja nende funktsioonid ===== {{:kit:xPort1.png?400 |}} ~~CL~~ ^Nr^Viik^Funktsioon ^Kirjeldus^ |1|GND|- |Maa | |2|GND|- |Maa | |3|PA0|AREF/ADC0 |ADC võrdluspinge sisend/ADC sisendkanal 0| |4|PA1|ADC1 |ADC sisendkanal 1 | |5|PA2|ADC2/DAC0A |ADC sisendkanal 2/Digital analoog muundur A kanal 0 | |6|PA3|ADC3/DAC1A |ADC sisendkanal 3/Digital analoog muundur A kanal 1 | |7|PA4|ADC4 |ADC sisendkanal 4 | |8|PA5|ADC5 |ADC sisendkanal 5 | |9|PA6|ADC6 |ADC sisendkanal 6 | |10|PA7|ADC7 |ADC sisendkanal 7 | |11|PB0|ADC8 |ADC sisendkanal 8 | |12|PB1|ADC9 |ADC sisendkanal 9 | |13|PB2|ADC10/DAC0B |ADC sisendkanal 10/Digital analoog muundur B kanal 0 | |14|PB3|ADC11/DAC1B |ADC sisendkanal 11/Digital analoog muundur B kanal 1 | |15|PB4|ADC12 |ADC sisendkanal 12 | |16|PB5|ADC13 |ADC sisendkanal 13 | |17|PB6|ADC14 |ADC sisendkanal 14 | |18|PB7|ADC15 |ADC sisendkanal 15 | |19|PF2|OC0C/RXD0 |Taimeri F0 väljundviik / PortF UART0 | |20|PF3|OC0D/TXD0 |Taimeri F0 väljundviik / PortF UART0 | |21|PF0|OC0A/SDA |Taimeri F0 väljundviik / PortF I2C andme siin| |22|PF1|OC0B/SCL |Taimeri F0 väljundviik / PortF I2C kella siin| |23|PQ0|- |GPIO | |24|PQ1|- |GPIO | |25|VCC|- |+3.3V | |26|VCC|- |+3.3V | {{:kit:xPort2.png?400 |}} ~~CL~~ ^Nr^Viik^Funktsioon ^Kirjeldus^ |1 |PC0|OC0A/SDA |Taimeri C0 väljundviik / PortC I2C andme siin| |2 |PC1|OC0B/SCL |Taimeri C0 väljundviik / PortC I2C kella siin| |3 |PC2|OC0C/RXD0 |Taimeri C0 väljundviik / PortC UART0 | |4 |PC3|OC0D/TXD0 |Taimeri C0 väljundviik / PortC UART0 | |5 |PC4|OC1A/SS |Taimeri C1 väljundviik / PortC SPI | |6 |PC5|OC1B/MOSI |Taimeri C1 väljundviik / PortC SPI | |7 |PC6|RXD1/MISO |PortC UART1 / PortC SPI | |8 |PC7|TXD1/SCK |PortC UART1 / PortC SPI | |9 |PD0|OC0A/SDA |Taimeri D0 väljundviik / PortD I2C andme siin| |10|PD1|OC0B/SCL |Taimeri D0 väljundviik / PortD I2C kella siin| |11|PD2|OC0C/RXD0 |Taimeri D0 väljundviik / PortD UART0 | |12|PD3|OC0D/TXD0 |Taimeri D0 väljundviik / PortD UART0 | |13|PD4|OC1A/SS |Taimeri D1 väljundviik / PortD SPI | |14|PD5|OC1B/MOSI |Taimeri D1 väljundviik / PortD SPI | |15|PE0|OC0A/SDA |Taimeri E0 väljundviik / PortE I2C andme siin| |16|PE1|OC0B/SCL |Taimeri E0 väljundviik / PortE I2C kella siin| |17|PE2|OC0C/RXD0 |Taimeri E0 väljundviik / PortE UART0 | |18|PE3|OC0D/TXD0 |Taimeri E0 väljundviik / PortE UART0 | |19|PE4|OC1A/SS |Taimeri E1 väljundviik / PortE SPI | |20|PE5|OC1B/MOSI |Taimeri E1 väljundviik / PortE SPI | |21|PE6|RXD1/MISO |PortE UART1 / PortE SPI | |22|PE7|TXD1/SCK |PortE UART1 / PortE SPI | |23|GND|- |Maa| |24|VCC|- |+3.3V| |25|VDD|- |+Sisendpinge| |26|VDD|- |+Sisendpinge| {{:kit:xPort3.png?400 |}} ~~CL~~ ^Nr^Viik^Funktsioon ^Kirjeldus^ |1 |PK6|- |GPIO| |2 |PK7|- |GPIO| |3 |PK4|- |GPIO| |4 |PK5|- |GPIO| |5 |PK2|- |GPIO| |6 |PK3|- |GPIO| |7 |PK0|- |GPIO| |8 |PK1|- |GPIO| |9 |PJ6|- |GPIO| |10|PJ7|- |GPIO| |11|PJ4|- |GPIO| |12|PJ5|- |GPIO| |13|PJ2|- |GPIO| |14|PJ3|- |GPIO| |15|PJ0|- |GPIO| |16|PJ1|- |GPIO| |17|PH6|- |GPIO| |18|PH7|- |GPIO| |19|PH4|- |GPIO| |20|PH5|- |GPIO| |21|PH2|- |GPIO| |22|PH3|- |GPIO| |23|PH0|- |GPIO| |24|PH1|- |GPIO| |25|GND|- |Maa| |26|VCC|- |+3.3V| */ ===== Ühendamine ===== Kontrollermooduli ühendamisel teiste moodulite ning seadmetega tuleb esmalt veenduda, et Kontrollermooduli toide ei ole ühendatud. Ajal kui moodul on pingestatud, on ohtlik seadmeid ühendada. Mooduleid ja seadmeid tuleb omavahel ühendada ettevaatlikult ja liigset jõudu kasutamata. Vale käsitlemise korral võivad piikriba piigid kergesti kõveraks painduda. Programmeerimiseks ja nõrkvoolu (alla 500 mA) toiteks võib Kontrollermooduli ühendada ainult arvutiga, kasutades mini USB kaablit. Kui kasutusel on moodulid, mis vajavad summaarselt rohkem voolu kui 500 mA tuleb seadmete toiteks kasutada eraldi toiteallikat. Samuti tuleb eraldi toiteallikat kasutada juhul, kui soovitakse kasutada alalisvoolumootoreid, servo- või samm-mootoreid. Kui Kontrollermooduliga on ühendatud välise toiteallika pistik, lülitub moodul automaatselt USB toitelt välisele toitele.