STM 32 Introduzione La scheda STM 32 prodotta

  • Slides: 17
Download presentation
STM 32

STM 32

Introduzione • La scheda STM 32 è prodotta dalla STMicroelectronics, azienda franco-italiana con sede

Introduzione • La scheda STM 32 è prodotta dalla STMicroelectronics, azienda franco-italiana con sede a Ginevra. • Tra le famiglie di microcontrollori a 32 -bit (a differenza della scheda arduino UNO che è a 8 bit) prodotti dall’azienda negli ultimi anni, l’STM 32 è il loro primo microcontrollore basato sul nuovo core ARM Cortex-M 3 che garantisce nuovi standard per quanto riguarda costi e performance, oltre ad essere in grado di operare a basso consumo.

Architettura base

Architettura base

Il microcontrollore in generale • La matrice di bus è dotata di un arbiter

Il microcontrollore in generale • La matrice di bus è dotata di un arbiter che permette di minimizzare la negozzizazionetra la CPU e i dati in ingresso • AHB Advanced HIGH Performance Bus • APB Advanced Peripheral Bus • DMA fa da arbitro alla SRAM per APB 1 e APB 2 Tuttavia, i 2/3 del tempo è dedicato alle periferiche, 1/3 del tempo è dedicato alla CPU

Caratteristiche • • • • Caratteristiche del microcontrollore STM 32 F 411 RET 6

Caratteristiche • • • • Caratteristiche del microcontrollore STM 32 F 411 RET 6 in LQFP 64 package ARM 32 -bit Cortex-M 4 CPU con FPU 100 MHz massima frequenza della CPU VDD da 1. 7 V a 3. 6 V 512 KB Flash 128 KB SRAM GPIO (50) con possibilità di interrupt esterno 12 -bit ADC con 16 canali RTC Timers (8) I 2 C (3) USART (3) SPI (5) USB OTG piena velocità SDIO

Classifica • Esistono svariati tipi di schede STM 32 e sono classificate come: –

Classifica • Esistono svariati tipi di schede STM 32 e sono classificate come: – STM 32 F 4 x – STM 32 F 3 x – STM 32 L 1 x – STM 32 F 0 • Serie L: Ultra low power a 32 pin • Serie F fino a F 3: Mainstream da 32 a 64 pin • Serie F 4 fino a F 7: High performance con processore che va dagli 85 Mhz ai 216 Mhz, da 64 a 144 pin

Classifica

Classifica

Nucleo F 401 RE • La scheda Nucleo F 401 RE ha le seguenti

Nucleo F 401 RE • La scheda Nucleo F 401 RE ha le seguenti caratteristiche: – – Due tipi di estensioni. Connettività Arduino Uno Revision 3 Connettività STMicroelectronics Morpho per un accesso pieno a tutti gli I/O dell’ STM 32 – – – – CPU 84 MHz Memoria flash a 512 KB SRAM 96 KB 50 GPIO ADC 12 bit e 16 canali Una parte della scheda è resa simile a quella di Arduino con 14 pin digitali e 6 analogici Alimentazione “flessibile” • • • USB VBUS o sorgente esterna (3. 3 V, 5 V, 7 – 12 V) Power management access point LED utente (LD 2) Due pulsanti: USER e RESET USB re-enumeration capability: tre differenti funzioni supportate dalla USB: – – – COM port virtuale Mass storage (USB Disk drive) per la programmazione drag’n’drop Debugging

Nucleo F 401 RE

Nucleo F 401 RE

Nucleo F 401 RE

Nucleo F 401 RE

Le parti della nucleo • La scheda è formata da due parti: – un

Le parti della nucleo • La scheda è formata da due parti: – un programmatore ST-Link, utilizzato per caricare il firmware sul microcontrollore della scheda; – una scheda di sviluppo su cui è locato il microcontrollore. • Una volta programmato, le due parti si possono staccare ma, il microcontrollore non si può più riprogrammare. Il programma resta per sempre invariato ma lo spazio occupato è molto di meno

Le parti della nucleo

Le parti della nucleo

pin

pin

Firmware • La scheda nucleo si può programmare in vari modi; tra i più

Firmware • La scheda nucleo si può programmare in vari modi; tra i più noti: – STM 32 Cube. MX – mbed. Eclipse. Studio – La piattaforma online mbed

Sintassi • La sintassi è simile al c++ • È un po’ diversa da

Sintassi • La sintassi è simile al c++ • È un po’ diversa da Arduino • È case sensitive • Richiede sempre una libreria “mbed. h” • Il template è il seguente: #include “mbed. h” Dichiarazioni variabili globali int main(){dichiarazioni variabili locali ……. . }

Sintassi • Con un esempio, riesce tutto meglio #include “mbed. h” Digital. In lettore(D

Sintassi • Con un esempio, riesce tutto meglio #include “mbed. h” Digital. In lettore(D 5); //il pin D 5 è stato chiamato lettore e dichiarato come input Digital. Out led(D 6); // il pin D 6 è stato chiamato led e dichiarato come output int main(){ if(lettore==0)led=0; //se il livello logico del lettore è zero, il led è spento If(lettore==1)led=1; // se il livello logico del lettore è uno, il led è acceso Wait(3); //attende 3 secondi}

Sintassi • Il programma precedente, esegue le istruzioni solo una volta. Per far eseguire

Sintassi • Il programma precedente, esegue le istruzioni solo una volta. Per far eseguire le istruzioni sempre, bisogna inserire l’istruzione while(1) nel seguente modo: #include “mbed. h” Digital. In lettore(D 5); //il pin D 5 è stato chiamato lettore e dichiarato come input Digital. Out led(D 6); // il pin D 6 è stato chiamato led e dichiarato come output int main(){ while(1){ if(lettore==0)led=0; //se il livello logico del lettore è zero, il led è spento If(lettore==1)led=1; // se il livello logico del lettore è uno, il led è acceso Wait(3); //attende 3 secondi } }