STM8S001J3 (1). Wprowadzenie. Pierwszy mikrokontroler STM8 w 8-nóżkowej obudowie

STM8S001J3 (1). Wprowadzenie. Pierwszy mikrokontroler STM8 w 8-nóżkowej obudowie
Pobierz PDF Download icon
Za sprawą układów STM32 firma STMicroelectronics stała się rozpoznawalna jako jeden z czołowych producentów mikrokontrolerów. Warto jednak zauważyć, że oprócz STM32 w ofercie STMicroelectronics znajduje się również inna rodzina mikrokontrolerów mająca w nazwie charakterystyczne "STM" - STM8. Do tej rodziny niedawno wprowadzono interesującą nowość ? układ w 8-nóżkowej obudowie. Jest to dobra okazja do bliższego przyjrzenia się temu układowi oraz do odświeżenia wiedzy o tej wartościowej rodzinie mikrokontrolerów, chociaż pozostającej nieco w cieniu STM32.

STM8 to rodzina mikrokontrolerów 8-bitowych. Jest ona efektem bogatych doświadczeń firmy STMicroelectronics na polu mikrokontrolerów o takiej architekturze. Czytelnicy mogą pamiętać rodziny ST6, ST7 (w tym bardziej popularne na naszym rynku ST7LITE i ST7ULTRALITE) czy ST10. Ich następcą, wprowadzonym na rynek w roku 2008 i oferującym liczne usprawnienia w porównaniu z poprzednikami, jest właśnie STM8. Tytułem wstępu warto zauważyć, że jest to mikrokontroler całkowicie bazujący na projekcie STMicroelectronics, co oznacza wykorzystanie szeregu autorskich rozwiązań tego producenta. Są to między innymi: rdzeń STM8 (CPU typu CISC) taktowany przebiegiem o częstotliwości do 24 MHz, interfejs programowania/debugowania SWIM (Single Wire Interface Module), pamięć Flash wykonana w procesie technologicznym 130 nm oraz szereg różnorodnych peryferiów analogowych i cyfrowych.

O popularności rodziny STM8 dobrze świadczą liczby. Sprzedaż mikrokontrolerów rozpoczęła się we wspomnianym już 2008 roku. 6 lat później wyprodukowano łącznie 1 miliard tych układów. Rok 2016 to kolejna okrągła liczba – łącznie 2 miliardy sprzedanych mikrokontrolerów. Barierę 3 miliardów rodzina STM8 przekroczyła już w maju 2017 roku (szczegółowy wykres zaprezentowano na rysunku 1). Tym samym udział rodziny STM8 w 8-bitowym rynku mikrokontrolerów kształtuje się obecnie na poziomie ok. 15%. Mikrokontrolery te są stosowane bardzo często w sprzęcie gospodarstwa domowego (np. jako interfejs użytkownika), urządzeniach zasilanych z baterii (np. głowicach termostatycznych) i aplikacjach motoryzacyjnych (np. do sterowania szybami i światłami).

Podstawowe informacje o STM8

Każdy mikrokontroler STM8 ma architekturę Harvard i wspólne dla całej rodziny zasoby, którymi są wspomniany wcześniej rdzeń STM8, interfejs SWIM, pamięć (Flash, EEPROM i SRAM), blok zegarów (dwa wewnętrzne: HSI 16 MHz i LSI 128 kHz, dwa zewnętrzne: HSE, LSE) oraz blok generowania sygnału reset. Dodatkowo, wszystkie układy wyposażone są w standardowe peryferia: interfejsy komunikacyjne USART, SPI i I2C, 8- i 16-bitowe timery, przetwornik A/C, watchdog oraz blok resetu. Uproszczony schemat blokowy mikrokontrolera STM8 pokazano na rysunku 2. Tak zdefiniowaną platformę zróżnicowano pod względem pojemności pamięci i obudowano w dodatkowe zasoby, funkcjonalności i peryferia, które pozwoliły na ukształtowanie trzech podrodzin STM8: STM8S, STM8L oaz STM8A. Podział rodziny STM8 pokazano na rysunku 3.

Podrodzina STM8S

Są to mikrokontrolery ogólnego przeznaczenia. Są w niej oferowane układy z pamięcią Flash o pojemności od 8 do 128 kB. Wbudowany regulator napięcia pozwala na zasilanie mikrokontrolera napięciem od 2,95 aż do 5,5 V. Układy są dostępne obudowach z od 8 do 80 wyprowadzeń. Podrodzina STM8S składa się z trzech grup: STM8S00x, STM8S103/105 oraz STM8207/208. Ich porównanie zaprezentowano na rysunku 4.

Grupa STM8S00x jest zwana Value Line ze względu na najbardziej przystępną cenę tych układów w całej podrodzinie STM8S. Ta cena wynika z podstawowego wyposażenia w peryferia oraz z mniej rygorystycznych testów i czynności poprodukcyjnych, których efektem jest mniejsza dokładność wbudowanego oscylatora RC, mniejsza liczba cykli zapisu pamięci Flash/EEPROM oraz brak unikalnego identyfikatora. Ponadto, producent nie oferuje dla tych układów usługi programowania aplikacją klienta na etapie produkcji. Grupa STM8S00x zawiera układy z pamięcią Flash o pojemności od 4 do 32 kB, pamięcią SRAM od 1 do 6 kB oraz pamięcią EEPROM mieszczącą 128 bajtów. Mikrokontrolery pracują z częstotliwością taktowania rdzenia do 16 MHz. Warto w tym miejscu wspomnieć, że najnowszy, zaprezentowany niedawno układ STM8S001J3, oferowany w 8-nóżkowej obudowie, należy właśnie do tej grupy.

Grupa STM8S103/105 nosi nazwę Access Line. Układy te nie mają ograniczeń charakterystycznych dla mikrokontrolerów Value Line. Ponadto różnią się pod względem pojemności pamięci: Flash 4…32 kB, SRAM 1…2 kB oraz EEPROM 640…1024 bajtów.

STM8S207/208 to grupa o nazwie Performance Line. Mikrokontrolery te są rozszerzeniem układów STM8S103/105 oferując wyższą częstotliwość pracy (do 24 MHz) oraz dodatkowe wyposażenie: interfejs CAN, kolejny interfejs UART i większą liczbę kanałów przetwornika A/C. Ponadto, układy Performance Line mają pamięć o największej pojemności spośród wszystkich grup podrodziny STM8S: do 128 kB Flash, 6 kB SRAM oraz do 2048 bajtów EEPROM.

Podrodzina STM8L

STM8L to podrodzina mikrokontrolerów o obniżonym poborze prądu. Pod względem pamięci Flash dostępne są warianty od 2 do 64 kB. W porównaniu do STM8S, seria STM8L ma niższy zakres napięcia zasilania (1,8…3,6 V), lepiej dostosowany do aplikacji zasilanych z baterii. Wyróżnikiem tej podrodziny jest również energooszczędność. Na przykład, w trybie HALT mikrokontrolery pobierają prąd o natężeniu poniżej 1 mA oraz ok. 1,2 mA w trybie Active HALT (z RTC jako źródłem wybudzenia). Ponadto, dodatkowym, wspólnym dla wszystkich układów STM8L zasobem jest przetwornik C/A oraz zegar RTC (mikrokontrolery STM8S mają jedynie jego namiastkę – Auto Wake-Up Timer). Podrodzina STM8L składa się z czterech grup: STM8L051/052, STM8L101, STM8L151/152 oraz STM8L162. Ich porównanie zaprezentowano na rysunku 5.

Grupa STM8L051/052 jest nazwana Value Line. Oznacza to atrakcyjną cenę układów (najniższą w podrodzinie STM8L), co jest okupione pewnymi ograniczeniami i pogorszeniem niektórych parametrów (te same, co w wypadku STM8S00x). Grupa STM8L051/052 zawiera układy z pamięcią Flash mieszczącą od 8 do 64 kB, pamięcią SRAM 1…4 kB i pamięcią EEPROM 256 bajtów. Mikrokontrolery pracują z częstotliwością taktowania rdzenia do 16 MHz, a w zakresie wyposażenia mają moduł DMA i kontroler wyświetlacza LCD.

STM8L101 to grupa, która nie jest obarczona ubytkami charakterystycznymi dla grupy Value Line. Układy te mają skromniejsze wyposażenie w porównaniu z mikrokontrolerami STM8L051/052: nie mają pamięci EEPROM, modułu DMA oraz kontrolera wyświetlacza LCD. Dodatkowo mniejszy jest zakres pojemności pamięci: 2…8 kB Flash oraz 1,5 kB SRAM.

Układy STM8L151/152 łączą najlepsze cechy dwóch wcześniej wymienionych grup. Użytkownik ma zatem do dyspozycji pokaźne wyposażenie, w tym moduł DMA i kontroler wyświetlacza LCD. Ma też komfort w wyborze pojemności pamięci: od 4 do 64 kB Flash, od 1 do 4 kB SRAM oraz od 256 do 2048 bajtów EEPROM. Ponadto, nie mają ograniczeń grupy Value Line.

Rozszerzeniem grupy STM8L151/152 są mikrokontrolery STM8L162, które dodatkowo dysponują modułem szyfrującym według 128-bitowego algorytmu typu AES.

Podrodzina STM8A

STM8A to podrodzina mikrokontrolerów motoryzacyjnych. Składa się ona z dwóch serii: STMAF oraz STM8AL. Są one bardzo zbliżone charakterystyką do omówionych wcześniej podrodzin (STM8AF do STM8S i STM8AL do STM8L), gdyż zasadniczą różnicą między nimi jest dostosowanie do wymagań sektora motoryzacyjnego, co objęło między innymi dodanie do wyposażenia interfejsu LIN oraz zwiększenie maksymalnej temperatury pracy do +150°C.

Narzędzia rozwojowe

Konstruktorzy chcący tworzyć aplikacje dla mikrokontrolerów STM8 mogą wybierać spośród kilku środowisk programistycznych i kompilatorów. Najpopularniejsze z nich to połączenie bezpłatnych narzędzi: środowiska ST Visual Develop i kompilatora Cosmic CXSTM8. Dostępne są również dwa rozwiązania komercyjne (środowisko + kompilator: Embedded Workbench for STM8 firmy IAR Systems oraz Ride7 firmy Raisonance) i jedno open source (kompilator SDCC).

Pisanie aplikacji ułatwia pakiet bibliotek Standard Peripheral Library, który udostępnia intuicyjne i łatwe w użyciu funkcje do konfiguracji i sterowania zasobami mikrokontrolerów STM8.

Kolejnym dostępnym narzędziem jest STM8CubeMX. Jest to aplikacja komputerowa umożliwiająca realizację następujących czynności za pomocą graficznego interfejsu użytkownika:

- przypisanie peryferiów do wyprowadzeń mikrokontrolera,
- konfigurację sygnałów zegarowych mikrokontrolera,
- szacowanie poboru prądu mikrokontrolera w różnych trybach pracy i w różnych wariantach użycia peryferiów.

W porównaniu do analogicznego narzędzia dla mikrokontrolerów STM32 (STM32CubeMX), program STM8CubeMX nie umożliwia jednak tworzenia projektu pod środowisko programistyczne i generowania kodu źródłowego.

Tanią platformę sprzętową stanowią płytki z serii STM8 Discovery, dostępne dla każdej z podrodzin: STM8S, STM8L oraz STM8A.

8-bitowy, ale też mający wspólny mianownik z STM32

Pobieżna analiza rodziny STM8 może nasunąć wniosek o tym, że mimo zbieżności nazewnictwa STM8 jest produktem różniącym się pod każdym względem od STM32. Nie jest to prawdą. Zbliżony czas powstania obu rodzin mikrokontrolerów (STM8 – 2008, STM32 - 2007) umożliwił wykorzystanie niektórych rozwiązań zarówno w jednej, jak i drugiej rodzinie. Dobrze oddającym to przykładem jest blok RCC (Reset and Clock Control), który składając się z zegarów HSE, HSI, LSE i LSI ma zbliżoną budowę w układach STM8 i STM32. Podobnie jest w przypadku wybranych peryferiów, które są takie same w obu rodzinach. Konsekwencją tego stanu rzeczy jest również częściowe podobieństwo narzędzi np. CubeMX i biblioteki Standard Peripheral Library. Wszystko to powoduje, że obecni użytkownicy mikrokontrolerów STM32, którzy zdecydują się pracować również z układami STM8, będą mieli ułatwiony start.

STM8S001J3, czyli 8 bitów w 8 nóżkach

Do niedawna mikrokontrolery STM8 nie były dostępne w obudowach z mniejszą liczbą wyprowadzeń niż 20. Nowy mikrokontroler o nazwie STM8S001J3 zmienia ten stan mając obudowę z zaledwie 8 wyprowadzeniami, konkretnie typu SO8N (umiejscowienie STM8S001J3 w rodzinie STM8 pokazano na rysunku 6). Mocną stroną nowego układu jest również cena. STM8S001J3 zapowiadany jest jako najtańszy mikrokontroler w rodzinie STM8.

Kompletny schemat blokowy mikrokontrolera pokazano na rysunku 7. Od strony funkcjonalnej jest to klasyczny układ z podrodziny STM8S, pod względem technicznym podobny do STM8S003F3P6. Jego szkielet tworzy rdzeń STM8 pracujący z częstotliwością taktowania do 16 MHz, pamięć (Flash 8 kB, SRAM 1 kB, 128 bajtów EEPROM), blok zegarów (HSI 16 MHz, HSE 1-16 MHz, LSI 128 kHz), blok resetu oraz interfejs SWIM. W tym miejscu warto odnotować, że blok resetu nie dysponuje wyprowadzeniem NRST, natomiast wyprowadzenie SWIM jest współdzielone z linią GPIO i peryferiami.

Dodatkowo, na wyposażeniu znajdują się standardowe interfejsy komunikacyjne: I2C, UART i SPI. Interfejs UART ma możliwość transmisji danych w trybie full duplex z prędkością do 1 Mbit/s włącznie. Jeśli zajdzie taka potrzeba, ten interfejs może być użyty w trybie synchronicznym (z linią zegarową) lub w trybie kompatybilnym z komunikacją IrDA bądź LIN. Interfejs SPI wspiera sprzętowo tylko komunikację jednokierunkową (wysyłanie danych). Maksymalna prędkość transmisji to 8 Mbit/s. Interfejs I2C jest kompatybilny z dwoma standardami prędkości: standard speed (do 100 kHz) i fast speed (do 400 kHz).

Peryferia analogowe reprezentuje przetwornik A/C typu SAR. Wykonuje on konwersję analogowo-cyfrową w rozdzielczości 10 bitów w pełnym zakresie napięcia zasilania mikrokontrolera. Przetwornik ten dysponuje trzema kanałami analogowymi.

Uzupełnienie wyposażenia stanowią timery różnego typu. Blok TIM1 to 16-bitowy, zaawansowany timer, który dzięki możliwości generowania przebiegu PWM i dodatkowym funkcjom dobrze nadaje się do aplikacji sterowania silnikiem lub aplikacji oświetlenia. Dobrym przykładem zastosowania timera TIM1 jest też wyzwalanie przetwornika A/C. Blok TIM2 to 16-bitowy timer ogólnego przeznaczenia, z kolei TIM4 to timer 8-bitowy, który może posłużyć np. jako podstawa czasu dla wykonywanych cyklicznie zadań. Dodatkowo, w skład timerów wchodzą dwa timery typu Watchdog (okienkowy i niezależny) oraz Auto Wake-Up Timer, którego zadaniem jest wybudzanie mikrokontrolera z trybu HALT co zdefiniowany interwał czasu.

Mikrokontroler STM8S001J3 dysponuje pięcioma portami I/O. Mogą one pracować jako zwykłe linie GPIO, przerwania zewnętrzne (EXTI), interfejs SWIM lub jako wejście/wyjście dla wybranych peryferiów (interfejsów komunikacyjnych, przetwornika A/C, timerów). Jako, że wejść/wyjść peryferiów i portów jest znacznie więcej niż wyprowadzeń, zastosowano rozwiązanie polegające na połączeniu więcej niż jednego peryferium/portu do pojedynczego wyprowadzenia. Przypisanie peryferiów do wyprowadzeń pokazano na rysunku 8 oraz w tabeli 1. Pozostałe trzy wyprowadzenia to linie powiązanie z blokiem zasilania. Dwa wyprowadzenia odpowiadają bezpośrednio za doprowadzenie napięcia zasilania, natomiast jedno wyprowadzenie połączone jest z wyjściem wbudowanego regulatora napięcia. Podobnie jak wszystkie mikrokontrolery STM8, układ STM8S001J3 można zasilać napięciem z zakresu 2,95…5,5 V.

Przykładowe zastosowania STM8S001J3

Mając do dyspozycji 8-nóżkowy mikrokontroler, który może efektywnie (na potrzeby aplikacji) korzystać z pięciu wyprowadzeń, możliwości zastosowania wydają się być ograniczone. Z jednej strony jest to prawda, niemniej jednak całkiem pokaźny zestaw peryferiów znacznie zwiększa wachlarz rozwiązań. Trzy przykładowe aplikacje zademonstrowano na rysunku 9.

Pierwsza aplikacja jest przykładem systemu, który odczytuje wartość analogową i prezentuje ją na wyświetlaczu. Za konwersję analogowo-cyfrową odpowiada przetwornika A/C, który wykorzystuje do tego kanał analogowy przypisany do wyprowadzenia nr 1. Podzespołem z wyjściem analogowym może być np. czujnik temperatury lub potencjometr. Dane dla użytkownika zawierające wynik pomiaru prezentuje wyświetlacz, w tym przypadku wybrany został graficzny model EA DOGM132. Pasuje on tu dobrze ze względu na możliwość sterowania za pomocą czterech linii, dwóch GPIO (wyprowadzenia nr 5 i 6) oraz dwóch będących interfejsem SPI (wyprowadzenia nr 7 i 8).

Druga aplikacja to przykład dwukanałowego regulatora temperatury. Każdy z kanałów jest od siebie niezależny i składa się z bloku pomiaru temperatury oraz bloku regulacji obrotów wentylatora służącego do chłodzenia. Pomiar temperatury odbywa się w sposób identyczny do poprzedniego przykładu – przetwornik A/C mierzy sygnał analogowy na wyprowadzeniach nr 1 i nr 7, do których dołączone są analogowe czujniki temperatury. Blok regulacji obrotów wentylatora składa się z układu typu H-bridge i dwóch silników DC. Prędkość ich obrotu regulowana jest za pomocą wyprowadzeń nr 5 i 8, które mają możliwość generowania sygnału PWM. Dodatkowo system informuje użytkownika o trybie pracy za pomocą diody LED dołączonej do wyprowadzenia 6.

Trzecia aplikacja to przykład systemu akwizycji danych z czujników z funkcją logowania. Czujniki (np. typu MEMS) są dołączone do mikrokontrolera za pomocą I2C (wyprowadzenia nr 5 i 6). Logowanie (oraz dodatkowo odbiór komend do konfiguracji czujników) realizowane jest przez interfejs UART (wyprowadzenia nr 1 i 8). Podobnie jak w poprzednim przykładzie, ostatnie z wyprowadzeń (nr 7) może sterować diodą LED pełniąc tym samym rolę informowania użytkownika o statusie systemu lub o określonych zdarzeniach.

Podsumowanie

Układy STM8 dobrze uzupełniają portfolio mikrokontrolerów STMicroelectronics zdominowane przez rodzinę STM32 i stanowią ciekawą propozycję dla aplikacji, gdzie moc obliczeniowa i wyspecjalizowane peryferia nie są wymagane, natomiast istotnym kryterium jest funkcjonalność i niska cena. Układ STM8S001J3 jest bezkompromisową realizacją tych założeń oferując kompaktową obudowę, małą liczbę wyprowadzeń, szereg standardowych peryferiów, szeroki zakres napięcia zasilania i bardzo atrakcyjną cenę, najniższą w rodzinie STM8.

Zapraszamy do lektury kolejnego artykułu w następnym wydaniu Elektroniki Praktycznej, w którym zaprezentujemy opis projektu zestawu ewaluacyjnego dla mikrokontrolera STM8S001J3.

Szymon Panecki
STMicroelectronics
szymon.panecki@st.com


Artykuł ukazał się w
Elektronika Praktyczna
październik 2017
DO POBRANIA
Pobierz PDF Download icon

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik marzec 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna marzec 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów