- Mikrokontroler ATXMega256 zasilany napięciem 3,3 V.
- Programowanie za pomocą AVRStudio.
- Kompletny zestaw składa się z dwóch płytek: z mikrokontrolerem i bazowej.
- Zasilanie płytki z mikrokontrolerem: 3,3 V DC.
- Zasilanie płytki bazowej: 5…12 V DC.
Zestaw uruchomieniowy STK_XMega256A3U razem z płytką bazową umożliwia praktyczne przetestowanie współpracy mikrokontrolera z typowymi peryferiami, tj. enkoderem, modułami komunikacyjnymi XBee, wejściami analogowymi, kartą pamięci SD oraz sterownikiem silnika prądu stałego.
Schemat ideowy modułu STK_XMega256A3U pokazano na rysunku 1. Sercem modułu jest mikrokontroler U1 typu ATXmega256A3U. Moduł umożliwia wykorzystanie oscylatora XT1 oraz zegara czasu rzeczywistego taktowanego za pomocą XT2. Z modułów funkcjonalnych mikrokontrolera wykorzystano interfejs USB (PD6, PD7), którego zabezpieczenie stanowi układ U2. Na złącza RS/I²C (zgodne z Arduino i minimodułami I²C opisywanymi w EP) wyprowadzone są sygnały interfejsów szeregowego (PE3, PE4) oraz I²C (PE0, PE1). Programowanie układu jest możliwe przez złącze ISP programatorem AVRISP MKII w trybie PDI. Możliwe jest także wykorzystanie bootloadera. Do wprowadzenia w tryb programowania służy przycisk DFU, dioda PE4 umożliwia monitorowanie jego aktywności. Moduł ma zamontowane: przycisk zerowania RST, diodę świecącą PWR sygnalizująca załączenie zasilania oraz stabilizator U3 dostarczający 3,3 V do zasilania mikrokontrolera. Dławik L1 i kondensator C3 filtrują zasilanie części analogowej. Moduł może być zasilany z USB po zwarciu wyprowadzeń J19 i J20 lub z zewnętrznego zasilacza +5 V, dołączonego bezpośrednio do wyprowadzeń J1-19/9. Złącze LCD umożliwia dołączenie wyświetlacza zgodnego z HD44780 w trybie czterobitowym (przystosowanego do współpracy z układami 3,3 V). Potencjometr RV1 służy do regulowania kontrastu. Jeżeli nie korzystamy z wyświetlacza, potencjometr może być użyty jako zadajnik analogowy, a pozostałe piny dowolnie.
Porty PA, PB, PC, PF wyprowadzone są na złącza SIP zgodne z rozstawem z płytkami prototypowymi. Złącze BAT w przypadku wykorzystania procesorów xA3U powinno być zwarte w pozycji 1–2, z wyprowadzonym pinem PF5 na złącze J1, w mikrokontrolerach xA3BU służy do przyłączenia baterii podtrzymującej RTC (pomiędzy wyprowadzenia 2(+)/3(–)).
Należy pamiętać, że w przeciwieństwie do wcześniejszych procesorów AVR, peryferie mikrokontrolerów ATXmega są konfigurowalne, podobnie jak w układach programowalnych i należy zadbać, aby je odpowiednio przypisać do wyprowadzeń (w przypadku modułu porty: USB, I²C, RS).
Montaż i uruchomienie
Zmontowanie modułu nie wymaga uwag – jego schemat montażowy pokazano na rysunku 2. Poprawnie zmontowany moduł jest gotowy do pracy i po prawidłowej detekcji przez AVRStudio (programator AVRISP II, tryb PDI) jest możliwe jego oprogramowanie.
Na rysunku 3 pokazano prawidłowo zainicjowany moduł modelowy z wlutowanym ATXmega128A3U. Alternatywną i w większości wypadków wygodniejszą metodą programowania modułu jest użycie bootloadera i oprogramowania Flip. Plik *.hex odpowiedni do zaprogramowania układu (nazwa pliku odpowiada typowi procesora) znajduje się w materiałach dodatkowych w katalogu boot i na stronie firmy Atmel w opisie bootloaderów – nota aplikacyjna AVR1916.
Po zaprogramowaniu układu i ponownej inicjacji modułu układ jest rozpoznany przez system Windows jako ATxmega128A3U (rysunek 4) i od tego momentu można programować go za pomocą programu Flip (rysunek 5) poprzez interfejs USB bez zewnętrznego programatora.
Uzupełnieniem układu jest płytka bazowa zawierająca typowe peryferiei umożliwiająca praktyczne zapoznanie się z możliwościami procesorów XMega. Jej schemat ideowy pokazano na rysunku 6. Wszystkie sygnały z modułu z mikrokontrolerem są udostępnione na złączach szpilkowych J1A i J2A. Przez odpowiednie skonfigurowanie zwór w złączach można dołączyć do procesora peryferie stanowiące wyposażenie płytki bazowej. Jako elementy stykowe przewidziano enkoder ENC1 uzupełniony o elementy RC polaryzujące i eliminujące zaburzenia podczas przełączania oraz dwa mikroprzełączniki S1, S2.
Wyprowadzenia wbudowanego przetwornika A/C i C/A dostępne są wraz z zasilaniem na złączach AI, VCC, GND (3,3 V) zgodnych z Arduino Brick. Dodatkowo, dwa porty analogowe są doprowadzone do potencjometru RV oraz przetwornika temperatury TS typu LM35. Trzy LEDy umożliwiają sygnalizowanie stanów portów (po konfiguracji procesora – także PWM).
Płytka ma gniazda dla karty microSD oraz modułów zgodnych z XBee. Złącze I²C umożliwia wyprowadzenie sygnałów magistrali i zasilania do modułów rozszerzeń I²C GPIO/LED/RTC/PWM opisywanych w EP. Miejsce na płytce znalazło się także dla mostkowego sterownika silnika DC typu TB6593.
Do podłączenia silnika i zasilania drivera służy złącze MTR. Napięcie zasilania nie powinno przekraczać 13,5 V, dopuszczalny prąd drivera to 1,3 A, zalecane jest dodatkowe chłodzenie układu U1 przez niewielki radiator. Tabelę prawdy dla TB6593 zamieszczono na rysunku 7.
Elementy płytki bazowej zamontowane są na dwustronnej płytce drukowanej, której schemat montażowy pokazano na rysunku 8.
Montaż nie wymaga opisu.
Pozostaje życzyć owocnych eksperymentów.
Adam Tatuś, EP
- R1 ,R2: 27 Ω
- R3, R7, R9: 100 kΩ
- R4…R6, R8: 1 kΩ
- RV1: 22 kΩ (potencjometr SMD TS53)
- C1…C3: 10 μF
- C4…C7: 22 pF
- C8…C10: 0,1 μF
- PE4, PWR: dioda LED SMD 0805
- U1: ATXMega256A3U (TQFP64)
- U2: SN65220DBV (SOT-23-6)
- U3: LM1117-33 (SOT-223)
- BAT: złącze SIP3 + zwora
- DFU, RST: DTSML3 mikroprzełącznik SMD
- ISP: złącze IDC6
- J1, J2: złącze SIP20
- L1: 10 μH (dławik SMD 50 mA)
- LCD: złącze IDC10
- RS, I2C: złącze SIP4
- USB: złącze USB Micro ESB228110100Z
- XT1: 16 MHz (HC49 SMD)
- XT2: 32768 Hz (kwarc zegarkowy SMD)
- R1, R2: 47 kΩ
- R3…R5: 1 kΩ
- R6: 470 Ω
- RV: 22 kΩ (CA6V pot. montażowy z osią)
- C1, C2: 1 nF
- C3…C6, C8…C10: 0,1 μF
- C7, C11: 10 μF
- CE2: 10 μF/25 V (SMD „C”)
- LD1…LD4: dioda LED SMD 0805
- TS: LM35 (TO-92)
- U1: TB6593 (SSOP20)
- AI, GND, VCC: złącze SIP 10 2,54 mm
- ENC1: enkoder z przyciskiem EC11
- I2C: złącze EH4, kątowe
- J1, J2: gniazdo żeńskie SIP20
- J1A, J2A: listwa IDC40 2,54+zwory
- MTR: złącze KK4 proste
- RES, S1, S2: mikroprzycisk SMD
- RM: listwa 2×10 pin, r=2 mm dla Xbee
- uSD: gniazdo karty micro SD