- konstrukcja oparta na mikrokontrolerze AVR ATMega32U4,
- częstotliwość taktowania: 16 MHz,
- poziom napięć logicznych: 5 V,
- wbudowane złącze USB C do komunikacji i zasilania,
- wbudowany bezpiecznik PTC 500 mA, przycisk RESET oraz dioda LED.
W skład serii XIAO wchodzą moduły z procesorami ESP32, SAMD21, NRF52840, RP2040, a ostatnio dołączyły do niej wersje z procesorami VRISC-V, R4M1 oraz RP2350. W opracowaniu są ponadto super-energooszczędne EFR32MG24. Większość modułów wspierana jest przez środowisko Arduino. Przykładowy moduł z procesorem SAMD21 pokazano na rysunku 1.
Cała rodzina XIAO i QT PY charakteryzuje się zgodnością wyprowadzeń, niewielkimi wymiarami płytki 22×18 mm oraz komunikacją z użyciem złącza USB typu C. W serii tej nie ma niestety modułów z klasycznymi procesorami AVR, które w dalszym ciągu cieszą się niesłabnąca popularnością.
Do modułu AVR zgodnego z XIAO, wybrałem procesor Atmega32U4. Uzasadnione jest to obecnością interfejsu USB, prostą aplikacją – niezbędną ze względu na ograniczone wymiary modułu – oraz zgodnością z napięciami 5 V, z którymi nie jest kompatybilny bezpośrednio żaden z dostępnych modułów XIAO, a które to napięcie jest wciąż powszechnie używane w aplikacjach DIY. Schemat mikromodułu pokazano na rysunku 2.
Moduł pozbawiony jest peryferiów, na płytce mieszczą się jedynie elementy niezbędne do poprawnego funkcjonowania procesora. ATMEGA32U4 (U1) taktowany jest kwarcem XT1 16 MHz.
Komunikacja i zasilanie modułu odbywa się poprzez gniazdo USBC. Układ TVS1 zabezpiecza interfejs przed skutkami przepięć, a bezpiecznik polimerowy F1 (500 mA) przed skutkami zwarcia w prototypowanym układzie. Układ zasilany jest napięciem 5 V z interfejsu USBC, zasilanie dla części analogowej dodatkowo filtrowane jest przez C3, C4, FB2. Z napięcia 5 V zasilany jest też pomocniczy stabilizator LDO 3,3 V w postaci układu U2 typu MCP1700. Dioda LD2 sygnalizuje obecność zasilania. Moduł wyposażony jest tylko w przycisk RES (RESET) oraz diodę użytkownika LD1. Sygnały interfejsów zgodne z XIAO wyprowadzone są na złącza IO1, IO2. Dodatkowo przewidziano pady udostępniające sygnały SS magistrali SPI oraz RST (RESET), pomocne przy programowaniu poprzez ISP, co zwiększa nieco długość modułu. Układ, oprócz przycisku RES, ma także dedykowany rezystor R5, umożliwiający (po jego zwarciu) uaktywnienie wbudowanego bootloadera, jeżeli taka opcja zostanie wybrana przy programowaniu fusebitów.
Moduł zmontowany jest na dwustronnej płytce drukowanej – zrezygnowano z zastosowanych w XIAO złoconych padów bocznych (Castellated Pads), które kilkukrotnie podnoszą cenę płytki. Opis procesu lutowania modułu jest zbędny, ale ze względu na elementy 0402 należy dokładnie sprawdzić jakość montażu. Decyzję o montażu złączy SIP7 lub SIP8, ułatwiających wyprowadzenie sygnałów SS, RES, pozostawiam użytkownikowi. Rozstaw złączy umożliwia montaż modułu na płytkach prototypowych lub stykowych o rozstawie 100 milsów. Rozmieszczenie elementów pokazano na rysunku 3, a zmontowany moduł na fotografii tytułowej.
Moduł po montażu nie wymaga uruchamiania, należy jedynie sprawdzić obecność napięć 3,3 V i 5 V. Po wgraniu bootloadera Caterina-Leonardo.hex lub Caterina-Micro.hex (przy pomocy FLIP lub Microchip Studio) oraz ustawieniu fuse-bitów zgodnie z plikiem boards.txt, moduł może być używany jako klon płytek Arduino Leonardo lub Micro.
Po zaprogramowaniu i resecie modułu oraz ponownej instalacji w systemie otrzymujemy Arduino Leonardo lub Micro gotowe do pracy, oczywiście z ograniczoną liczbą dostępnych wyprowadzeń procesora ATMEGA32U4, ale w zamian za to – w mikroskopijnym formacie.
A teraz można zabrać się za praktyczne zastosowanie modułu.
Adam Tatuś, EP
- R1, R2, R8, R9: 5,1 kΩ
- R3, R4: 22 Ω
- R5, R6: 10 kΩ
- R7: 1 kΩ
- C1: 10 μF (SMD 0402, X7R, 10 V)
- C2, C4...C6: 1 μF (SMD 0402, X7R, 10 V)
- C3, C9: 0,1 μF (SMD 0402, X7R, 10 V)
- C7, C8: 22 pF (SMD 0402, NP0, 25 V)
- LD1: dioda LED żółta (SMD 0603)
- LD2: dioda LED zielona (SMD 0603)
- TVS1: transil ESD204 (USON10)
- U1: ATMEGA32U4MU (QFN44_050)
- U2: MCP1700T-3302E (SOT-23)
- F1: bezpiecznik polimerowy 500 mA (SMD 0805, typ 0ZCK0050FF2E)
- FB1, FB2: dławik ferrytowy (SMD 0402, typ BLM15PX601SN1D)
- IO1, IO2: listwa SIP8 (patrz opis)
- RES: przycisk SMD (typ B3U-1000P)
- USBC: gniazdo USB C (typ USB4110, GTC)
- XT: kwarc 16MHz (SMD 3,2 × 2,5 mm, typ CFPX-180)