Mikrokontroler STM8S001J3 jest dostępny w obudowie typu SO8N. Oznacza to, że cztery pierwsze wyprowadzenia (o numerach 1…4) są umieszczone po lewej stronie obudowy, natomiast cztery ostatnie wyprowadzenia (ponumerowane 5…8) znajdują się po prawej stronie obudowy. Osiem wspomnianych wyprowadzeń można podzielić pod względem funkcji na dwie grupy. Pierwszą grupę tworzą wyprowadzenia 2 i 4, które odpowiedzialne są za zasilanie mikrokontrolera. Druga grupa, do której należą pozostałe wyprowadzenia (1, 5…8), to porty wejścia/wyjścia. Warto zwrócić uwagę, że krzemowa struktura wewnątrz obudowy dysponuje większą liczbą wyprowadzeń niż sama obudowa. Z tego powodu do pojedynczego wyprowadzenia obudowy dołączono jedno, dwa lub nawet trzy wyprowadzenia z krzemu. Umożliwiło to wykorzystanie pięciu wyprowadzeń obudowy w funkcji wejść/wyjść dla licznych modułów funkcjonalnych: pięciu linii GPIO, trzech kanałów przetwornika A/C, interfejsów komunikacyjnych (UART, SPI, I2C), interfejsu programowania/debugowania SWIM oraz dwóch timerów (używanych np. jako wyjścia sygnału PWM). Schemat pokazujący sposób przypisania wyprowadzeń struktury krzemowej do wyprowadzeń obudowy przedstawiono na rysunku 1.
Domena zasilania. Nóżki VDD/VDDA (wyprowadzenie nr 4) oraz VSS/VSSA (wyprowadzenie nr 2) to piny doprowadzające zasilanie do mikrokontrolera. Dopuszczalny zakres napięcia między nimi to 2,95…5,5 V. Napięcie to służy bezpośrednio do zasilania wybranych zasobów mikrokontrolera (w tym linii GPIO oraz modułów analogowych). Ponadto to samo napięcie jest podawane na wejście wewnętrznego stabilizatora napięcia, który na wyjściu wytwarza napięcie 1,8 V służące do zasilania rdzenia mikrokontrolera. Odpowiednie filtrowanie napięcia zasilania polega na zastosowaniu dwóch kondensatorów (1×100 nF oaz 1×1…2 mF) połączonych równolegle i włączonych pomiędzy liniami zasilania, możliwie blisko wyprowadzeń VDD/VDDA oraz VSS/VSSA mikrokontrolera.
Nóżka VCAP (wyprowadzenie nr 3) jest dołączona do wyjścia wewnętrznego stabilizatora napięcia. W celu zapewnienia poprawnej pracy stabilizatora jest wymagane zastosowanie kondensatora (1×470 mF lub o większej pojemności) włączonego pomiędzy wyprowadzenie VCAP i masą (ujemnym potencjałem zasilania).
Układ resetu. Układy z rodziny STM8 zwyczajowo mają wyprowadzenie NRST, które służy jako jedno ze źródeł sygnału zerowania mikrokontrolera. Z uwagi na małą liczbę wyprowadzeń model STM8S001J3 nie został wyposażony w pin NRST, a źródłem resetu dla tego mikrokontrolera może być tylko POR (Power On Reset). W związku z brakiem wyprowadzenia NRST projektant może pominąć ten aspekt podczas tworzenia schematu płytki.
Blok debugowania i programowania. Na potrzeby debugowania i programowania mikrokontrolery STM8 wykorzystują 1-pinowy interfejs SWIM (Single Wire Interface Module). Układ STM8S001J3 również wyposażony jest w to rozwiązanie. Pin SWIM (wyprowadzenie nr 8) powinien być wraz z oboma potencjałami zasilania (dodatnim i ujemnym) podłączony bezpośrednio do sprzętowego programatora/debugera np. ST-Link/V2. Użycie dodatkowych połączeń czy podzespołów nie jest potrzebne.
Domena sygnałów zegarowych. Mikrokontroler STM8S001J3, podobnie jak wszystkie układy z rodziny STM8, może korzystać z wbudowanych zegarów RC do taktowania zasobów wewnętrznych (rdzenia, pamięci, peryferii). Są to konkretnie dwa zegary: HSI (High Speed Internal) 16 MHz oraz LSI (Low Speed Internal) 128 kHz. Jeśli projektant zdecyduje się użyć w aplikacji jednego z nich, projekt płytki może zostać w znaczący sposób uproszczony, gdyż taki wariant nie przewiduje dołączenia do mikrokontrolera żadnego dodatkowego komponentu. Jako rozwiązanie alternatywne możliwe jest użycie zewnętrznego źródła sygnału zegarowego, które dołączone jest do pinu OSCIN (wyprowadzenie nr 1).
Projekt płytki z mikrokontrolerem
Bazując na dotychczasowych wskazówkach i opisie, można już zaprojektować prosty schemat elektryczny z mikrokontrolerem STM8S001J3 i minimalną liczbą podzespołów wymaganych przez ten układ do poprawnej pracy. Widok schematu pokazano na rysunku 2, a jego opis zamieszczono poniżej:
- Wyprowadzenie VDD/VDDA jest dołączone do dodatniego potencjału napięcia zasilania (2,95…5,5 V).
- Wyprowadzenie VSS/VSSA jest dołączone do ujemnego potencjału napięcia zasilania (0 V).
- Kondensatory 1 mF oraz 100 nF są włączone pomiędzy wyprowadzeniem VSS/VSSA i ujemnym potencjałem napięcia zasilania.
- Kondensator 1 mF jest włączony pomiędzy wyprowadzeniem VCAP i ujemnym potencjałem napięcia zasilania.
- Dwie listwy kołkowe (każda po cztery piny) połączone są z wyprowadzeniami mikrokontrolera, co pozwala na łatwe zintegrowanie mikrokontrolera z dodatkowymi podzespołami systemu prototypowego (np. na płytce uniwersalnej).
W oparciu o tak przygotowany schemat elektryczny można już przejść do wykonania projektu płytki drukowanej. Mikrokontroler umiejscowiony został w centralnej części płytki. Kondensatory umieszczono możliwie blisko wyprowadzeń odpowiedzialnych za zasilanie mikrokontrolera. Po lewej i prawej stronie płytki znajduje się listwa kołkowa. Jako że projekt layoutu jest bardzo prosty, udało się wykonać go na jednej warstwie PCB. Widok layoutu pokazano na rysunku 3.
Płytka rozszerzeniowa. Płytka z mikrokontrolerem wykonana według zaprezentowanego opisu może posłużyć jako samodzielny moduł dla różnego rodzaju aplikacji, przykładowo:
- Moduł może zostać w prosty sposób zintegrowany z płytką uniwersalną w celu dołączenia do niego dodatkowych podzespołów i w efekcie stworzyć prototyp urządzenia.
- Moduł może zostać wykorzystany jako element zestawu ewaluacyjnego pozwalającego testować mikrokontroler.
Autor zdecydował się zrealizować w praktyce drugą koncepcję – zestaw ewaluacyjny składający się z płytki z mikrokontrolerem i z płytki rozszerzeniowej. W dalszej części artykułu zamieszczono szczegółowy opis projektu płytki rozszerzeniowej.
Komunikacja przez UART. Jednym z peryferii zintegrowanych w mikrokontrolerze STM8S001J3 jest interfejs komunikacyjny UART. Interfejs ten często wykorzystywany jest w parze z układem będącym mostem UART-USB. Dzięki takiemu rozwiązaniu dane mogą być w łatwy sposób przesyłane dwukierunkowo pomiędzy mikrokontrolerem i komputerem PC. Na potrzeby płytki rozszerzeniowej użyty został układ, który pełni funkcję mostu UART-USB. Jest to FT230XS z oferty popularnej firmy FTDI. Wyprowadzenia USBDP i USBDM tego układu zostały połączone przez rezystory szeregowe do gniazda mini USB. Dodatkowo wyprowadzenia TXD i RXD zostały połączone z odpowiednimi pinami mikrokontrolera, odpowiedzialnymi za transmisję UART. Napięcie zasilania dla FT230XS (jak również dla całej płytki) o wartości 5 V dostarczane jest z gniazda USB. Kondensatory dołączone do linii zasilania zapewniają poprawną filtrację tego napięcia.
Zasilanie mikrokontrolera. Pożądaną niejednokrotnie funkcją zestawu ewaluacyjnego jest możliwość wyboru napięcia zasilania dla mikrokontrolera, co pozwala uzyskać warunki na platformie testowej zbliżone lub takie same jak w przypadku aplikacji docelowej. Biorąc pod uwagę całkowity zakres dopuszczalnego napięcia zasilania mikrokontrolera STM8S001J3, łatwo jest wywnioskować, że najbardziej oczekiwanymi napięciami zasilania są popularne wartości 3,3 V oraz 5 V. Napięcie 5 V jest dostępne bezpośrednio z gniazda mini USB. Napięcie 3,3 V jest również łatwe do uzyskania, gdyż taka właśnie wartość generowana jest przez układ FT230XS na wyprowadzeniu 3V3OUT. W rezultacie bez stosowania żadnych układów zasilania, a jedynie za pomocą zworki, możliwe jest dodanie do płytki rozszerzeniowej mechanizmu wyboru napięcia zasilania dla mikrokontrolera.
Diody LED. Trudno wyobrazić sobie zestaw ewaluacyjny bez diod LED użytkownika. Mikrokontroler STM8S001J3 dysponuje tylko pięcioma wyprowadzeniami mogącymi pełnić funkcję wejścia/wyjścia, zatem ma sens podłączenie diody LED do każdego z nich. W przypadku czterech wyprowadzeń dioda LED i rezystor ograniczający prąd umieszone są między portem i ujemnym potencjałem napięcia zasilania. Wyjątek stanowi piąte wyprowadzenie, oznaczone PB4. Ten port może działać jedynie w konfiguracji open drain, co w praktyce oznacza brak możliwości wystawienia logicznego stanu wysokiego. Z tego powodu dioda LED i rezystor zostały umieszczone pomiędzy portem i dodatnim potencjałem napięcia zasilania.
Przycisk użytkownika. Kolejnym podzespołem popularnie spotykanym w zestawach ewaluacyjnych jest przycisk użytkownika. Jeden taki przycisk został również zastosowany w omawianej płytce rozszerzeniowej. Przycisk ten został włączony pomiędzy jednym z wyprowadzeń będących portem wejścia/wyjścia oraz ujemnym potencjałem napięcia zasilania. Pomiędzy portem i przyciskiem zastosowano rezystor typu pull-up. W takiej implementacji sprzętowej domyślnym stanem (tzn. przycisk nie jest wciśnięty) na porcie jest stan wysoki, natomiast wciśnięcie przycisku zmienia stan z wysokiego na niski.
Pomiar zużycia prądu przez mikrokontroler. Wiele aplikacji, w tym w szczególności te zasilane z baterii, muszą spełniać wymóg budżetu mocy, co sprowadza się często do zadbania, aby mikrokontroler nie przekraczał pewnej ustalonej dla aplikacji wartości średniego poboru prądu. Z tego powodu zestawy ewaluacyjne niejednokrotnie dysponują rozwiązaniem umożliwiającym pomiar zużycia prądu mikrokontrolera. W przypadku opisywanej płytki rozszerzeniowej zastosowano zworkę, która łączy źródło zasilania (3,3 V/5 V) z wyprowadzeniem zasilania mikrokontrolera. Jeśli zworka ta zostanie usunięta, to w jej miejsce może zostać podłączony multimetr w konfiguracji amperomierza, co umożliwi wygodny pomiar prądu mikrokontrolera.
Gniazdo dla płytki z mikrokontrolerem. Opisywana płytka jest z funkcjonalnego punktu widzenia płytką rozszerzeniową dla płytki z mikrokontrolerem. Z tego powodu niezbędnym elementem jej wyposażenia jest gniazdo, które umożliwi połączenie obu płytek w jedną, spójną platformę.
Złącza. Zestawy ewaluacyjne w wielu przypadkach udostępniają złącza, które w łatwy sposób umożliwiają dołączenie do mikrokontrolera dodatkowych podzespołów, płytek i systemów. Tak jest również w przypadku opisywanej płytki. Złącza te mają postać listew kołkowych: 6-pinowej listy z napięciem 0 V, 6-pinowej listwy z napięciem 3,3 V, 6-pinowej listwy z napięciem 5 V oraz 5-pinowej listwy z portami wejścia/wyjścia. Dodatkowo przewidziano 4-pinową listwę dla interfejsu programowania/debugowania SWIM.
Zworki. Płytka rozszerzeniowa daje układowi STM8S001J3 możliwość komunikowania się przez interfejs UART, sterowania diodami LED użytkownika oraz odczytywania stanu przycisku użytkownika. Mikrokontroler ma tylko pięć portów wejścia/wyjścia, więc podzespoły realizujące wymienione funkcjonalności współdzielą te same wyprowadzenia obudowy mikrokontrolera. Aby podzespoły te nie przeszkadzały sobie nawzajem, zastosowano system zworek, który umożliwia zbudowanie lub przerwanie połączeń między mikrokontrolerem i podzespołami wokół niego.
Projekt płytki rozszerzeniowej
Schemat elektryczny płytki rozszerzeniowej, zawierający wszystkie dotychczas opisane funkcjonalności, pokazano na rysunku 4. Layout płytki zaprezentowano na rysunku 5. Po lewej stronie płytki umiejscowiono komponenty związane z komunikacją USB. W centralnej części płytki zlokalizowano gniazdo dla płytki z mikrokontrolerem. Wokół tego gniazda umieszczono zworki oraz listwy kołkowe. W końcu po prawej stronie płytki znalazły się diody LED użytkownika i przycisk użytkownika.
Podsumowanie
W artykule przedstawiono projekt zestawu ewaluacyjnego dla 8-pinowego mikrokontrolera STM8S001J3. Modułowy charakter zestawu umożliwia wykorzystanie go zarówno na potrzeby poznawania mikrokontrolera (w konfiguracji płytka z mikrokontrolerem + płytka rozszerzeniowa), jak też pozwala na użycie go do realizacji systemów prototypowych (w konfiguracji płytka z mikrokontrolerem + płytka uniwersalna).
Przedstawiony materiał można również potraktować jako swoisty przewodnik pokazujący, jak projektować elektronikę w oparciu o mikrokontroler STM8S001J3.
Zapraszamy do lektury kolejnego wydania „Elektroniki Praktycznej”, w której w ramach kolejnego artykułu zostanie zaprezentowany sposób skonfigurowania narzędzia programowego i rozpoczęcia pracy z mikrokontrolerem STM8S001J3.
Szymon Paneck
STMicroelectronics
szymon.panecki@st.com