Nuovo appuntamento con la rubrica Firmware Reload di Elettronica Open Source. L’ultima evoluzione dei microcontrollori Renesas di fascia media, per applicazioni embedded, ha portato allo sviluppo della famiglia a 32 bit CISC RX600 che incontra le sempre più spinte esigenze di mercato in diversi campi di applicazione (general purpose, connectivity, motor control) mantenendo continuità con i precedenti chip e garantendo evoluzione di prestazioni e funzionalità.
Introduzione
L’ultima evoluzione dei microcontrollori Renesas di fascia media per applicazioni embedded ha portato allo sviluppo della famiglia RX (Renesas eXtreme) che incontra le sempre più spinte esigenze di mercato in tutti i pregressi campi di impiego (general purpose, connectivity, motor control) mantenendo da un lato la continuità con i precedenti chip e consentendo dall’altro evoluzione di prestazioni e funzionalità. Per creare questa nuova generazione di controller sono stati integrati una architettura Harvard, una pipeline a 5 stadi ed un set di istruzioni a lunghezza variabile. La nuova serie RX600 incontra le moderne esigenze di molti sistemi di controllo embedded rendendo disponibili MCU ideali per controllo e processing high-speed e high-efficiency. Ampia capacità di memoria, risorse hardware quali Timer, A/D converter e potenti interfacce di comunicazione con il mondo esterno sono alcune delle loro caratteristiche più importanti. Gli RX600 sono, in sostanza, una nuova famiglia di microcontrollori a 32 bit CISC di Renesas che si colloca a metà tra quelli della famiglia R8C, rivolti prevalentemente al mercato di fascia bassa, tipico degli 8 bit, e quelli della famiglia SH (SuperH) di fascia massima rivolta tipicamente al mercato delle applicazioni embedded a 32 bit spinte, generalmente basate su sistema operativo (Figura 1).
Da un punto di vista commerciale coprono, pertanto, la fascia tradizionalmente occupata dai componenti delle famiglie M16C e H8. Come previsto dal piano di sviluppo di Renesas, i controllori delle famiglie H8S ed M16C possono quindi oggi essere affiancati o sostituiti da quelli della nuova serie RX. I miglioramenti prestazionali, rispetto alle famiglie della stessa fascia che li hanno preceduti, consentono maggiore frequenza di lavoro e maggiore capacità di calcolo a parità di clock, il tutto con minore consumo di potenza. Come i componenti della famiglia M16C, i nuovi componenti RX si rivelano adeguati a moltissime applicazioni embedded sia industriali che consumer. Tra le caratteristiche principali dei componenti della famiglia RX600 vi sono il CISC (Complex Instruction Set Computer) e le istruzioni a lunghezza variabile, accorgimento che consente di migliorare le prestazioni della memoria di programma.
Con la famiglia RX si coniugano aspetti della famiglia MC16 con aspetti della famiglia H8S/H8SX, si potenziano le prestazioni della memoria flash on-chip, si aumenta l’efficienza del codice, si diminuiscono i consumi di potenza e si aumentano le prestazioni in termini sia di frequenza che di MIPS rispetto ai precedenti microcontrollori Renesas della stessa fascia. La disponibilità di registri a 32 bit e di istruzioni in grado di sfruttarli, completa le caratteristiche più importanti di questa famiglia di controllori. Mantenendo la continuità con le famiglie H8S, H8SX, M16C ed R32C, le nuove MCU della serie RX coprono quindi efficacemente il mercato delle MCU embedded per applicazioni sviluppate tradizionalmente con chip ad 8-bit, 16-bit e 32-bit. Da ciò deriva la nascita di tre principali gruppi di MCU appartenenti alla famiglia RX, ciascuno dei quali destinato a ricoprire preferenzialmente una diversa area applicativa (Figura 2):
- RX610 group (general purpose);
- RX62N e 621 group (connectivity);
- RX62T group (motor control).
CPU RX600
Le CPU RX600 basate su Core a 32 bit, architettura Harvard migliorata con pipeline a cinque stadi, consente un significativo aumento della velocità di esecuzione delle istruzioni. L’esecuzione in parallelo della fase di instruction-fetch e dell’accesso alla memoria dati consente di migliorare le performance stesse della pipeline. La velocità di accesso, fino a 100 MHz senza cicli di attesa, consente di risparmiare tempo, di ridurre il consumo di potenza come una CPU sarebbe normalmente in grado di fare solo a frequenze più contenute. La FPU (Floating Point Unit), preposta ai calcoli floating-point, è strettamente integrata nel core delle CPU RX e ne impiega i registri principali. Le operazioni memory-to-memory multiply-accumulate and register-to-register multiply-accumulate e gli interrupt high-speed migliorano sensibilmente le performance rispetto agli analoghi precedenti dispositivi H8S, H8SX, M16C ed R32C garantendo elevata velocità ed elevata precisione.
La serie RX600 comprende numerosi modelli per ciascuno dei gruppi RX/610, RX/62N/62 ed RX/62T che si differenziano per il valore della Flash Memory Embedded (da 32k Flash con 16kB RAM fino a 2MB di Flash con 128kB RAM), per il package utilizzato (da 32pin a 176pin) e per il numero ed il tipo di risorse fisiche disponibili (ADC, DAC, Timer, periferiche di comunicazione) che rendono queste MCU adatte ad un ampio campo di applicazioni in una perfetta logica di scalabilità e compatibilità. Il consumo di potenza è significativamente ridotto rispetto agli analoghi chip predecessori. La Data Flash Memory è distinta dalla Flash Memory di programma. Tool di sviluppo ed in-circuit debugger, C/C++ compiler e real-time OS supportano lo sviluppo con questa nuova famiglia di dispositivi esattamente come avveniva per i modelli delle famiglie precedenti. In Figura 3 è riassunta a blocchi l’architettura fisica dei controllori dei tre gruppi.
RX610
Questo gruppo di controllori della famiglia RX600 comprende diversi modelli high-speed (100MHz) ad elevate prestazioni (1.65 MIPS/MHz) e bassi consumi (1.65 MIPS/MHz) integranti, ciascuno, una CPU 100 MHz@ 3.0-3.6V, memoria Flash e RAM di diversa taglia (768 kB Flash/128 kB RAM, 1 MB Flash/128 kB RAM, 1,5 MB Flash/128 kB RAM, 2 MB Flash/128 kB RAM), una FPU, diversi ADC e DAC a 10 bit oltre a numerosi Timer a 16 bit (TPU-timer general purpose ad alte prestazioni e CMT Timer ottimizzati per applicazioni OS) e ad 8 bit di tipo general purpose (TMR), diverse porte di comunicazione (6 porte SCI sincrone/asincrone e due porte I2C) e on-chip debug emulator. A seconda dei modelli è possibile avere package LQFP144 e BGA176-pin.
RX621 & RX62N
L’RX621 & RX62N costituiscono un gruppo ancor più numeroso di modelli high-speed (100 MHz) ad elevate prestazioni (1.65 MIPS/MHz) e bassi consumi di potenza (low-current 50 mA@100 MHz). Flash memory e RAM nei tagli 256 kB Flash/64 kB RAM, 384 kB Flash/64kB RAM e 512 kB Flash/96 kB RAM equipaggiano i diversi modelli disponibili. Porte di comunicazione USB, CAN ed Ethernet 10/100Mbit/s (gruppo RX62N) oltre a sei SCI per comunicazione sincrona/ asincrona, due I2C (1 Mbps), una RSPI conferiscono a questo gruppo di dispositivi peculiarità di connettività ampie e performanti. Numerosi ADC sia a 10 bit che a 12 bit e due canali DAC a dieci bit rendono questi dispositivi adatti anche al processamento digitale di segnali analogici. I dispositivi di questo gruppo dispongono di risorse Timer ancora più ampie rispetto alla categoria RX610. In particolare, sono disponibili Timer a 16 bit (CMT) e ad 8 bit (TMR) e Timer a 16 bit MTU2 (Motor control). I diversi modelli sono disponibili in package di diverso tipo che vanno da 85 a 176 pin (LGA85, LQFP100, LQFP144, LGA145, BGA176- pin). La possibilità di pilotare direttamente un TFT-LCD e funzioni ulteriori (RTC, POR-Power On Reset, LVD-Low Voltage Detection, WDT, MPU) on-chip completano le caratteristiche di questo gruppo di dispositivi RX.
RX62T
Anche questo gruppo di dispositivi high-speed (100 MHz), ad alte prestazioni (1.65 MIPS/MHz) e bassi consumi di potenza (low-current 50mA@100 MHz) è disponibile in modelli con Flash Memory e RAM di diverso taglio. Sono infatti disponibili le seguenti combinazioni Flash/RAM: 64 kB Flash/8 kB RAM, 128 kB Flash/8 kB RAM e 256 kB Flash/16 kB RAM. Anche in questo caso sono disponibili numerose risorse in termini di ADC sia a 12 bit, con amplificatori programmabili, che possono agire sul segnale acquisito in ingresso e comparatori che consentono di limitare al minimo l’elettronica esterna, che a 10 bit per 20 canali complessivi. Il comparatore prevede sia diversi riferimenti di tensione interni che la possibilità di impiegare un riferimento esterno. I diversi modelli sono disponibili sia nella versione con alimentazione 3,3 V che nella versione con alimentazione 5,0 V; in ogni caso si tratta di dispositivi che rispettano tra loro compatibilità pin to pin. I diversi modelli presentano package che vanno da 64pin a 112pin (LQFP64, LQFP80, LQFP100, LQFP112).
L’ampia gamma di Timer integrati on-chip (MTU3-high performance motor timer, GPT, CMT e TMR), funzioni ulteriori (POE, POR-Power On Reset, LVD-Low Voltage Detection, WDT) e on-chip emulator completano le caratteristiche di questo gruppo di dispositivi RX. Ottima la gamma di periferiche di interfaccia: 3 SCI-Canceling Serial Interface (sincrono/asincrono) e una I2C. Questo e le funzionalità PWM (Pulse-Width Modulation) completano l’architettura di questi microcontrollori. Le disponibilità hardware del chip rendono generalmente non necessario l’impiego di EEPROM esterne per la memorizzazione dei parametri di processo da gestire, contribuendo a ridurre le dimensioni fisiche ed il costo dell’applicazione. Le risorse integrate rendono queste MCU particolarmente adatte alle applicazioni motor control (lavatrici, frigoriferi, sistemi di condizionamento e applicazioni similari), controllo inverter, controllo accessi e molte altre applicazioni di controllo dei processi che richiedono oggi sempre maggiori integrazioni on-chip con sempre maggiori funzionalità ed affidabilità.