
Texas Instruments ha lanciato un microcontrollore con funzionalità aritmetiche in virgola mobile in grado di operare in condizioni di temperatura estreme (da -55°C a +210°C), il primo in grado di superare il limite tradizionale di +150°C tipico dei dispositivi a semiconduttore per elevate temperature.
Il microcontrollore SM320F28335-HT "Delfino" è un MCU a 32 bit particolarmente indicata per applicazioni di controllo e misura real-time in ambienti ostili ad alte temperature, e caratterizzate da elevate prestazioni ed elevata affidabilità. Tra queste applicazioni rientrano i pozzi petroliferi, i motori a turbina per aeroplani, il controllo dei motori in generale, applicazioni di vario tipo in ambito militare, strumenti medicali e chirurgici che richiedono una sterilizzazione.
Tra le principali caratteristiche hardware di questo interessante controllore vanno menzionate la presenza di un'unità in virgola mobile a 32 bit ed una CPU a 100 Mhz in grado di fornire prestazioni 6 volte superiori a quelle delle attuali soluzioni per applicazioni ad alta temperatura. Il dispositivo dispone inoltre di 512 Kb di memoria flash, 68 Kb di RAM, 6 uscite PWM ad alta risoluzione, un convertitore analogico-digitale veloce a 16 canali con risoluzione su 12 bit, ed alte periferiche particolarmente adatte ai sistemi di controllo e misura. L'MCU è basata sulla piattaforma TMS320C2000 di TI ed è disponibile in un package PGA ceramico a 181 pin testato e qualificato Known Good Die (KGD). L'immagine seguente mostra l'aspetto esteriore del microcontrollore Delfino (la sigla HT indica proprio High Temperature).
Il kit di sviluppo TMS320F28335, basato sulla versione di MCU Delfino F28335 (nell'immagine sotto) è già ora disponibile ad un prezzo inferiore a 100$.
Delfino - C28x CPU
Il microcontrollore Delfino è di fatto un DSC, cioè un Digital Signal Controller, con la stessa architettura a 32-bit dei dispositivi della serie C28x, a cui si aggiunge una Floating Point Unit (FPU) a 32-bit in singola precisione compatible IEEE-754. La CPU dispone di funzionalità MAC a 64-bit (32x32) che consente al processore di gestire efficientemente anche i problemi matematici di complessità elevata. Ricordiamo che il MAC (Multiply And Accumulate) è una tecnica hardware largamente utilizzata su processori per elaborazioni intense a livello di segnale (come ad esempio i DSP).
Viene inoltre eseguito automaticamente il salvataggio dei registri critici sulla risposta agli interrupt, permettendo al dispositivi di gestire molti eventi asincroni con una latenza minima. E' poi presente una pipeline protetta con 8 livelli di profondità in grado di eseguire accessi alla memoria ad elevata velocità, ed istruzioni hardware specializzate per l'esecuzione di branch-look-ahead.
Delfino - Il bus
Come avviene in molti DSC, anche in questo caso vengono utilizzati diversi bus per trasferire i dati tra la memoria, le periferiche, e la CPU (architettura Harvard Bus). L'architettura del C28X comprende i seguenti bus:
- un program read bus con 22 linee di indirizzamento e 32 linee dati
- un data read bus e un data write bus, entrambi con 32 linee di indirizzamento e 32 linee dati ciascuno. I bus con 32 linee permettono di eseguire operazioni a 32 bit in un singolo ciclo.
L'architettura a bus multipli consente al C28x di eseguire il fetch di un'istruzione, leggere un dato dalla memoria, scrivere un dato in memoria, in un singolo ciclo di clock.
Delfino - Peripheral Bus
Per consentire la migrazione tra i diversi dispositivi della famiglia DSC, viene adottato un peripheral bus di tipo standard, il quale multiplexa i vari bus in un unico bus composto da 16 linee indirizzi e 16 o 32 linee dati con segnali di controllo associati. Sono in pratica disponibili 3 versioni di peripheral bus:
- peripheral frame 2 - supporta solo gli accessi a 16-bit
- peripheral frame 1 - supporta sia gli accessi a 16-bit che quelli a 32-bit
- peripheral frame 3 - supporta accessi con DMA sia a 16-bit che a 32-bit
Delfino - Real-Time JTAG
L'F28335 è dotato di interfaccia JTAG conforme allo standard IEEE 1149.1. Inoltre, viene supportato il modo operativo real-time, con il quale il contenuto della memoria, dei registri e delle periferiche può essere modificato mentre il processore sta eseguendo il codice, compresa la gestione degli interrupt. L'operatore può anche eseguire blocchi di codice non critici in modalità single step. Queste funzionalità sono implememntate a livello hardware direttamente nella CPU dell'F28335.
Delfino - la flash
E' disponibile una flash integrata da 256K x 16 bit, suddivisa in 8 settori da 32K x 16 bit, oltre ad un singolo settore di tipo OTP (one Time Programmable) agli indirizzi 0x380400 – 0x3807FF. L'operatore può cancellare, programmare, e validare singolarmente ciascun settore di flash lasciando inaleterati gli altri settori, ma non è possibile utilizzare un settore di flash o il settore OTP per eseguire degli algoritmi che cancellano/programmano altri settori. Il segmento di flash OTP è mappato ad uno spazio di indirizzamento valido sia per i dati che per le istruzioni, pertanto può essere impiegato per contenere del codice oppure dei dati.
Delfino - la RAM
L'F28335 contiene due blocchi di SRAM, M0 ed M1, ciascuno con dimensione pari a 1K x 16 bit, e lo stack pointer, al reset, punta all'inizio del blocco M1. Entrambi i blocchi sono mmappati agli spazi di indirizzamento dati e programma, per cui possono essere utilizzati per contenere codice o dati. E' inoltre presente una RAM da 32K x 16 bit, suddivisa in 8 blocchi (L0..L7) da 4K ciascuno, mappato sia sullo spazio di indirizzamento dei dati che sullo quello del codice.
Delfino - la boot ROM
La boot ROM è programmata in fabbrica con un software boot-loader. Durante il power-up del microcontrollore, vengono utilizzati degli appositi segnali per specificare quale tipo di modalità di boot-loader utilizzare: si può eseguire il boot normalmente, oppure downloadare un nuovo software da una connessione esterna (SPI, SCI, I2C, eCAN, ecc.), oppure ancora selezionare il software di boot presente all'interno della memoria ROM (flash). La boot ROM contiene anche delle apposite tabelle da utilizzare per eseguire algoritmi matematici (ad esempio per le funzioni SIN e COS).
Delfino - la sicurezza
Il dispositivo supporta livelli elevati di sicurezza per proteggere il software utente da operazioni di reverse engineering. In pratica viene utilizzata una password a 128-bit che l'utente programma all'interno della flash. Un apposito modulo di protezione previene l'utilizzo non autorizzato (accesso tramite porta JTAG, tentativi di boot-loading di codice indesiderato, esecuzione di codice dalla memoria esterna).
Per abilitare gli accessi occorre infatti fornire la stessa password a 128-bit memorizzata in flash. Oltre al modulo CSM, è stata implementata una logica ECSL (Emulation Code Security Logic) per prevenire che un utente non autorizzato possa eseguire il codice di sicurezza in modalità step-by-step (se si cerca di farlo senza aver preceentemente inserito la password, il micro interromperà la connessione e quindi la sessione di emulazione).
Delfino - modalità low-power
Il microcontrollore è realizzato in tecnologia CMOS full static, e sono disponibili tre diverse modalità di funzionameno a basso assorbimento:
- IDLE: pone la CPU in modalità low-power. I clock delle periferiche possono essere disabilitati selettivamente e solo le periferiche che richiedono di funzionare in modalità IDLE vengono lasciate operative. L'uscita dallo stato IDLE può avvenire tramite un interrupt generato da una periferica attiva, oppure dal watch-dog timer
- STANDBY: viene disabilitato il clock della CPU e delle periferiche, ma viene lasciato attivo l'oscillatore ed il PLL. L'uscita dallo stato avviene con l'arrivo di un interrupt esterno
- HALT: viene disattivato l'oscillatore interno, ed il dispositivo entra nello stato ad assorbimento minimo. L'uscita dallo stato avviene tramite reset o tramite un segnale fornito dall'esterno
Delfino - CPU-Timer a 32-bit
I CPU-Timer 0, 1, e 2 sono timer a 32-bit con preset del periodo e prescaler a 16-bit. I timer sono dotati di un registro count-down a 32-bit, il quale genera un interrupt quando il counter arriva a zero. Il counter viene decrementato ad una frequenza pari al clock della CPU diviso per il valore del prescaler. Quando il counter arriva a zero, viene automaticamente ricaricato con un valore a 32-bit. Il CPU-Timer 2 è inoltre riservato per applicazioni Real-Time OS (RTOS) o BIOS, ed è connesso al segnale INT14 della CPU. Se questa funzionalità non viene utilizzata, il CPU-Timer 2 rimane disponibile per altri usi. Il CPU-Timer 1 è invece un timer per usi generici e può essere connesso al segnale INT13 della CPU. Anche il CPU-Timer 0 è per impieghi generici, ed è connesso al blocco PIE.
Delfino - periferiche di controllo
Numerose sono le periferiche supportate:
- ePWM: è un enhanced PWM che supporta la generazione di PWM independente/complementare
- eCAP: è una periferica di enhanced capture, che utilizza una base tempi a 32-bit e può programmare fino a 4 eventi per la cattura in modalità continua/one-shot
- eQEP: è una periferica di enhanced QEP (Quadrature Encoder Pulse)per il controllo dei motori
- ADC: è un convertitore single-ended a 16 canali con risoluzione di 12-bit. Contiene due unità sample-and-hold in grado di eseguire il campionamento simultaneamente
Delfino - periferiche seriali
Sono supportate le seguenti periferiche di comunicazione seriale:
- eCAN: interfaccia CAN conforme allo standard CAN 2.0B, con supporto per 32 mailbox e time stamp dei messaggi
- McBSP: multichannel buffered serial port (McBSP) permette la connessione alle linee E1/T1
- SPI
- SCI (UART)
- I2C
Proponiamo infine questo video introduttivo sulle principali caratteristiche di questo DSC di TI:
SM320F28335-HT Delfino è disponibile da Farnell


Non conoscevo questa famigli di microcontrollori, anche perchè non sono poi così nell’ambito di questi dispositivi programmabili, però da quello che vedo sono MCU di alte prestazioni, utili per applicazioni industriali dove le temperature di lavoro arrivano fin sopra i 180° e qui leggo che ci si riesce a spingere anche sui 210à…notevole. L’architettura a 32bit permette di installare con molta flessibilità un RTOS e i bus di supporto confermano l’ambito di applicazione di tipo industriale.
Davvero un articolo professionale e sicuramente capace di soddisfare i requisiti di applicazioni mission critical. Ho visto di recente tutti i pregi che porta con sé un Digital Signal Controller, cioè la flessibilità di un microcontrollore con aggiunte molte delle caratteristiche di un DSP. Questa strada è stata intrapresa anche da ARM con i suoi cortex M4. Davvero notevole è la fornitura di connettività, davvero eccellente. La capacità di lavorare ad alte temperature, abbinata alla capacità di gestire segnali veloci è sicuramente indicata in applicazioni come ad esempio il controllo di motori, dove finora i DSP hanno avuto un ruolo centrale. Attualmente però si sta cercando da quanto ho capito di spostarsi verso una soluzione ibrida come questa per avere dei sistemi facili da programmare e con eccellenti capacità di calcolo in virgola mobile e presenza di istruzioni SIMD che velocizzano tantissimo le operazioni. Ovviamente questi sono microntrollori a 32 bit, e dispongono anche di una discreta quantità di memoria RAM
Ho visto microcontrollori per applicazioni automotive caratterizzati automotive per lavorare fino a 150 °C. I maggiori problemi vengono sempre dalle memorie flash o eeprom, ma anche la tecnologia deve essere affidabile. Non so se i cortex M4 siano disegnati per non avere path critici in tecnologie penso a 90 nm o 32 nm per andare a 100 MHz oltre 200 °C. Solo core e architetture dedicate possono garantire queste prestazioni in frequenza e temperatura.
100 dollari per il kit di sviluppo mi sembrano un buon investimento, sicuramente chi progetta controllo- motori se lo puo’ permettere, il range di temperature è davvero molto interessante lo considererei ultra esteso.