La famiglia di microcontrollori K10 di Freescale Semiconductor rappresenta l'entry point all'interno della gamma di MCU a 32-bit Kinetis, contraddistinta da una ricca dotazione di periferiche di comunicazione, temporizzazione, e conversione A/D, oltre alla compatibilità pin-to-pin, basso assorbimento, un'unità in virgola mobile a singola precisione, e all'innovativa tecnologia di memoria FlexMemory.
I microcontrollori, basati sul core ARM Cortex M4, sono dotati di memoria flash realizzata in tecnologia TFS (thin-film storage) a 90 nm con dimensioni comprese tra 32 Kb (con package 32QFN da 5x5 mm) ed 1 Mb (con package 144MAPBGA).
Vediamo ora maggiormente in dettaglio le principali caratteristiche che contraddistinguono questa famiglia di controllori, riassunte nello schema a blocchi mostrato nell'immagine seguente.
Kinetis K10 - Basso assorbimento
Sono disponibili 10 diverse modalità di funzionamento a basso assorbimento in grado di ottimizzare sia il funzionamento delle periferiche che il tempo di recovery. L'assorbimento di corrente in stato stop è inferiore a 500 nA, mentre in stato run è dell'ordine di 200 µA per ogni MHz. Il tempo di wake-up (passaggio dallo stato stop a quello run) è di soli 4 µs, mentre l'alimentazione può essere ridotta fino a 1.71V per garantire una buona durata delle batterie.
Freescale kinetis K10: Memorie Flash, SRAM e FlexMemory
La memoria flash, di tipo NAND, ha dimensione variabile tra 32 Kb ed 1 Mb, a seconda del modello di MCU, ed è caratterizzata da un basso tempo di accesso ed elevata affidabilità, grazie a 4 differenti livelli di protezione della sicurezza. I banchi di memoria flash possono anche essere configurati in modo indipendente l'uno dall'altro, permettendo così l'esecuzione concorrente del codice e l'aggiornamento del firmware. La memoria SRAM ha invece dimensione compresa tra 8 e 128 Kb. La memoria FlexMemory, infine, può essere utilizzata in due modalità diverse. Nella prima viene usata come memoria non volatile (FlexNVM) per memorizzare porzioni extra di codice, o come unità di backup (la dimensione varia tra 32 e 512 Kb). Nella seconda, invece, viene impiegata come memoria EEPROM (segmentabile al byte), con dimensioni variaibili tra 32 byte e 16 Kb, ed in grado di supportare fino a 10 milioni di cicli di scrittura.
ADC e DAC
La famiglia K10 dispone di 2 convertitori analogico-digitali da 16 bit ad elevata velocità (tempo di conversione pari a 500 ns), con risoluzione configurabile dall'utente, e modalità di uscita singola o differenziale per una migliore immunità al rumore. Sono inoltre presenti 2 DAC a 12 bit (impiegabili anche come generatori di segnali audio), fino a 3 comparatori veloci in grado di assicurare una rapida ed accurata protezione contro le sovracorrenti nelle applicazioni di controllo motori (l'uscita PWM viene portata in uno stato "safe"), fino a 2 amplificatori a guadagno variabile (con guadagno x64 adatto alla conversione dei signali di ampiezza ridotta). Particolarmente utile la presenza "on-chip" di un accurato riferimento di tensione (internamente testato e regolato utilizzando l'ADC), che fornisce la tensione di riferimento ai blocchi analogici (ADC e DAC).
Performance: K10
Le prestazioni dei controllori della serie K10 sono di tutto rispetto, grazie alla presenza del core ARM Cortex-M4 (frequenza fino a 150 MHz) con supporto per istruzioni DSP e un'unità in virgola mobile a singola precisione (opzionale). Completano il quadro un controllore DMA con fino a 32 canali disponibili, un cross-bar switch per permettere accessi al bus concorrenti e multi-master, e fino a 16 Kb di memoria cache per i dati e le istruzioni.
Kinetis - Temporizzazione e controllo
Questa sezione include fino a 4 FlexTimer, utilizzabili come timer generici, per il PWM, e per le funzioni di controllo dei motori. E' anche disponibile un carrier modulator timer per la generazione di segnali infrarossi (IR), oltre a un interrupt timer a 4 canali e risoluzione su 32 bit utile per generare la base tempi per un RTOS o come sorgente per l'ADC.
Kinetis K10: Human-Machine Interface
E' presente un'interfaccia touch-sensing di tipo capacitivo in grado di supportare fino a 16 input.
Interfacce di comunicazione
Sono disponibili fino a 6 UART con supporto sia per IrDA che per ISO7816 (smart card). Gli standard di comunicazione supportati sono molteplici, tra cui I2S, I2C, CAN, e DSPI.
Sicurezza
Un motore hardware per la generazione del CRC assicura la validazione del contenuto della memoria e dei dati di comunicazione, aumentando il livello di affidabilità del sistema. Completano il blocco per la sicurezza un circuito di monitoraggio del watchdog e circuiti di protezione dalla deriva del clock e crash del software (in conformità allo standard di sicurezza IEC 60730 per le applicazioni ad uso domestico).
Supporto per periferiche esterne
FlexBus fornisce anche supporto per diverse memorie e periferiche esterne, come ad esempio i display grafici; sono presenti 6 segnali di chip select e 2 Gb di spazio di memoria indirizzabile. Un controllore host per schede di memoria SD/SDIO/MMC/CE-ATA, ed un controllore per memorie flash NAND con supporto hardware per ECC 32-bit completano il quadro.
Kinetis ARM Cortex-M4 Microcontrollers