Linee guida per i micro Tiva serie C

In questo articolo della Rubrica Firmware Reload vogliamo fornire alcune linee guida per iniziare a progettare con i microcontrollori Tiva serie C di Texas Instruments. Si affronteranno uno dopo l’altro i punti salienti per un design che includa un microcontrollore Tiva C, sperando di dare al progettista uno strumento in grado di accelerare lo sviluppo.

Introduzione

I microcontrollori della serie Tiva C, anche identificati con la sigla TM4C sono dei veri e propri SoC ad elevata integrazione, equipaggiati con un numero elevato di interfacce e con notevoli capacità di elaborazione. In virtù di queste caratteristiche, quando si va a realizzare uno schema, i fattori da considerare sono molteplici. Seguendo le indicazioni di questa guida, questo processo risulterà più semplice e la probabilità che la vostra scheda funzioni al primo colpo aumenteranno notevolmente. Oltre ad alcuni argomenti generali (alimentazione, reset, oscillatori, debug, etc.) ci si concentrerà su alcune delle funzionalità specifiche del TM4C (ad esempio ADC e USB). Potrebbe capitare che la soluzione che vi suggeriamo non sia realizzabile per altri motivi; su una scheda complessa spesso bisogna necessariamente arrivare a dei compromessi, ma in ogni caso l’obbiettivo è quello di dare una traccia e portare alla riflessione sui singoli argomenti.

ALIMENTAZIONE

I microcontrollori TIVA della serie C richiedono un’unica tensione di alimentazione a 3,3V. Tutti gli altri valori necessari sono generati internamente al chip da un regolatore LDO. In particolare, per la VDDC di core la cosa appare evidente poiché abbiamo dei pin disponibili per il collegamento dei condensatori di disaccoppiamento. Durante il funzionamento, il valore dell’alimentazione deve rimanere all’interno del range di valori consentiti e indicati nel foglio specifiche. Per far lavorare al meglio la parte analogica del chip sarebbe bene avere il minor ripple possibile sulla tensione di alimentazione.

Le sorgenti di rumore, come driver motore, relè e circuiti a commutazione, dovrebbero avere alimentazioni distinte, specie se le prestazioni dell’ADC sono fondamentali per il progetto. Il microcontrollore ha un circuito di Power-On-Reset (POR) sia analogico che digitale, che rilascia il reset quando sia VDD che VDDA raggiungono i valori prestabiliti. Il circuito di Brown-Out Reset (BOR) verifica in maniera molto più accurata la tensione di alimentazione, mantenendo il processore in reset se i valori escono dall’intervallo prestabilito. Può essere anche utilizzato un supervisore esterno per pilotare il pin di reset per controllare eventualmente altre tensioni fondamentali per l’operatività della scheda.

CAPACITÀ DI FILTRO PER L’LDO

Come accennato in precedenza, i microcontrollori TIVA hanno un LDO interno per generare la tensione di alimentazione del nucleo. Per lavorare correttamente, questo LDO necessita delle capacità di filtro, il valore di tale capacità è riportato nel foglio specifiche del componente al parametro CLDO . La raccomandazione è di inserire due o più capacità ceramiche per un totale di 3,4mF (ossia un 3,3mF più un 0,1mF), con tolleranza 10%. Le capacità Z5U non sono raccomandabili perché variano troppo in funzione della temperatura.

CAPACITÀ DI DISACCOPPIAMENTO

L’ideale sarebbe avere una capacità di disaccoppiamento in prossimità di ogni pin di alimentazione. Il valore di tali capacità è tipicamente 0,01mF o 0,1mF, in più dovrebbero essere accompagnate da un’ulteriore capacità più consistente. La capacità complessiva per i pin di VDD e VDDA deve rimanere tra 2mF e 22mF, più ci si sposta verso il limite superiore, più la probabilità di ridurre il ripple sulla tensione di alimentazione aumenta. Una capacità con funzione di serbatoio di carica è fondamentale se il microcontrollore ha interfacce particolarmente veloci o ha più GPIO che richiedono una corrente superiore a 4 mA circa.

La disposizione ideale delle capacità dunque è quella di un condensatore di disaccoppiamento tra ogni pin di alimentazione e massa e magari una o più capacità più consistenti per lato del chip. Queste capacità devono essere ceramiche con tensione tra 10V e 25V, di tipo X5R o X7R. Anche in questo caso meglio evitare le Z5U. Le opzioni ottimali per piazzare le capacità di disaccoppiamento sono riassunte nei consigli di Figura 1.

Figura 1: Dislocazione consigliata per le capacità di disaccoppiamento.

Figura 1: Dislocazione consigliata per le capacità di disaccoppiamento

DOMINI DI ALIMENTAZIONE E MASSA

Il TIVA può lavorare con la stessa tensione di 3,3V collegata su VDD e su VDDA. In alcuni casi inserire un filtro può essere utile per separare le due alimentazioni e migliorare le performance analogiche. La separazione delle tensioni può avere alcuni vantaggi: VDDA può essere selezionata come riferimento per l’ADC e lo stesso ADC a 12 bit migliora le proprie performance con un’alimentazione dedicata. Se si inserisce un filtro, allora si dovrà progettare un passa basso composto da capacità e una resistenza di basso valore o un’induttanza. Se i pin VDD e VDDA sono alimentati separatamente, sarà cura del progettista garantire che vengano alimentati e disalimentati contemporaneamente. I pin di GND e GNDA dovrebbero essere sempre collegati insieme e connessi ad un layer di massa.

RESET

Il circuito di reset è interno al TIVA, all’esterno sul pin RST non è richiesto niente di particolare. In ogni caso, per aumentare la robustezza al rumore è bene collegare una resistenza da 1 kohm verso la 3,3 V e un condensatore da 0,1mF verso GND. Questo circuito, oltre a permettere il reset attraverso la JTAG, consente di aumentare la robustezza al rumore per transitori veloci su piste vicine al segnale di reset. Se il segnale di reset proviene da un’altra scheda è bene che ci sia un buffer per filtrarlo. A volte serve aggiungere un pulsante per effettuare un reset, per evitare il “ringing” dovuto all’attivazione del pulsante: una resistenza da 100 ohm in serie può essere d’aiuto.

OSCILLATORE

I TM4C hanno la circuiteria necessaria per collegare due cristalli esterni per generare il clock principale e per il clock durante la fase di ibernazione (in alcuni casi anche per l’ethernet fisico). Il circuito per essere completato richiede che oltre al quarzo siano collegati esternamente due condensatori, come in Figura 2.

Figura 2: Collegamento del quarzo esterno per il TIVA C.

Figura 2: Collegamento del quarzo esterno per il TIVA C

Le capacità C1 e C2 devono essere dimensionate correttamente per garantire l’oscillazione. I produttori dei quarzi specificano il valore della capacità di carico CL che deve essere utilizzata nella seguente formula per ottenere i valori di C1 e C2:

CL = (C1 * C2 ) / (C1 + C2 ) + CS

CS è la capacità di dispersione nel circuito di oscillazione; essenzialmente, è legata alla lunghezza delle piste, al tipo di PCB, al microcontrollore. In genere CS va dai 2pF ai 4pF. Se supponiamo che C1 e C2 siano identici in valore, allora la formula si semplifica e diventa:

C1 = C2 = (CL – 3 pF) * 2

Oltre alle capacità, a volte è necessario inserire in serie anche una resistenza RS, per evitare di eccedere la massima potenza che può essere fornita al quarzo. Sul foglio dati del microcontrollore sono riportati alcuni componenti per i quali è già stato fatto un dimensionamento delle capacità e della resistenza. Per quel che riguarda il layout, l’ideale è riferirsi alla Figura 3. In generale è bene che le piste non superino i 12mm di lunghezza. L’altra estremità dei condensatori si collega direttamente al piano di massa attraverso un foro di via.

Figura 3: Layout raccomandato per il quarzo.

Figura 3: Layout raccomandato per il quarzo

JTAG

Quando si sta progettando una scheda con un microcontrollore TIVA C, è sempre bene inserire un connettore che consenta di accedere ai segnali della JTAG e SWD. Dove ci sono requisiti stringenti per il numero di pin, la SWD potrebbe essere preferita al JTAG, in quanto richiede solamente due segnali (SWCLK e SWDIO) anziché i quattro richiesti dalla JTAG. Fondamentale risulta però verificare che la “tool-chain” supporti la SWD prima di attuare la scelta. L’utilità LM Flash Programmer messa a disposizione da Texas Instruments utilizza l’SWD. Il connettore più diffuso in ambito ARM è un 2x10 a passo 2,54mm, lo svantaggio è che è abbastanza grande, ultimamente sta prendendo piede il 2x5 a passo 1,27mm. In Figura 4 sono riportate le connessioni per i due connettori citati. Sui pin della JTAG: TCK, TMS, TDI e TDO il TIVA ha già delle resistenze di pull-up interne, quindi all’esterno non serve aggiungere nulla.

Figura 4: Assegnazione dei pin per i connettori di debug.

Figura 4: Assegnazione dei pin per i connettori di debug

PIN INUTILIZZATI

Ogni pin non utilizzato ha una connessione preferita che dipende dalle particolari funzioni a cui il pin potrebbe essere destinato. In particolare, sul foglio specifiche vengono indicate delle prassi preferite e delle prassi accettate per il collegamento dei pin inutilizzati. L’obbiettivo è ridurre il consumo di potenza e migliorare le EMC. Attenzione a non fornire il clock a moduli che non sono attivati.

PCB DESIGN

In passato si consigliava di non tracciare piste sul PCB che avessero angoli di 90 gradi, ma di sostituirle con due angoli da 45 gradi. In realtà con il tempo è stato dimostrato che fare angoli a 90 gradi non incide sull’integrità di segnale alle frequenze tipiche di utilizzo dei microcontrollori, o almeno fino al GHz. In più alcuni test hanno dimostrato che la differenza misurabile a livello di emissioni irradiate non è apprezzabile tra le due soluzioni. Nonostante queste osservazioni, il consiglio di evitare piste con angoli a 90 gradi rimane, almeno per un paio di buoni motivi:

  • aumenta la possibilità che si formino delle imprecisioni all’interno degli angoli acuti durante il processo di erosione, essenzialmente dovute all’acido intrappolato;
  • gli angoli a 45 gradi diminuiscono la lunghezza complessiva della pista, con benefici sull’occupazione d’area, sui loop di corrente, sulle emissioni e sulla immunità ai disturbi;
  • sono esteticamente più belle !

USB

Per ottenere una comunicazione USB robusta il layout del PCB è fondamentale. Il percorso delle linee differenziali D+ e D- è importantissimo, mentre la VBUS e ID (utilizzato nel caso di USB OTG) non sono segnali critici perchè a bassa velocità. Uno dei parametri fondamentali da curare durante il layout del PCB è l’impedenza di 90 ohm tra le linee USB: nel tentativo di ottenere questo valore vanno considerate la lunghezza e lo spessore delle piste, ma anche i materiali con cui è realizzato il PCB. Per ottenere un risultato ottimale il costruttore del PCB può aiutare, attraverso gli strumenti di cui dispone, a mantenere costante il valore di impedenza tra le due linee dati dell’USB.

SEGNALI VELOCI

Particolare attenzione va dedicata anche ai segnali più veloci che si hanno sulla scheda. Per questi segnali alcune regole di massima sono sempre valide:

  • evitare discontinuità dei piani di massa o alimentazioni in corrispondenza dei segnali ad alta velocità. Quello che si genera è una variazione di impedenza che pregiudica l’integrità del segnale (Figura 5);
  • evitare dissimmetrie tra segnali differenziali (Figura 6).

In più il TIVA consente di stabilire il parametro di “drive strength” per ogni pin di uscita: se lo si tiene basso si evitano problemi di integrità legati a riflessioni e rimbalzi. Attenzione che un drive strength troppo basso può pregiudicare le tempistiche.

Esempio di layout per segnali veloci

Figura 5: Esempio di layout per segnali veloci

 

Figura 6: Esempio di layout per segnali differenziali.

Figura 6: Esempio di layout per segnali differenziali

ADC

Per ottenere il miglior risultato possibile dal convertitore ADC è necessario partire da un buon schema. Tutti gli ADC richiedono un riferimento di tensione (a volte di corrente), questo può essere generato internamente oppure deve essere fornito su un pin esterno. Ogni variazione sulla tensione di riferimento si traduce in un errore di guadagno e in una conversione errata. Anche per il TIVA la situazione è identica, la precisione fornita è notevole, ma la tensione di riferimento deve essere accurata. La cosa importante è dunque fornire sui pin VREF+ e VDDA una tensione stabile; se non si considera il riferimento interno sufficientemente preciso, allora deve essere fornito dall’esterno aggiungendo delle capacità per renderne stabile il valore. Solitamente viene raccomandato almeno 1mF, in ogni caso fare riferimento alle specifiche per maggiori informazioni.

L’accuratezza massima dell’ADC la otteniamo se la sorgente ha un’impedenza bassa e disponiamo di una capacità di filtro. All’aumentare dell’impedenza o al diminuire della capacità, la rumorosità sulla conversione aumenta. Se si utilizzano dei partitori per scalare le tensioni è importante utilizzare dei valori bassi, la resistenza tra l’ingresso dell’ADC e massa deve essere idealmente inferiore a 1 kohm. Evitare valori superiori a 10 kohm, a meno che non si inseriscano valori di capacità di filtro elevate. Un aspetto da considerare è quello di inserire una rete di protezione sugli ingressi ADC, specialmente se i segnali provengono dall’esterno della scheda o se abbiamo segnali con transitori di tensione. Su alcuni dei microcontrollori TIVA i pin dell’ADC non sono “5V tolerant”, ma permettono solamente di avere un margine rispetto alla 3V. Aumentare l’impedenza della sorgente potrebbe essere una soluzione, ma senza esagerare per i motivi citati in precedenza. Utilizzare dei diodi di blocco è una pratica diffusa, attenzione a valutare il comportamento di questi all’aumentare della temperatura.

KIT DI SVILUPPO

Per iniziare a sviluppare con il TIVA, prendere spunto dai kit di sviluppo disponibili è sicuramente la soluzione migliore. In particolare, come esempio per una scheda complessa, si può considerare la EK-LM4F232 che ha a bordo il TIVA LM4F232H5QD. Questa scheda ha 6 strati e sfrutta le funzionalità USB, implementa la modalità di ibernazione e utilizza un clock real time. Se il vostro design è più semplice, potete fare riferimento al kit EKTM4C123GXL, conosciuto anche con il nome di LaunchPad Evaluation Board e diffusissimo. In questo caso la scheda ha un semplice layout a doppia faccia ed è equipaggiata con il TM4C123GH6PM. Tutti gli schemi e i file Gerber per questi kit sono disponibili sul sito di Texas Instruments.

CONCLUSIONI

Applicare i suggerimenti riportati in questo articolo sin dalle fasi iniziali del progetto, potrebbe aumentare la vostra percentuale di successo nel realizzare un design ottimale con i microcontrollori TIVA C già “al primo colpo”. Dopo la fase di design, per proseguire con lo sviluppo, Texas mette a disposizione il “TivaWare for C SeriesPeripheral Driver Library”, uno strumento che consente di iniziare a sviluppare subito, configurando in maniera immediata I/O e periferiche. Grazie a questo strumento anche il passaggio tra diversi dispositivi risulta più facile e veloce.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend