I microcontrollori Kinetis K60

Questo articolo della Rubrica Firmware Reload tratta in dettaglio la serie K60 di microcontrollori della famiglia Kinetis proposta da Freescale. Si tratta di microcontrollori a 32 bit che integrano un core Cortex M4 di ARM, dotati di un set di periferiche di tutto rispetto, che permettono di collocare queste MCU in una fascia tra le più versatili del mercato.

Introduzione

La serie K6x di microcontrollori della famiglia Kinetis fa parte di un insieme di più di 400 microcontrollori, tutti a 32 bit e con core Cortex M4 di ARM, denominati appunto Kinetis K, caratterizzati da alte prestazioni e bassissimi consumi. Il target ideale per questi microcontrollori sono ovviamente i dispositivi portatili complessi, caratterizzati da un set avanzato di funzioni ma attenti ai consumi. La famiglia Kinetis K è costituita da più serie: K1x, K2x, K3x, K4x, K5x, K6x e K7x. Con l’aumentare dell’indice della famiglia, le prestazioni, le funzionalità e il set di periferiche crescono, come mostrato in Figura 1.

Figura 1: La famiglia Kinetis e le sue serie

Figura 1: La famiglia Kinetis e le sue serie

La serie K10, detta anche serie base, è l’origine di partenza per le altre serie, la K20 integra le funzionalità USB e la K30 la possibilità di gestire un display LCD a segmenti. La serie K40 è il condensato delle precedenti serie, la serie 50 è dedicata ad applicazioni di misura, la serie 60 integra la comunicazione ethernet, mentre la serie 70 è orientata ad applicazioni dove è necessario gestire un display LCD grafico. Il beneficio della famiglia Kinetis K è la scalabilità, una applicazione scritta per un microcontrollore K10 può tranquillamente essere trasportata su un K60 e viceversa, ovviamente se le risorse coinvolte risultano disponibili. Con l’aumentare dell’indice della serie, anche la disponibilità di memoria integrata e le frequenze del core aumentano, permettendo di raggiungere prestazioni di tutto rispetto. Tutti i microcontrollori sono realizzati in tecnica a 90nm TFS (Thin-Film Storage technology) con la caratteristica Flex-Memory che consente di integrare all’interno anche una memoria EEPROM, minimizza i consumi e permette l’integrazione di periferiche analogiche a segnali misti.

KINETIS K60

La serie K60 è una delle serie di fascia più alta all’interno della famiglia Kinetis K. Le caratteristiche salienti sono la presenza di una interfaccia Ethernet IEEE ® 1588, di una USB 2.0 On-the-go con livello fisico integrato e in grado di individuare la funzionalità “caricabatterie”. In più, per diventare appetibile anche per applicazioni di sicurezza, la serie K60 integra un codificatore hardware e un controllo anti manomissione. A livello di memoria si parte dal 256 kb di flash per il modello in contenitore LQFP a 100pin, fino ad 1 MB per il modello in BGA a 256 pin. Per tutti i membri della serie K60 è integrata un’unità in virgola mobile a singola precisione, un controllore per flash NAND e un controllore DRAM. In Figura 2 è possibile vedere il set completo di caratteristiche e periferiche disponibili per la famiglia K60.

Figura 2: La famiglia Kinetis K6x.

Figura 2: La famiglia Kinetis K6x

Come detto in precedenza, il core è un ARM Cortex M4, in grado di supportare istruzioni DSP e con la possibilità di utilizzare una unità a virgola mobile a singola precisione. La frequenza del nucleo può arrivare fino a 150 MHz. A corredo, si hanno 32 canali DMA, 16 kb di memoria cache e un sistema di interconnessioni a matrice (cross-bar switch) tra le periferiche. Il tutto permette che periferiche e memorie siano servite con un bassissimo carico da parte della CPU, banda di comunicazione elevata e comunicazione multi master. La presenza dell’ethernet permette, oltre alla comunicazione efficiente, anche la possibilità di implementare reti di controllo e di automazione industriale. La presenza dell’USB, con la funzione di rilevamento della funzionalità caricabatteria, permette di realizzare dispositivi portatili in maniera semplificata. La presenza di un codificatore hardware può aumentare la sicurezza dei dati trasferiti e memorizzati senza necessità di appesantire la CPU e senza l’esigenza di scrivere del codice dedicato.

Gli algoritmi supportati sono molteplici tra cui: DES, 3DES, AES, MD5, SHA-1 e SHA-256. Eventuali tentativi di corrompere la flash interna, così come la modifica della frequenza di clock e delle tensioni operative sono individuati da una specifica funzionalità antimanomissione. La presenza delle periferiche FlexBus external bus interface, Secure digital host controller, NAND flash controller e DRAM controller (anche se le ultime due sono opzionali) permette di collegare esternamente qualsiasi tipo di memoria, l’utilizzo di schede di memoria, l’implementazione di file system e la realizzazione di interfacce Wi-Fi e Bluetooth. La connessione di NAND flash a 32 bit di tipo ECC viene attenuta con un minimo overhead software, inoltre risulta fattibile la connessione di memorie DDR o DDR2. Per alcuni part number specifici della serie K60 esiste poi la possibilità di avere un contenitore piccolissimo, grazie alla tecnica “Wafer-level chip scale package” e quindi di integrare in 5x5 mm (oppure 6x6 mm) tutta la potenza di un microcontrollore K60. In Figura 3 sono mostrati i vari numeri di catalogo della famiglia K60 con le differenze a livello di dotazioni e contenitore.

Figura 3: I microcontrollori della serie K6x.

Figura 3: I microcontrollori della serie K6x

SISTEMI DI SVILUPPO

Sviluppare con la serie di microcontrollori K60 permette di utilizzare quanto disponibile per il cosiddetto 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 via via acquisito dimestichezza, solamente aggiungendo ai loro strumenti il supporto per il core Cortex M4. Le terze parti più note (Keil, IAR e Green Hills) mettono a disposizione i loro tool e garantiscono un pieno supporto per compilatori, ambiente di sviluppo IDE e strumenti di debug. Ovviamente, la stessa Freescale mette a disposizione degli sviluppatori il proprio ambiente di sviluppo, il CodeWarrior, arrivato alla versione 10, e l’utilissimo Processor Expert, in grado di generare buona parte del codice per le funzionalità standard, effettuare il mapping dei pin e l’impostazione dei registri principali, partendo da un ambiente grafico (vedi Figura 4).

Figura 4: Schermata del Processor Expert di Freescale.

Figura 4: Schermata del Processor Expert di Freescale

A livello software e di sistemi operativi la disponibilità è ampiamente in buona parte fornita gratuitamente da Freescale:

  • Runtime software and RTOS Math, DSP and encryption libraries
  • Motor control libraries
  • Complimentary bootloaders(e.g., USB, Ethernet, RF, serial)
  • Complimentary Freescale embedded GUI
  • Complimentary Freescale MQX™ RTOS
  • Cost-effective NanoSSL™/NanoSSH™ for Freescale MQX RTOS
  • Micrium C/OS-III
  • Express Logic ThreadX
  • SEGGER embOS
  • freeRTOS
  • Mocana (security)

Per chi desidera sperimentare subito con la famiglia K60, il modo più veloce è dotarsi della “Kinetis K60 Tower System Module”, mostrata in Figura 5.

Figura 5: TWR-K60N512-KIT.

Figura 5: TWR-K60N512-KIT

Il microcontrollore montato sulla scheda è il K60N512VMD100 a 144 pin, su questa vi è di tutto un pò: aree capacitive, JTAG, Slot per SD card, un accelerometro a 3 assi, potenziometri, LED, porta a infrarossi, pulsanti, etc., in più l’unità tower consente la connettività per le interfacce disponibili: USB, Ethernet, RS232/RS485, CAN, SPI, I²C, Flexbus. Per chi necessitasse di un sistema operativo per questa scheda, all’interno dei tool della IAR è presente un plug-in di FreeRTOS liberamente utilizzabile.

ESEMPI APPLICATIVI

Come detto in precedenza, le applicazioni ideali per questo tipo di microcontrollore sono i dispositivi portatili evoluti dal punto di vista delle funzionalità. Un classico esempio da questo punto di vista sono i dispositivi portatili in ambito medico, come gli elettrocardiografi. Gli ECG sono dispositivi salvavita utili per identificare le condizioni cardiache dei pazienti e monitorarne lo stato. Il “vettore elettrico cardiaco” viene generato nel ventricolo destro del cuore e trasmesso all’intero muscolo cardiaco. Uno schema a blocchi generico per questo tipo di applicazione è riportato in Figura 5. Da quest’ultima si può capire come un microcontrollore K60 sia in grado di gestire pienamente e in maniera efficace le connessioni e le funzionalità richieste da questo tipo di dispositivo.

Un altro esempio di un dispositivo portatile per il quale il K60 potrebbe rappresentare un’ottima soluzione è un sistema di teleallarme. In molti casi si preferisce avere un dispositivo in grado di monitorare i principali segnali vitali dei pazienti mentre questi si trovano nella proprie abitazioni, piuttosto che caricare le strutture recettive degli ospedali con individui affetti da patologie non estremamente gravi. Per questo motivo i dispositivi di teleallarme stanno prendendo sempre più piede, il loro compito è di collegarsi ai dispositivi medici portatili dedicati a specifiche funzioni come per esempio la misurazione della pressione sanguigna, il battito cardiaco, la temperatura corporea, etc. Le informazioni vengono inviate ad un collettore di dati attraverso interfacce USB, Bluetooth o ZigBee, le condizioni del paziente sono analizzate ad intervalli periodici e in caso di necessità viene richiesto l’intervento attraverso un collegamento di rete basato su Ethernet o Wi-Fi. Lo schema a blocchi di questa applicazione lo si può vedere in Figura 6. Analizzando lo schema si vede come un microcontrollore K60 sia in grado di gestire efficacemente tutte le connessioni rappresentate per la MCU.

Figura 6: Schema a blocchi per un ECG portatile.

Figura 6: Schema a blocchi per un ECG portatile

 

Figura 7: Schema a blocchi per un dispositivo di teleallarme.

Figura 7: Schema a blocchi per un dispositivo di teleallarme

CONCLUSIONI

Seppure la famiglia Kinetis K sia orientata ad applicazioni di fascia medio-bassa, utilizzare un microcontrollore della serie K60 mette a disposizione un set notevole di strumenti, in passato presenti su microcontrollori orientati ad applicazioni molto più spinte. Questo non solo mette la serie K60 in una posizione privilegiata per nuove applicazioni, ma la rende anche una ottima soluzione per la sostituzione di architetture obsolete, per le quali in molti casi si può ridurre il BOM e il costo complessivo.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend