STM8
# STM8

L'STM8 è un microcontroller a 8-bit prodotto da STMicroelectronics.

## Caratteristiche

Gli STM8 sono microcontroller a 8-bit con architettura Harvard e pipeline a più stadi, dotati delle periferiche di base per la comunicazione seriale (I²C, SPI, UART), supporto agli interrupt annidati, convertitori A/D, timer a 8 e 16-bit. L'STM8S003F3 ad esempio dispone di tutte le suddette periferiche ed è caratterizzato da 8KB di flash, 1KB di RAM e 128 byte di EEPROM.

Quasi tutti i microcontroller della linea STM8 dispongono di meno di 64KB di flash (indirizzarne di più, per quanto possibile, risulta complesso e richiede l'utilizzo di speciali istruzioni).

L'STM8 ha alcune somiglianze al precedente ST7, ma è più idoneo ad essere programmato in C grazie alla possibilità di indirizzare in maniera relativa lo stack pointer. Vi è inoltre un accumulatore a 8-bit (A) e dei registri indice a 16-bit (X e Y).

## Famiglie

Gli STM8 sono disponibili in numerose fasce, sia di prezzo (es. "Value Line") che di caratteristiche:

* STM8S, famiglia mainstream (ossia standard, per applicazioni generiche)
* STM8L, a basso consumo
* STM8AF, per il mercato automotive
* STM8AL, per il mercato automotive, a basso consumo
* STM8T, per interfacce touch
* STLUX, specifica per il controllo dell'illuminazione (LUX, appunto)
* STNRG, specifica per il controllo PWM in applicazioni di potenza
* SPLNB, specifica per il controllo degli LNB sulle parabole satellitari

Le famiglie per applicazioni specifiche, come quelle per l'automotive o per il controllo di potenza, sono in genere elaborazioni della famiglia di base con l'aggiunta di periferiche specifiche (es. rivelatori di zero-crossing per la corrente alternata, macchine a stati per la gestione dell'illuminazione tramite protocollo DALI, etc...)

## Compilatori

L'STM8 è supportato da una vasta serie di IDE e compilatori commerciali (IAR, Cosmic, Raisonance, STVD) disponibili solitamente in versioni a pagamento o gratuite ma con limite sulla dimensione del codice. Vi è inoltre supporto da parte del compilatore open-source SDCC.

