
S12MagniV è la nuova famiglia Freescale di microcontrollori a segnali misti con funzionalità integrate di connettività su bus LIN, particolarmente indicata per applicazioni di controllo motori e relè.
S12VR - overview
S12VR rappresenta la prima serie di dispositivi basata sulla tecnologia di processo LL18UHV, in grado di combinare sullo stesso strato di silicio l'elevata affidabilità del processo a 180nm per la realizzazione di memorie non-volatili (NVM) con l'integrazione di componenti logici ed analogici per alte tensioni. Questi componenti analogici includono un regolatore di tensione per impieghi automotive, un layer fisico LIN, driver low-side e high-side, e vari tipi di ingressi. Il princiaple vantaggio offerto dalla tecnologia LL18UHV è quello di consentire ai progettisti di collegare direttamente alla MCU le sorgenti di alimentazione e segnali con tensioni elevate. I dispositivi della serie, progettati espressamente per operare con la tensione di 12V fornita dalle batterie, sono infatti in grado di sopportare anche le condizioni più sfarevoli che si possono presentare negli impieghi automotive, con tensioni di picco che possono raggiungere anche i 40V. Le componenti di alta tensione sono integrate con la CPU a 16-bit S12, un prodotto maturo ed affidabile, e con blocchi di memoria flash protetta tramite ECC e memoria EEPROM. La famiglia di MCU S12VR è pienamente compatibile con la serie S12G, e questa compatibilità si estende anche alle periferiche digitali come i moduli seriali SPI e SCI, il PWM, ed i timer. Sono inoltre presenti un convertitore analogico-digitale di tipo standard, un sensore di temperatura, un modulo oscillatore interno, e pin per il collegamento di un oscillatore esterno. Le dimensioni del componente sono particolarmente contenute e consentono di risparmiare spazio a livello di PCB, un aspetto molto importante per le applicazioni automotive, nelle quali l'ottimizzazione degli ingombri e del peso contribuisce ad un risparmio significativo di carburante.
Le specifiche tecniche della famiglia S12VR sono le seguenti:
- core basato sulla CPU S12, con bus a 25MHz
- fino a 64 Kbyte di memoria flash con protezione ECC (Error-correcting Code Memory)
- fino a 512 byte di memoria EEPROM con ECC
- fino a 2 Kbyte di memoria SRAM integrata sul chip
- layer fisico LIN conforme alle specifiche OEM e ai requisiti EMC
- regolatore di tensione integrato per impieghi automotive
- 2 driver low-side per il pilotaggio di carichi induttivi tramite PWM
- fino a 2 driver high-side
- ingressi protetti per tensione a 12V
I principali benefici che derivano dall'utilizzo della famiglia di componenti S12VR si possono così riassumere:
- architettura matura S12 (basata sullo "storico" HCS12) in grado di offrire, per numerosi tipi di applicazioni, prestazioni superiori rispetto alle famiglie a 8-bit
- memoria flash integrata per la memorizzazione del codice senza bisogno di ricorrere a flash o ROM esterne
- interfaccia flash semplificata che consente la cancellazione di settori di memoria composti da soli 4 byte
- dimensioni generose di memoria RAM
- nessuna necessità di ricorrere a un layer fisico LIN esterno, risparmiando sullo spazio e sui tempi di progettazione
- l'integrazione dei moduli ad alta tensione per uso automotive (12V) consente un ulteriore risparmio di spazio sul PCB e sul tempo di progettazione, senza la necessità di introdurre circuiti di protezione esterni
- uscite protette in grado di pilotare carichi induttivi senza necessità di componenti esterni
- ingressi compatibili con i livelli di tensione prodotti dalle batterie dei veicoli
Nell'immagine di apertura del presente articolo è mostrato lo schema a blocchi relativo alla famiglia di microcontrollori S12VR. In colore ocra sono visualizzati i blocchi appartenenti al sottosistema CPU, in grigio le periferiche tipiche della famiglia S12, ed infine in blu le periferiche che operano alla tensione di 12V.
S12VR - applicazioni
Le princiapli applicazioni della famiglia di MCU S12VR si possono così riassumere:
- applicazioni nel settore automotive:
- alzacristalli elettrici, portiere elettriche, controllo elettrico dei sedili
- moduli di potenza per tettucci apribili
- driver per relè controllati via LIN bus
- attuatori "intelligenti"
- applicazioni nel settore settore industriale:
- sistemi di controllo a relè
- applicazioni in cui esistono vincoli stringenti sullo spazio disponibile
S12VR - sistemi di sviluppo
La famiglia di microcontrollori S12VR include una scheda di valutazione con la quale è possibile accedere a tutti i pin del componente, ed è anche dotata di un relè integrato con il quale è possibile testare le applicazioni che prevedono operazioni di pilotaggio dei relè. La board sopporta carichi fino a 13A prodotti da motori a 12V, e può essere alimentata da una sorgente esterna ad elevata corrente. A livello software, Freescale propone la collaudatissima suite di sviluppo e debug CodeWarrior, alla quale si aggiunge del software pronto per l'uso espressamente sviluppato per la famiglia S12.
Nell'immagine seguente è mostrato l'MM912_634, un relè driver dotato di bus LIN integrato. Questo componente della famiglia S12 MagniV è basato su una soluzione a doppio die, è cioè fabbricato unendo due die ottenuti con processi di fabbricazione differenti.
Freescale amplierà progressivamente il numero di dispositivi da inserire nella famiglia S12VR, allo scopo di consolidare la sua posizione di azienda leader nel settore automotive.
In questo video si parla invece del Reference Design relativo ai microcontrollori a segnali misti della famiglia S12VR, con particolare enfasi sulle applicazioni nel settore automotive (controllo elettrico degli alzacristalli con sistema di sicurezza "anti-pinch").
Partecipa alle discussioni, leggi le ultime notizie e acquista i prodotti Freescale Semiconductor

Oggettino veramente interessante!!! Avere un microcontrollore, che non solo si occupa di gestire i segnali logici a bassa tensione, ma anche i segnali di potenza a 12 volt è veramente un grande vantaggio per quelle applicazioni in cui segnali logici e pilotaggi ad alta tensione vanno a braccetto. Solitamente le tensioni di uscita e di ingresso dei microcontrollori sono relativamente basse e generalmente non superano i 5 V; se si deve realizzare un dispositivo in cui è presente anche la parte di potenza in cui generalmente sono richieste tensioni maggiori dei 5 V, è necessario progettare e realizzare la parte di interfaccia tra il microcontrollore e la gestione dell’alta tensione, interfaccia che solitamente è composta o da relè meccanici o da dispositivi a stato solido che sono in grado di pilotare alte tensioni (TRIAC, MOSFET, IGBT,…); solitamente l’impiego di questi dispositivi comporta non solo avere la necessità di progettare due o più alimentazioni (alimentazione del microcontrollore e alimentazione per la parte di potenza) ma richiede anche tutta una parte di interfaccia e di isolamento galvanico che solitamente è composta da un certo numero di componenti come transistor, resistenze e foto accoppiatori, che vengono usati per pilotare questi relè meccanici o a stato solido. Togliere o per lo meno ridurre questa parte di interfaccia “microcontrollore-pilotaggio di potenza”, vuol dire ridurre il numero di componenti del nostro circuito, cosa che si traduce non solo in una riduzione delle dimensioni della scheda finale ma anche in una riduzione dei costi.
Tra le tante caratteristiche citate nell’articolo, a mio parere quelle che possono essere considerate veramente interessanti per le applicazioni automotive e industriale sono:
– Regolatore di tensione interno che permette di avere una sola tensione di alimentazione senza dover progettare due linee di alimentazione (credetemi è un grande vantaggio non dover fare due stadi di alimentazione, soprattutto se sono richieste le masse isolate e quindi un trasformatore con due secondari)
– 64 Kbyte di memoria flash per la scrittura del codice è uno spazio sufficientemente grande per applicazioni automotive e industriale.
– 516 byte di eeprom integrata per la memorizzazione di parametri sono sufficienti (forse su questo userei la parola “giusti”) per lo storage di parametri utili al funzionamento dell’applicazione
– Due driver PWM con protezione per carichi induttivi: anche questa è una feature molto interessante, infatti solitamente la protezione dei componenti a stato solido che pilotano carichi induttivi non è mai di semplice realizzazione, soprattutto se i carichi induttivi utilizzano amperaggi molto elevati, oltre a richiedere ulteriori componenti da aggiungere al circuito.
– Ingressi a 12 V permettono il monitoraggio dei livelli di tensione del circuito senza la necessità di avere un riduttore di tensione e/o di un isolamento galvanico per prevenire la rottura del microcontrollore in caso di sovratensioni o picchi di tensione.
– Struttura consolidata HCS12: oramai la struttura “HCS” della freescale è ampiamente diffusa quanto conosciuta e quindi, per uno sviluppatore che conosce la famiglia freescale, non sarà particolarmente difficile iniziare a sviluppare con questo tipo di microcontrollori.
Da assiduo utilizzatore di Microchip devo ammettere che questa volta freescale ha fatto un oggettino veramente interessante che fa guadagnare punti al mondo freescale.
Una cosa che non mi è ancora chiara: anche il convertitore A/D funziona con tensioni fino ai 12 volt? Se così fosse l’oggettino in questione risulterebbe ancora più interessante…
Bell’oggettino se non fosse per il nome MagniV, ma chi li decide?
Comunque apprezzo il core storico HCS12 in automotive meglio rimanere su architetture solide, robuste e collaudate.
È il primo microcontrollori che vedo che si possa alimentare direttamentea 12V,
Ma comunque dal decrescita all data sheet della Freescale risulta che sia possibile alimentarlo anche a 5V,
Come qualsiasi componente di elettronica digitale.
Dalla all data sheet risulta su questa linea di linee di componenti della Freescale funzione molto interessante ad esempio nel componente MM912_634 è incrementato il controllo del motore con schema H.
http://pdf1.alldatasheet.com/datasheet-pdf/view/417795/FREESCALE/MM912_634.html
Wuahu! è un componente interessantissimo! con questa MCU si potrebbero fare tanti progetti interessantissimi legati alla robotica, dato che implementa al suo interno una regolazione PWM. La prima cosa a cui ho pensato leggendo l’articolo è un bell’impiego in un sistema demotico ad Hoc, con un controllo di sensori alle finestre, sensori di presenza, per la temperatura ci pensa lui dato che implementa un sensore termico, ed inoltre si potrebbe adoperare per controllare la tensione di rete, in modo che se questa aumenti per sovratensione della centrale, stacchi automaticamente, proteggendo gli elettrodomestici. Inoltre si può alimentare direttamente a 12V Siiiiiiii!
Si anche io credo che non puoi utilizzare il sensore termico per monitorare la temperatura ambiente in quanto, essendo un sensore interno, le variazione di quella ambiente non hanno grandi effetti sul sensore (come si è già detto in un altro post le temperature dei microprocessori superano di molto la temperatura ambiente).
Anche per il monitoraggio della tensione di rete ho i miei dubbi: credo che più di 12 volt non riesca a supportare come tensione di ingresso e quindi necessita sempre e comunque di un circuito che diminuisca proporzionalmente la tensione (oltre che un circuito di isolamento galvanico visto che si sta parlando di tensione di rete!!!).
Giusta invece l’osservazione sui PWM: solitamente la robotica utilizza motori a bassa tensioni e quindi avere una periferica PWM montata sul microcontrollore, che lavora con i 12 volt è un vero e proprio vantaggio, in quanto evita di doversi interfacciare verso il motore con i transistor di potenza come i MOSFET.
Mi sa che non puoi utilizzare i sensori di temperatura interna per monitorare da temperatura dell’ambiente della stanza visto che serve per monitorare la temperatura del chip di silicio interno e che è di solito viste le potenze dissipate molto superiori 20 C° e può arrivare fino 60 C°
Ma nell’idea di un controllo di una finestra nell’ambito della demotico, questo componente presenta tutto il necessario potresti usare le due circuiti e previsto per due sensori ad effetto hall così da avere un inizio ed un fine corsa per il controllo dell’apertura e chiusura ad esempio di una tapparella.
interessantissima la capacità di gestire picchi ti tensione senza danneggiarsi.. rende sicuramente più facile e veloce lo sviluppo
va aggiunto che è possibile programmare il dispositivo con il USBMULTILINKBDM.. un incircuit degugger / programmer, in grado di programmare anche i coldfire.
da dare uno sguardo anche a COSMIC S12X, un IDE + compliatore ansi C con varie funzioni interessanti
ottima idea, ache se comunque un sensore lo si può benissimamente adattare!
ho ipotizzato il monitoraggio della tensione di rete, solo perché nell’articolo si menzionava il fatto che gli si potevano adattare alte tensioni, ma credo che tu abbia ragione, non gli si possono mica mettere 230V!
La possibilità di lavorare a 12V secondo me è piu per “marcare” la propria robustezza che una reale necessità tecnica.
PWM
non credo sia opportuno pilotare motori direttamente dal micro, anche se sono a 12V un mosfet è doveroso per motivi di assorbimenti in corrente ed eventuali spike.
Ed anche se il motore assorbisse poco e le uscite sono capienti (come vedo dal datasheet) non mi fiderei lo stesso ed un mosfet lo userei comunque.
ADC
Lavora sempre a 5V infatti l’alimentazione principale entra in un voltage regulator che alimenta appunto a 5V la mcu e le periferiche
Direi quindi che in automotive sicuramente lo userei, ma non rinuncerei sicuramnete alle varie accortezze che il settore impone, come protezioni, snubber e interfaccie.
Io consiglio sempre il programmatore / debugger originale.
Lo compri una volta, ti dura una vita e non hai problemi!
Immagina in un progetto già quante variabili hai per trovare un malfunzionamento, quando fai il debug… sarà l’hardware…. sara il firmware…
OPPURE E’ IL DEBUGGER???
Non avevo mai sentito parlare di microcontroller di questo tipo.
Mi sembra molto valido per lo sviluppo di PLC o di dispositivi tipo CNC.
Da quel poco che ho letto, questo componente, avendo la capacità di gestire una certa corrente ed assendo alimnetato a 12V si presta a queste applicazioni.
mi sto documentando perchè mi interesserebbe provare il microcontroller, se volessi rinunciare a programmatori riutilizzabili e varie funzioni di debug, qualcuno conosce qualcosa di alternativo al programmatore fornito da freescale?
vorrei trovare qualcosa da realizzare velocemente e e basso costo
ho comprato un programmatore / bug con lo standard JATG e con questo si può programmare 90% del mercato dei microcontrollori.
anche freescale usa questo tipo di interfaccia
Wow grandioso… quindi dici che può andare ho capito ;)… in realtà non ancora visto i prezzi di questo oggettino… magari si riesce a fare un design con prezzi contenuti.. !
Vedremo..
Sicuramente avere a bordo il tranceiver LIN permette a questo dispositivo di essere usato in molte applicazioni automotive, infatti viaggiano su linea LIN i messaggi relativi ai vetri elettrici, agli specchietti(regolazione e apertura(flap)), alle lampade di cortesia, spesso anche le indicazioni di temperatura. Da alcuni anni anche le informazioni relative alla batteria come lo stato di carica, corrente, tensione ecc… viaggiano su linea lin grazie ad un modulo chiamato BMS battery management system, ne esistono di molti tipi, il piu’ usato è quello prodotto da Bosh esi innesta direttamente su un poli della batteria(il -). il microcontrollore in questione potrebbe benissimo essere impiegato in ognuna delle applicazioni sopra elencate
Ciao a tutti… ma secondo voi si riesce ad utilizzare questo micro controllore anche per realizzare il controllo di motori tipo quelli per i cancelli automatici?
Sono abbastanza scarso sui micro controllori ma mi piacerebbe capire quali sono le loro vere potenzialità..dato che sono “abituato” a ragionare con PowerPc o Multimedial Processor..
L’altra domanda è relativa alle dimensioni della memoria flash… con 48KB sono abbastanza per disporre di un firmware per l’applicazione suddetta..?
Grazie
L’idea è sicuramente ottima, conosco bene l’ambiente dei cancelli automatici ed un micro robusto è sicuramente una soluzione in piu per l’immunità ai disturbi di vario genere.
Se scrivi software in assembler 48K sono un’enormità!
Se scrivi in C ed usi un compilatore efficiente non avrai sicuramente problemi.
Ho realizzato centraline per cancelli automatici, sia scorrevoli che ad ante, con ricevitore radio e codifica integrati con micro da 8K (in assembler)
Dipende molto da come si scrive il codice, certo in assembler è ottimizzato ma anche in C si riesce a far stare applicazioni complesse in pochi KB. Io estenderei l’uso di questo tipo di microcontrollori ad appplicazioni della domotica in generale e quindi anche l’apricancello perchè no.
In genere una rete domotica è meglio farla wireless cioè utilizzando nodi zigbee ma se i nodi non sono molti anche su linea LIN si possono fare dei buoni lavori, ricordo che servono solo 2 fili!
Ciao fra83… che tu sappia il compilatore fornito da freescale risulta essere abbastanza accurato nel generare codice ottimizzato? Io in realtà non ho mai avuto questa esigenza e fino ad oggi ho sempre utilizzato compilatori free e non proprietari..però ho sentito dire in giro che il compilatore ARM vero è proprio risulta essere molto costoso..quindi ritorna sempre il solito discorso e cioè se ne vale o meno la pena…ma non credo che sia il nostro caso dato che siamo soltanto dei “semplici” appassionati 🙂 !!
Ad ogni modo qualcuno ha esperienza con compilatori Freescale/ARM ?? Magari ci illumina di più sulla vicenda…!
Grazie
Vedo con piacere che io ed Emanuele abbiamo qualcosa in comune: le centraline per cancelli automatici 🙂 tutt’ora sviluppo software (assembler e C, dipende dai casi) per una ditta che produce centraline, telecomandi, fotocellule, coste sensibili, … per cancelli, tapparelle e per tutti quelle applicazioni che riguardano l’Home Automation.
Confermo quello che dice Emanuele, un micro robusto è sicuramente utile in un applicazione come quella degli “apri cancelli”, in cui, oltre a lavorare con le alte tensioni, si lavora con motori che spesso e volentieri non sono così “puliti” elettromagneticamente parlando e quindi ti ritrovi correnti indotte che spesso e volentieri fanno resettare il micro se non ben filtrate.
Inoltre, solitamente nelle centraline per cancelli ci troviamo a fare i conti con 3 o 4 tipi differenti di tensioni, tra cui proprio la 12 V, tensione solitamente usata per alimentare i dispositivi periferici che vanno collegati alla centrale. Avere un microcontrollore che gestisce direttamente i segnali a 12 volt è un grande vantaggio, sia in termini di risparmio dei componenti, sia di risparmio di tempo nella progettazione, tutte cose necessarie invece se necessitiamo di realizzare l’interfaccia tra la 12 volt e la tensione di alimentazione del micro.
Non so che tipo di software devi sviluppare ma se l’applicazione è per un cancello automatico credo che 48K siano sufficienti sia in C che in assembler…anche io ho realizzato il software di centraline scritto in assembler con microcontrollori con 8K (per la precisione con il PIC16F883).
Io ho utilizzato il compilatore della freescale e non ho trovato grosse differenze con il compilatore della microchip in termini di ottimizzazione del codice, i miei erano programmi abbastanza semplici con poche istruzioni di salto e quindi è difficile notare una differenza nell’ottimizzazione. L’unica cosa che ti posso dire è che personalmente non mi piace come interfaccia sia di scrittura codice sia di debug ma questa è solo un’opinione personale. Per il resto funziona molto bene, ho un programmatore USB e lo trovo molto pratico
Ciao,
La mia era soltanto una semplice curiosità e ammiro molto la vostra capacità di scrivere codice “conciso” ma allo stesso tempo efficacie..!! Io purtroppo o per fortuna sono abituato a guardare poco questo aspetto dato che fin ad oggi lavoro su powerPc in cui i numeri sono ben diversi come immagino sappiate…
Ad ogni modo presto dovrò imparare qualcosa anch’io perchè adesso anche qui si comincierà a lavorare con micro cont. vista gli ultimi prodotti sfornati dalla freescale (tra cui uno è al secondo posto delle vincite di oscillandia :))
Grazie per i commenti!
Beh se metti un driver per motori di quel calibro credo di si! Dato che è programmabile a tutti gli effetti, e quindi puoi gestire tu tutte le informazione. Ti consiglio solo di stare attento in questi apparati la sicurezza è fondamentale!
ho i miei dubbi sul fatto che il mosfet è doveroso, a quanto ho capito! probabilmente un mosfet o BJT è già integrato nel chip!
infatti, l’originale è molto più conveniente, i problemi già sono troppi quando si progetta un qualcosa di elettronico (masse in comune, resistori di pull’up/down, ecc.), se si può meglio evitare!
non è un idea da buttar via! un sistema creato da te ti rende libero di poterci aggiungere qualsiasi cosa! (Immagina che bello poter aprire il cancello di casa con il computer, nel caso in cui si rompe il telecomando!)
In realtà posso consigliarvi un debugger ..di cui si va molto fieri in azienda :)..
L’oggetto in questione lo vedete qui :
http://www.lauterbach.com/frames.html?home.html , vedete in products..
Pesnate che usiamo questo nonostante potessimo scegliere qualcosa invece dalla freescale…sinceramente io lo uso poco.. ma se i miei colleghi (molto più esperti di me in debugging e soprattutto in far funzionare le cose..), l hanno scelto ci sarà pure un motivo no ? 🙂
Inoltre se andate a vedere bene nei vari menu…e scegliete un prodotto potete trovare le varie architetture per le quali il debugger è compatibile..poi ovviamente dipende sia dalla scheda che da come si vuol debuggere…ad esempio via lan o via jtag…
PS:
Per i più curiosi..un trick 😉 : Ho avuto modo di debuggare via lan attraverso un modulo che il kernel di linux attuale offre.. il KGDBOE .. ke è essenzialmente il kgdb over ethernet..se qualcuno è interessato mi contatta che gli spiego cm montare il modulo 😉
Ciao
hahah dai si è carina come idea..ma mi sembra un pò uno “spreco” sfruttare il tuo pc per inviare un impulso del genere.. e poi devi sempre avere i codici per poterlo fare… e qui si rientra nel discorso fatto sull’articolo del keeloq 😉
bel debugger non c’è dubbio, dicevo solo che molte volte ti conviene di più usare l’originale che quallo di un altra società che lo adatta all’originale, ma ciò non toglie che ci siano dei debugger altrettanto validi!
Veramente bello questo microcontrollore, non ne avevo mai visto uno fino ad ora, che operasse a 12 V, come al solito Freescale dà sempre grandi soddisfazioni. Ho dato uno sguardo al datasheet e come sospettavo il core viaggia a 20 MHz non 25 MHz, o forse dipende dai modelli? Non ho avuto molto tempo per guardarlo con attenzione, però ho visto che è un buon prodotto visto le caratteristiche costruttive, impiegando la nuova tecnologia LL18UHV. In pratica in un piccolo microcontrollore noi abbiamo tutto quello che ci serve e soprattutto abbastanza potenza. Quello che mi chiedo io è quanto tempo potrà mai resistere un microcontrollore a quella tensione, visto che con tutti i dispositivi che ha al suo interno sicuramente scalda in poco tempo?
Poi un’altra domanda che ho, è perché l’impiego di un bus LIN visto la bassa velocità di trasmissione che ha? Credo che questo microcontrollore è ottimo per una macchina normale, ma se ad esempio dovessimo metterlo su una macchina da corsa, si farebbe brutte figure, secondo me c’è bisogno di aumentare la velocità di trasmissione dei dati dai sensori al controllore, per quanto riguarda RAM e ROM lo spazio è piu che sufficiente. Fatemi sapere gentilmente per quelle due domande.