Progettare con i DSP TMS320F28

Benvenuti a un nuovo appuntamento con la Rubrica Firmware Reload di Elettronica Open Source. In questo articolo analizzeremo alcuni accorgimenti per una scheda che funzioni al primo colpo.

Introduzione

La disponibilità di dispositivi integrati dalle prestazioni sempre crescenti ha in certa misura semplificato il lavoro dei progettisti hardware; si ha, infatti, oggi la possibilità di integrare sempre più funzionalità in un unico dispositivo riducendo il numero di parti del proprio circuito o le dimensioni ed i consumi della propria scheda. Tuttavia, tali vantaggi si pagano nella misura in cui è necessario utilizzare package sempre più piccoli e soprattutto di tipo non tradizionale (ad esempio, grid-array), alimentare gli integrati con tensioni di core sempre più basse (inferiori anche a 1.5 V), prestare maggiore attenzione allo sbroglio delle piste per evitare problemi di compatibilità elettromagnetica. Uno dei settori dove questo si sente maggiormente è quello dei processori DSP dove, se da una parte l’elaborazione del segnale è sempre più spostata nel dominio digitale, dall’altra il progetto del circuito stampato richiede sempre più competenze di tipo analogico.

Per questo motivo, la maggior parte dei produttori tende oggi a pubblicare Application Note di riferimento che supportino il progettista nel disegno della scheda, per evitare che si incorra in errori di difficile debug una volta realizzato lo stampato. Un esempio interessante di tale tipo di documenti è l’Application Report citata nei Riferimenti [1] che discute le linee guida per la progettazione hardware con i DSP della serie TMS320F28. Sebbene alcune considerazioni siano ovviamente legate alle specificità di tali dispositivi, in linea generale molte delle osservazioni possono servire come spunti di riflessione anche per altri tipi di applicazioni. Rivediamone alcuni dei punti più interessanti.

OSCILLATORE INTEGRATO O CRISTALLO AL QUARZO?

I DSP della famiglia TMS320F28, come molti altri dispositivi analoghi, dispongono di un PLL interno per derivare il clock di funzionamento della CPU e delle altre periferiche da una linea esterna a più bassa frequenza. E’ possibile utilizzare sia un cristallo al quarzo esterno che un oscillatore integrato. Il primo caso è una soluzione a più basso costo ma presuppone che il segnale di clock non debba essere distribuito ad altri dispositivi; in caso contrario, volendo comunque usare il quarzo, sarebbe necessario pilotare il clock degli altri dispositivi con l’uscita XCLKOUT del DSP TMS320F28 oppure con una delle linee di I/O con controller PWM. Lo svantaggio è che i diversi segnali di clock così distribuiti non sarebbero sincroni e lo skew delle diverse linee finirebbe per inficiare il corretto funzionamento della scheda alle più alte frequenze.

L’altra cosa da tenere presente, nel caso si utilizzi un cristallo al quarzo, è il corretto dimensionamento dei due condensatori esterni connessi tra i pin del quarzo e massa. Questi determinano la capacità di carico che è richiesta dal cristallo; nel calcolare il loro valore si dovrà tenere presente la capacità parassita delle linee e dei pin di connessione, stimata in circa 5 pF e che appare in parallelo ai condensatori stessi. E’ importante verificare, inoltre, che la capacità di carico risultante rientri nei limiti delle specifiche per il dispositivo DSP connesso; i componenti della famiglia TMS320F28 richiedono, ad esempio, una capacità di 12 pF con un ESR compreso tra 30 Ω e 60. Da curare è anche il layout del circuito stampato; la Figura 1 mostra un esempio di piazzamento e routing di un cristallo esterno. Si noti come le linee di segnale sono prive di fori (via) di interconnessione. Se al posto del cristallo si sceglie di utilizzare un oscillatore integrato, invece, le cose da controllare sono i parametri di stabilità ed invecchiamento di questo, i tempi di salita e discesa del segnale generato, il duty cycle e soprattutto i livelli. I DSP TMS320F28, ad esempio, richiedono un segnale a 3.3 V quando l’oscillatore è connesso all’ingresso XCLKIN ed a 1.8/1.9 V quando invece a X1.

Figura 1. Esmepio di layout del circuito stampato per il piazzamento e lo sbroglio di un cristallo esterno (da [1]

Figura 1. Esempio di layout del circuito stampato per il piazzamento e lo sbroglio di un cristallo esterno (da [1])

ATTENZIONE ALLE LINEE CRITICHE PER EVITARE PROBLEMI

Oltre al clock è importante anche la corretta gestione del segnale di reset. Le specifiche del TMS320F28, ad esempio, impongono che, durante il normale funzionamento, il segnale duri almeno 8 cicli del segnale di clock per essere correttamente riconosciuto. Al power-up, invece, deve essere asserito almeno 8 μs prima che la tensione VDD raggiunga 1.5 V e successivamente a ciò, mantenuto attivo per almeno altri 10 ms, che corrispondono al tempo di start-up dell’oscillatore interno. Per evitare reset spuri, è opportuno poi filtrare la linea con gruppo RC; nei casi più critici può essere richiesto l’uso di un diodo di protezione ESD. Importante è anche il corretto filtraggio delle linee del circuito di debug del DSP, in particolare dei segnali di controllo TRST ed EMU0 ed EMU1.

La prima, che corrisponde al reset dell’interfaccia JTAG, forza i dispositivi TMS320F28 nella modalità di debug quando attivata nel livello logico alto. Internamente, dispone di pull-down; per questo motivo non deve mai essere pilotata a VDD con pull-up esterno. Un resistore di pull-down esterno è invece tipicamente raccomandato in più di una applicazione; il valore dipende dalla capacità di driving del pod del tool di debug ma in genere una resistenza di 2.2 k è più che adeguata. Per ridurre i problemi di rumore e migliorare la qualità del segnale può servire alcune volte aggiungere un condensatore di 10 nF (anche sulle linee EMU0 e EMU1) ed è comunque importante che il connettore JTAG sia posizionato a meno di 15 cm dal dispositivo; ove non possibile, devono essere previsti opportuni buffer. Un caso del genere si ha ad esempio quando si utilizza un’unica catena JTAG per il debug di più dispositivi a bordo scheda, nel qual caso questi vengono connessi in daisy-chain secondo uno schema del tipo mostrato in Figura 2.

Figura 2. Connessione in daisy-chain di più dispositivi in una catena JTAG (da [1])

Figura 2. Connessione in daisy-chain di più dispositivi in una catena JTAG (da [1])

ATTENZIONE AI GPIO!

Un altro aspetto importante che genera spesso confusione e dubbi nella realizzazione dello schema elettrico è la gestione dei GPIO. Il punto più dolente è certamente relativo ai pin non utilizzati. Nel caso dei DSP TMS320F28, ad esempio, va tenuto conto che i GPIO sono configurati al power-on come ingressi; quindi, i pin non utilizzati devono essere opportunamente terminati. In caso contrario, lo stadio d’ingresso sarebbe floating e finirebbe per lavorare, a causa del rumore, in regime lineare, causando un eccessivo assorbimento di corrente ed uno stress del circuito stesso che ne potrebbe provocare la rottura. L’alternativa, sebbene non raccomandata, è di demandare alla applicazione software il compito di configurare i pin come uscite subito dopo il reset.

Se si sceglie di terminare i pin, invece, va considerato se potrebbero essere richiesti in qualche applicazione particolare del circuito. Se non vi è questa possibilità, la raccomandazione è quella di terminarli direttamente a massa; se invece possono tornare utili in alcuni casi, è meglio utilizzare un resistore esterno di pull-down. Nel caso invece di GPIO utilizzati per vari scopi, non bisogna dimenticare di valutare la capacità di corrente richiesta al pilotaggio della linea. I DSP TMS320F28, ad esempio, hanno capacità massima di ±4 mA e supportano al più frequenze di 20 MHz (o 25 MHz, a seconda del modello). Nel caso si debbano pilotare carici pesanti, come relay o LED, è opportuno prevedere un buffer esterno che assicura una capacità estesa di driving fino a ±24 mA.

UNA CORRETTA DISTRIBUZIONE DELL’ALIMENTAZIONE PER MAGGIORE IMMUNITÀ AL RUMORE

La corretta gestione dell’alimentazione del dispositivo è un altro aspetto cruciale, soprattutto nelle applicazioni mixed-signal. Le elevate frequenze di commutazione dei DSP come i TMS320F28 comportano che l’assorbimento di corrente ha un profilo assai irregolare, con picchi elevati durante le commutazioni dei segnali interni ed esterni; questo si traduce in elevato rumore sulla linea di alimentazione. Come al solito, prevedere dei condensatori di bypass che "eroghino" la potenza accessoria necessaria durante le commutazioni aiuta significativamente a ridurre questo. Il valore della capacità da prevedere dovrebbe essere calcolato tenendo conto della corrente assorbita, della frequenza di commutazione e del ripple massimo richiesto per la linea di alimentazione stessa.

Ciò nonostante, resta valida la considerazione che non è raccomandato alimentare le sezioni analogiche della scheda e del DSP stesso con la stessa linea di quella usata per i circuiti digitali, a meno di non accettare un degrado significativo delle prestazioni, ad esempio, dei convertitori ADC integrati. La soluzione più semplice è certamente quella di filtrare la linea di potenza mediante filtro DC prima di utilizzarla per i circuiti analogici. Il filtro può essere basato su induttori o, nei casi più critici, ferriti. Se si adotta una tale soluzione, massa analogica e digitale non possono essere separate ma devono essere connesse direttamente sulla scheda in un unico punto e ci si deve assicurare che i cammini di ritorno delle correnti digitali non si chiudano in aree con componenti analogici; la Figura 3 mostra un esempio di principio per il layout del piano di massa a tale scopo.

L’alternativa è quella di usare due regolatori separati, uno per la sezione analogica e per quella digitale, ma in questo caso il problema è gestire correttamente il grounding del circuito per evitare ground loop. Oltre a distinguere tra alimentazione digitale ed analogica, i DSP TMS320F28 richiedono inoltre diversi tipi di alimentazione digitale per il core e l’I/O. Fortunatamente, il dispositivo TI non impone una sequenza specifica con cui le diverse tensioni devono essere applicate; è, tuttavia, possibile che si verifichino spike sulle linee di I/O se l’alimentazione per queste è applicata prima di quella per il core. Allo stesso modo, è fortemente raccomandato che, quando il dispositivo è spento, non sia applicato sulle linee di I/O un livello superiore a 0.7 V.

Figura 3. Chiudere massa analogica e digitale in un singolo punto sul PCB nel caso di unica alimentazione (da [1])

Figura 3. Chiudere massa analogica e digitale in un singolo punto sul PCB nel caso di unica alimentazione (da [1])

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend