- procesor: Megawin MG32F103RBT6 w obudowie LQFP64,
- taktowanie: dwa rezonatory kwarcowe 12 MHz (rdzeń) i 32,768 kHz (RTC),
- multipleksowany, 4-cyfrowy, 7-segmentowy wyświetlacz LED ze scalonym sterownikiem segmentów TBD62083 i czterema kluczami P-MOSFET,
- dwa przyciski programowalne i przycisk RESET,
- trzy diody LED (2×GPIO, 1×wskaźnik zasilania),
- potencjometr połączony z wejściem ADC,
- wbudowany czujnik temperatury MCP9808T (I²C),
- wbudowana pamięć EEPROM AT25128B (SPI),
- gniazdo baterii CR2032 (podtrzymanie zasilania RTC),
- wbudowany stabilizator LDO 3,3 V,
- zasilanie poprzez złącze USB lub gniazdo śrubowe (4,8...5,3 V),
- złącze debuggera MLink lub kompatybilnego,
- złącza interfejsów UART, SPI, I²C, USB Device (gniazdo mini USB),
- dodatkowe złącze udostępniające piny PA0...7,
- zworki konfiguracyjne (zasilanie, BOOT) i mostki lutownicze (SPI, I²C).
Mikrokontrolery Megawin w pigułce
Mikrokontroler MG32F103RBT6 nieprzypadkowo przypomina swoim oznaczeniem niebywale popularny układ z rodziny STM32 o numerze STM32F103RBT6. W istocie jest to tzw. zamiennik pin-to-pin, zapewniający pełną kompatybilność funkcjonalną pod względem rodzaju obudowy oraz układu wyprowadzeń (zarówno w zakresie zasilania, jak i linii GPIO oraz przypisania funkcji alternatywnych). Jak widać, zamiennik firmy Megawin oferuje niemal wszystkie bloki peryferyjne (oprócz interfejsów CAN oraz SDIO), które można znaleźć w kultowych procesorach od ST, a dodatkowo przewyższa pierwowzór pod niektórymi względami (np. deklarowany przez producenta pobór prądu jest wyraźnie niższy w trybie aktywnym: 100 μA/MHz zamiast 292 μA/MHz), nieznacznie lepszy jest także parametr poboru energii w trybie Sleep. Niższy pobór prądu jest widoczny również w obszarze domeny backup (rejestry z podtrzymaniem bateryjnym i RTC), zasilanej za pośrednictwem linii VBAT. Co ciekawe, producent zastosował dodatkowo dwa komparatory oraz unikalny sterownik macierzy multipleksowanych diod LED, który – przy użyciu zaledwie 8 linii – jest w stanie wysterować aż 56 diod elektroluminescencyjnych. Takiego peryferium próżno szukać w nie tylko w oryginalnych rozwiązaniach ST, ale także dziesiątkach innych rodzin mikrokontrolerów.
Wspomniane cechy – w połączeniu z kilkukrotnie niższą ceną (zarówno detaliczną, jak i hurtową) – sprawiają, że mikrokontrolery Megawin z rdzeniem ARM Corex-M3 są niezwykle ciekawą alternatywą zarówno dla zawodowych konstruktorów urządzeń elektronicznych, jak i dla amatorów elektroniki. Dlatego właśnie na łamach „Elektroniki Praktycznej” – już w numerze 05/2024 – startujemy z (wszystko na to wskazuje) pierwszym na świecie kursem programowania procesorów ARM marki Megawin. Aby ułatwić naszym Czytelnikom rozpoczęcie pracy z tymi interesującymi układami, w tym wydaniu EP publikujemy opis zestawu ewaluacyjnego, który umożliwi realizację zarówno zadań kursowych, jak i samodzielnych eksperymentów z większością najważniejszych peryferiów wbudowanych w strukturę układu MG32F103RBT6.
Budowa układu
Zdecydowana większość linii portów mikrokontrolera (U3) została użyta do obsługi elementów dostępnych na płytce, zaś dodatkowo osiem najmłodszych linii portu A (o numerach PA0...PA7) wyprowadzono na złącze typu goldpin (PA). Całość układu jest zasilana napięciem 3,3 V, dostarczonym przez stabilizator LDO (U1) typu LD1117AS33 w obudowie SOT-223. Źródłem napięcia wejściowego regulatora może być złącze śrubowe VEXT (w tej roli popularny terminal typu ARK o rastrze 5 mm) albo port USB, w zależności od ustawienia zworki VSEL. Obecność napięcia zasilania sygnalizuje świecenie zielonej diody LED D3.
Sam port USB jest chroniony za pomocą scalonego układu zabezpieczającego przed wyładowaniami ESD (USBLC6-2SC6, U2), integrującego w sobie zestaw szybkich diod połączonych z liniami pary różnicowej (D+/D–) oraz dodatkową, piątą diodę Zenera, podłączoną do szyny VBUS. Wyprowadzenie VBUS gniazda mini USB (J1) połączone zostało z resztą układu przez dławik ferrytowy (FB1) oraz 100-miliamperowy bezpiecznik PTC (F1).
W układzie przewidziano możliwość zasilania domeny backup mikrokontrolera na jeden z dwóch sposobów. Podczas testowania projektów niekorzystających z funkcjonalności rejestrów podtrzymywanych bateryjnie ani z zegara czasu rzeczywistego RTC użytkownik może pominąć instalację baterii CR2032 w przeznaczonej dla niej podstawce (BT1) i doprowadzić zasilanie do linii VBAT mikrokontrolera bezpośrednio z głównej szyny 3,3 V. W przeciwnym razie należy przestawić zworkę VBATSEL na pozycję VBAT, co umożliwi testowanie ww. funkcjonalności w warunkach rzeczywistych (tj. po odcięciu głównego napięcia zasilającego).
Interfejs HMI tworzy zestaw dwóch przycisków podłączonych do linii GPIO mikrokontrolera, dwie diody LED (także współpracujące bezpośrednio z MCU) oraz siedmiosegmentowy, czteropozycyjny wyświetlacz LED ze wspólną anodą (DS1). Od dołu poszczególne segmenty (katody) są przełączane za pomocą drivera typu TBD62083 (IC1), złożonego z tranzystorów N-MOSFET (Q1...Q4), pracujących w układzie otwartego drenu i wyposażonych w zestaw kilku wbudowanych elementów pasywnych oraz diod zabezpieczających. Od strony wyższego potencjału, tj. w obwodach wspólnych anod, zastosowano natomiast proste klucze tranzystorowe na bazie popularnych MOSFET-ów małej mocy typu BSS84.
Aby umożliwić użytkownikom płytki ewaluacyjnej łatwe przetestowanie funkcjonalności interfejsów SPI oraz I²C, bez konieczności dołączania zewnętrznych modułów, na płytce zamontowano dwa popularne i niedrogie układy scalone. U5 to cyfrowy czujnik temperatury typu MCP9808T, wyposażony w interfejs I²C, natomiast U4 to pamięć EEPROM typu AT25128B, komunikująca się z procesorem za pośrednictwem klasycznego, czteroliniowego łącza SPI, pracującego w trybie full duplex. Pracę przetwornika analogowo-cyfrowego można natomiast sprawdzić potencjometrem POT, połączonym z jedną z linii mikrokontrolera MG32F103RBT6 przeznaczonych do pracy w trybie analogowym.
Przypisanie funkcji do linii GPIO
Aby ułatwić Czytelnikom pisanie programów na prezentowaną w artykule płytkę ewaluacyjną, zebrano komplet informacji niezbędnych do prawidłowego skonfigurowania linii GPIO. W przypadku interfejsów szeregowych (SPI, I²C, UART, USB) z oczywistych przyczyn nie podano domyślnych stanów logicznych – są one wszak narzucone przez odpowiednie bloki peryferyjne.
Uwagi dotyczące parametrów elektrycznych GPIO
Warto zwrócić uwagę na istotne różnice pomiędzy parametrami elektrycznymi linii portów GPIO mikrokontrolerów MG32F103 oraz ich „pierwowzoru”, czyli układów z rodziny STM32F103. O ile te drugie oferują całkiem sporą liczbę wyprowadzeń tolerujących pracę przy napięciu 5 V, to układy marki Megawin takiej możliwości nie dają. Z tego też względu zdecydowano się na podłączenie źródeł kluczy tranzystorowych Q1...Q4 do wyjścia stabilizatora LDO, a nie bezpośrednio do głównego napięcia wejściowego 5 V. Choć taki zabieg może wydawać się mało atrakcyjny pod względem termicznym, to znakomicie upraszcza konstrukcję układu, redukuje bowiem konieczność stosowania dodatkowych przesuwników poziomu (bezpośrednie wysterowanie bramek tranzystorów podciągniętych do napięcia 5 V byłoby wszak niemożliwe). Z drugiej strony, przy zastosowanych komponentach teoretyczny wzrost temperatury struktury krzemowej LDO przy pełnym wysterowaniu wyświetlacza (8 segmentów jednocześnie na wszystkich czterech pozycjach) wynosi około 10°C, a zatem można go uznać za efekt pomijalny w praktycznych zastosowaniach.
Słowa komentarza wymaga także obecność drivera typu low-side (IC1). W klasycznych układach sterowania multipleksowanych wyświetlaczy LED segmenty często są sterowane bezpośrednio z linii mikrokontrolera, zaś klucze znajdują się jedynie po stronie wyprowadzeń wspólnych (w tym przypadku – anod). Istotnie, przy zastosowaniu mikrokontrolera STM32F103 byłoby to możliwe, gdyż całkowity prąd maksymalny na liniach zasilania może dochodzić nawet do 150 mA. W przypadku układu marki Megawin limit ten jest przeszło dwukrotnie niższy i wynosi 60 mA – wartość zbliża się zatem niebezpiecznie do sumarycznego prądu ośmiu włączonych jednocześnie segmentów. Stosując układy Megawin (podobnie zresztą, jak i inne zamienniki mikrokontrolerów), należy zatem przestudiować noty katalogowe oraz uwzględnić obecność ewentualnych różnic pomiędzy parametrami poszczególnych układów. Tak czy inaczej, jeżeli urządzenie zaprojektowane zostało prawidłowo (tj. z zachowaniem odpowiednich marginesów bezpieczeństwa), zamiana STM32 na MG32 powinna przebiegać bez większych problemów (rzecz jasna, mówimy tutaj wyłącznie o kwestiach sprzętowych, gdyż różnice w budowie bloków peryferyjnych oraz procedurach ich konfiguracji będziemy omawiać dokładniej na łamach naszego kursu).