STM8L001J3 - duża funkcjonalność za małe pieniądze

| Technika

8-bitowe mikrokontrolery nie tylko nie wypadają z rynku, ale przez cały czas są rozwijane i stale pojawiają się jeszcze lepsze jednostki. To dlatego, że w wielu współczesnych urządzeniach i aplikacjach jest dużo stosunkowo prostych zadań, gdzie trzeba zapewnić podstawowe funkcje pomiarowe i kontrolne, stworzyć nieskomplikowaną logikę lub po prostu wymagania co do zasobów sprzętowych i wydajności są niewielkie. W takich obszarach układy 8-bitowe zapewniają doskonały stosunek możliwości do ceny i cały czas są poszukiwane.

STM8L001J3 - duża funkcjonalność za małe pieniądze

STM8L001J3 to nowy 8-bitowy mikrokontroler firmy STMicroelectronics, jaki pojawił się w ostatnich miesiącach na rynku, będący częścią rodziny układów STM8L. Wszystkie te układy oparte są na tej samej architekturze, mają identyczne odwzorowanie pamięci i spójny schemat rozmieszczenia wyprowadzeń (pinout), co zapewnia bezproblemową migrację.

 
Rys. 1. Schemat blokowy jednostki STM8L001J3

Zgodność ta dotyczy także wbudowanych układów peryferyjnych, które są takie same w obrębie członków rodziny oraz w wielu przypadkach także tych, które zawierają silniejsze 32-bitowe układy STM32. Dzięki temu każde przejście do innej rodziny jest bardzo łatwe i jeszcze bardziej uproszczone dzięki zastosowaniu wspólnego zestawu narzędzi programistycznych.

Mikrokontroler charakteryzuje się dużą wydajnością przetwarzania, do 16 MIPS-ów przy zegarze 16 MHz przy zachowaniu zalet architektury CISC, a więc zapewniającej dużą gęstość kodu wynikowego oraz są zoptymalizowane pod kątem niskiego poboru mocy.

Układ ma zintegrowany moduł debugowania z interfejsem sprzętowym (SWIM), który umożliwia nieinwazyjne debugowanie aplikacji i ultraszybkie programowanie pamięci programu Flash. Atutem mikrokontrolera STM8L001J3 jest też niskomocowa 8-kilobajtowa pamięć programu Flash, której część pełni także funkcję pamięci EEPROM.

STM8L to rodzina "value line", a więc taka, która ma bardzo wysoki stosunek możliwości i zasobów do ceny, niemniej niekończenie te zasoby (jak głównie wielkość pamięci oraz zestaw układów peryferyjnych) są bardzo duże. W omawianym przypadku pamięć programu Flash wynosi 8 KB (z możliwością stworzenia w jej obrębie 2 KB EEPROM), a statyczny RAM to 1,5 KB, co lokuje ten mikrokontroler pośrodku rankingu.

Pamięć ma zaimplementowaną korekcję błędów ECC, obsługuje tryby ograniczonej możliwości zapisu i pozwala definiować obszary tylko do odczytu, za pomocą mechanizmu kontroli dostępu (MASS, memory access security mechanism), co pomaga w zapewnieniu niezawodności działania aplikacji.

Peryferia

 
Rys. 2. Układy tworzące rodzinę STM8L

Poza pamięcią największe różnice między poszczególnymi członkami rodziny STM8L kryją się w dostępnym zestawie układów peryferyjnych. W omawianym modelu na wyposażeniu jest działający niezależnie watchdog, jednostka zapewniająca automatyczne wybudzenie (auto-wakeup unit, AWU), beeper (timer z ustaloną częstotliwością 1, 2 lub 4 kHz, także podczas taktowania z użyciem "wolnego" zegara 38 kHz), interfejsy I²C i SPI oraz USART.

Do dyspozycji projektanta oddano także 2 komparatory, interfejs zdalnego sterowania IR, dwa timery/liczniki 16-bitowe i jeden 8-bitowy timer z 7-bitowym preskalerem. Komparatory są przeznaczone głównie do pracy w układach detektorów przejścia przez zero oraz tworzenia alarmów, gdzie przekroczenie poziomu referencyjnego wywołuje przerwanie.

Oszczędność energii

 
Rys. 3. Płytka ewaluacyjna Discovery z STM8L

Mikrokontroler obsługuje trzy tryby oszczędnościowe: wait - gdzie zegar taktujący jest zatrzymany a wybrane peryferia mają zapewnione dalej taktowanie, activehalt - z zegarami zatrzymanymi i możliwością szybkiego wybudzenia w ciągu 4 μs przez AWU oraz halt, także z zatrzymanymi zegarami taktującymi i możliwością wybudzenia przerwaniem zewnętrznym. W trybach oszczędnościowych napięcie zasilania jest automatycznie obniżane dla zapewnienia ograniczenia poboru mocy.

Taktowanie zapewniają dwa oscylatory. Główny (HSI RC), o częstotliwości do 16 MHz, współpracujące z programowanym preskalerem pozwalającym na ustalenie wolniejszego taktowania oraz dodatkowe źródło 38 kHz dla watchdoga i jednostki AWU. 38 kHz to także standardowa częstotliwość nośna pilotów zdalnego sterowania.

Pobór prądu wynosi poniżej 150 μA/MHz w trybie aktywnym, 0,8 μA w trybie active-halt i 0,3 μA w halt.

Układ pozwala na zasilanie napięciem od 1,8 V do 3,6 V (ma wbudowany wewnętrzny stabilizator), a szeroki zakres temperatur pracy od -40 aż do +125°C otwiera jego zastosowania na aplikacje przemysłowe oraz profesjonalne. Został umieszczony w obudowie SO8N, której montaż nie wykracza poza możliwości typowych urządzeń SMT.

Poszczególne piny pełnią funkcje w zależności od aktywnych bloków peryferyjnych i funkcji, odliczając z 8-końcówkowej obudowy 2 nóżki na zasilanie i masę, reszta jest do dyspozycji na wejścia przerwań, linie GPIO itd. Jedna końcówka ma zwiększoną wydajność prądową i może bezpośrednio sterować LED, np. w pilocie.

Cena mikrokontrolera wynosi 0,21 dol. przy zamówieniu 10 tys. sztuk (ok. 80 gr). Producent gwarantuje długą dostępność w ofercie opisywanego mikrokontrolera (longevity).

Zasoby w zakresie oprogramowania

W ramach darmowego wsparcia producent proponuje zestaw ST visual develop (STVD) - środowisko IDE i programator (STVP), zawierający asembler, linker, symulator i programator. Narzędzia te można też wykorzystać do współpracy z kompilatorem C, standardowym i popularnym debuggerem/programatorem sprzętowym ST-LINK.

Programować można, wykorzystując wspomniany darmowy asembler, ale lepiej użyć kompilatora C. Są one dostępne w ofertach IAR Systems, Cosmic i Raisonance, w wersji pełnej płatnej, ale i darmowej, gdzie wielkość kodu jest limitowana. Poza samymi kompilatorami można kupić kompletne środowisko projektowe (IDE), jak np. IAR EWSTM8 workbench lub RIDE-STM8 Raisonance.

Dla programistów STMicroelectronics przygotował ponadto bibliotekę z przykładowymi kawałkami kodu (zgodnymi z ANSI-C i MISRA C 2004). Ułatwiają one obsługę peryferii i przyspieszają pracę.

Zobacz również