KINETIS-K

Questo articolo della rubrica Firmware Reload introduce la serie K di microcontrollori della famiglia Kinetis proposta da Freescale. Si tratta di microcontrollori a 32 bit per la fascia “Entry-level” del mercato, che integrano un core Cortex M4 di ARM.

I core Cortex della ARM si stanno rapidamente diffondendo nel mercato dei microcontrollori. Tutti i principali costruttori di riferimento stanno lanciando sul mercato i loro prodotti con core Cortex. Uno dei player più attivi su questo mercato è Freescale che di recente ha lanciato la famiglia Kinetis. I primi prodotti di questa famiglia integrano un core Cortex M4 e sono stati ribattezzati come serie K. La novità più recente è invece il lancio della serie L caratterizzata da un core Cortex M0+.

Di seguito ci concentreremo sulla serie K, una famiglia di microcontrollori a 32 bit destinata alla fascia bassa del mercato, ma con prestazioni e periferiche di prima fascia. La famiglia Kinetis-K si propone soprattutto per i dispositivi portatili che integrano una serie di funzionalità avanzate, solitamente la durata della batteria e tante funzionalità concorrenti sono principi che non si sposano bene. Freescale con la famiglia Kinetis fornisce una soluzione a basso consumo di potenza che però si orienta su dispositivi con un core Cortex M4 in grado di garantire prestazioni e funzionalità di tutto rispetto. La serie K si colloca all’interno della famiglia Kinetis come mostrato in Figura 1, le prestazioni in termini di performance sono decisamente superiori rispetto alla Serie L più orientata al replacement delle vecchie soluzioni a 8 e 16 bit.

Figura 1: La famiglia Kinetis e le sue serie

Figura 1: La famiglia Kinetis e le sue serie

LA DIFFERENZA È NELLA MCU

Il Cortex M4 è una delle recenti aggiunte dei prodotti ARM, caratterizzati tutti da set di istruzioni a 32 bit e di tipo RISC. La famiglia Cortex M4 è retro compatibile con la famiglia Cortex M3, con il vantaggio però di poter gestire istruzioni di elaborazioni tipiche del signal processing in un singolo ciclo di esecuzione. Per molte applicazioni, prime su tutte il controllo motore e gli algoritmi audio, questa capacità consente un notevole miglioramento delle prestazioni, quasi fino a 7 volte. In Figura 2 è mostrata la struttura interna del core Cortex M4, caratterizzata da un’unità floating point opzionale e da un set di istruzioni DSP integrate che differenziano il core rispetto all’M3. In Tabella 1 è possibile vedere un confronto sui medesimi algoritmi eseguito su entrambi i core.

Tabella 1: Cortex M4 e M3 a confronto.

Tabella 1: Cortex M4 e M3 a confronto

Le prestazioni sono nettamente a favore del Cortex M4. Il Cortex M4 consente nuove possibilità di progettazione e allo stesso tempo permette un facile trasporto di tutte quelle applicazioni pensate per i Cortex M3 nonché un riutilizzo di tutti i vari tool e ambienti di sviluppo. Per aumentare il range di applicazioni che possono pensare di utilizzare un Cortex M4, si è lavorato sia a livello di MCU che a livello di sistema, riducendo i consumi, sviluppando diversi livelli di low power e scegliendo package anche di dimensione ridotta.

Figura 2: ARM® Cortex™-M4 Processor Microarchitecture.

Figura 2: ARM® Cortex™-M4 Processor Microarchitecture

UNO SGUARDO AI DISPOSITIVI

I vari dispositivi della Serie K sono a loro volta suddivisi in sottofamiglie, quelle più mature sono la K10 e la K20. In Figura 3 si ha una visione globale dei prodotti. La famiglia K10 è la famiglia di entrata, la famiglia K20 ha in più l’integrazione dello stack USB OTG, la K30 ha in più la gestione di un LCD e la K40 ha sia l’USB OTG che la gestione dell’LCD. Per chi necessita di una porta Ethernet allora deve orientarsi sulla famiglia K60, se serve anche gestire un LCD grafico allora il dispositivo giusto è quello di fascia più alta, il K70. Un set di periferiche esteso composto sia da IP analogici che digitali è comune a tutti i dispositivi. I dispositivi delle famiglie K10 e K20 a 50 MHz sono gli entry level, sono caratterizzati da una memoria flash integrata variabile da 32 kb a 128 kb e package da 32 e 64 pin.

Le velocità poi possono salire fino a 120 MHz (150 per le famiglie K60 e K70) e si può arrivare fino a 1 Mbyte di flash integrata. I package possono avere anche dimensioni piccolissime come il 5mm x 5mm in BGA. Tra le periferiche analogiche integrate bisogna sottolineare l’ADC a 16 bit e i comparatori. Il set di interfacce seriali comprende: I2S, I2C, SPI e UART. Per buona parte delle applicazioni sono i dispositivi più indicati, un riassunto delle loro caratteristiche è presentato nella tabella di Figura 4. Interessante anche l’aspetto costi, sul dispositivo di entrata con volumi di 10 kpcs si arriva ad un costo di circa 0.99$.

Figura 3: Portfolio Kinetis.

Figura 3: Portfolio Kinetis

 

Figura 4: Caratteristiche delle famiglie K10 e K20.

Figura 4: Caratteristiche delle famiglie K10 e K20

LOW POWER

I consumi di potenza delle MCU della famiglia Kinetis meritano un discorso approfondito. Oramai tutti i sistemi embedded gestiscono tre modalità operative: run, wait e stop. In tal senso il core Cortex M4 non è da meno definendo tali modalità Run, Sleep e Deep Sleep. In più, Freescale ha aggiunto altre modalità operative, consentendo di arrivare ad 11 diversi livelli di consumo (Figura 5). Con tutte queste modalità operative è facile per un progettista soddisfare i requisiti di consumo per un dispositivo, la modalità più spinta arriva a 40 nA, mentre, anche quando la velocità operativa si alza, il consumo rimane contenuto a 232 uA/MHz. Un aspetto molto importante per tutta la famiglia Kinetis-K è la scalabilità, i dispositivi entry-level K10 e K20 possono essere facilmente intercambiati con i fratelli maggiori grazie ad una compatibilità sia software che hardware.

Figura 5: Power Mode per Kinetis K a 50MHz

Figura 5: Power Mode per Kinetis-K a 50MHz

ECOSISTEMA DI DESIGN UNIFICATO

Kinetis mette a disposizione di tutti gli utilizzatori ARM i vantaggi di quello che viene definito ecosistema ARM. Ossia, tutti quelli che hanno già utilizzato strumenti di sviluppo, compilatori e debugger ARM possono continuare ad utilizzare i loro tool con i quali hanno con il tempo preso familiarità e aggiungere solo il supporto per il Cortex M4. Attualmente Kinetis supporta tutti i principali strumenti di terze parti che supportano i core ARM (Keil, IAR e Green Hills) sia a livello di compilatori, di ambiente IDE e di strumenti di debug. Freescale mette poi a disposizione il suo CodeWarrior Development System, che all’interno ha l’utilità Processor Expert che permette di generare codice per tutti i driver di basso livello della MCU utilizzando un'interfaccia grafica.

Un vantaggio notevole per chi deve scrivere la propria applicazione da zero. Per prodotti della famiglia K20 e per gli altri prodotti con USB, Freescale offre all’interno dell’ecosistema ARM uno stack USB che riduce notevolmente i tempi di sviluppo. Questo stack include anche MQX, un sistema operativo real-time proposto da Freescale. MQX mette a disposizione dei progettisti un sistema operativo modulare con una semplicissima interfaccia e scalabile a seconda delle esigenze. Per chi vuole iniziare a sperimentare con Kinetis, Freescale mette a disposizione il Tower System, una piattaforma modulare che permette di collegare una serie di schede di interfaccia ad una scheda controllore con a bordo la MCU desiderata. A disposizione si trova già la scheda per il Kinetis K20, ossia TWR-K20D50M. Gli sviluppatori possono poi aggiungere alla tower le schede modulo che Freescale e anche le terze parti mettono a disposizione.

ESEMPIO DI APPLICAZIONI

Non c’è niente di meglio che un paio di esempi per capire le potenzialità della famiglia Kinetis di microcontrollori. Una delle applicazioni classiche è il controllo motore, per esempio per l’integrazione in dispositivi portatili, come trapani, avvitatori, seghe, etc. In questo tipo di dispositivi i criteri di progettazione devono considerare il costo, l’efficienza energetica e la capacità di processamento necessaria per pilotare un motore brushless. Un microcontrollore K10 potrebbe essere una scelta che coniuga perfettamente questi aspetti. Oltre ai blocchi DSP, la famiglia K10 ha a disposizione dei moduli PWM, un amplificatore a guadagno programmabile (PGA) e un ADC a 16 bit ideali per realizzare un controllo motore. In precedenza abbiamo visto come le trasformate di Clarke e di Park per il controllo motore avvengano in un Cortex-M4 ad una velocità sette volte superiore rispetto ad un M3, perciò i requisiti di potenza di elaborazione sono pienamente soddisfatti. Una soluzione con il K10 grazie alle sue periferiche integrate, consente di rispettare i criteri progettuali in termini di costo ed efficienza energetica. In Figura 6 è schematizzata l’applicazione di un controllo motore BLDC, con tutti i componenti esterni necessari.

Figura 6: Kinetis K10 utilizzato per controllare un motore trifase BLDC.

Figura 6: Kinetis K10 utilizzato per controllare un motore trifase BLDC

Un’altra applicazione esempio potrebbe essere realizzare un sensore di flusso per liquidi di tipo wireless. Anche in questo caso il basso consumo è un vincolo di design, questo tipo di sensori utilizza batterie che devono essere in grado di durare parecchi anni prima di essere sostituite. Anche in questo caso il K10 rappresenta una soluzione ideale. Le 11 differenti modalità di assorbimento possono portare la corrente assorbita fino a 40 nA, prolungando enormemente la vita delle batterie. Solitamente i sensori wireless devono collegarsi ad un qualsiasi tipo di transceiver per scambiare i dati, per esempio ZigBee oppure IEEE 802.15.4 che hanno una porta SPI o I2C o UART per raccogliere i dati dal sensore. Tutte interfacce supportate dalla famiglia Kinetis. In aggiunta esiste la possibilità di avere i processori in package di 5x5mm o 7x7mm, ideali per essere integrati in sensori intelligenti. Questa applicazione è schematizzata in Figura 7, a corredo del K10 troviamo un accelerometro digitale e un transceiver a 2.4 GHz e un power manager esterno.

Figura 7: Kinetis K10 utilizzato sensore di flusso wireless per l’acqua

Figura 7: Kinetis K10 utilizzato nel sensore di flusso wireless per l’acqua

Infine, l’ultimo esempio potrebbe essere un classico dispositivo USB portatile per la registrazione e riproduzione audio. Anche in questo caso bisogna considerare che l’utilizzo di microfoni analogici comporta una fase di tuning delle impostazioni di filtraggio per ottimizzare la resa vocale e “pulirla” dai fattori esterni. Un Kinetis K20 dotato di interfaccia USB aiuta a risolvere questi problemi utilizzando dei filtri software implementati con le funzionalità DSP di cui è equipaggiato. Anche in questo caso il package ridotto potrebbe costituire un vantaggio notevole per le dimensioni finali del prodotto. Lo schema applicativo di un prodotto di questo tipo è mostrato in Figura 8.

Figura 8: Kinetis K20 utilizzato per un dispositivo audio portatile USB.

Figura 8: Kinetis K20 utilizzato per un dispositivo audio portatile USB

CONCLUSIONI

La famiglia Kinetis apre nuove e invitanti opportunità per i progettisti, orientandosi ad un mercato dedicato a dispositivi attenti al consumo di potenza (applicazioni a batteria) e in grado di eseguire elaborazioni tipiche di un DSP. Utilizzare un dispositivo Kinetis in applicazioni che si identificano in questa fascia, sicuramente è un primo passo per la sicura riuscita del progetto. In più l’architettura Cortex-M4 si sta rapidamente diffondendo e sta dimostrando la propria bontà. Freescale, in aggiunta, tramite programmi di longevity sul componente, garantisce la fornitura minima del prodotto per almeno 10 anni, consentendo di dimenticare i problemi di obsolescenza sul design realizzato.

Scarica subito una copia gratis

2 Commenti

  1. isacco99 29 Dicembre 2020
  2. Giordana Francesca Brescia 29 Dicembre 2020

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend