× MSP430, Microcontrollori 16 bit Ultra Low Power

MSP430 e segnali analogici

10 Anni 10 Mesi fa #1 da Blu
MSP430 e segnali analogici è stato creato da Blu
Un saluto a tutti gli appassionati del forum.

Come da titolo, vorrei porre delle domande riguardanti l’utilizzo analogico dell’ MSP430. Al solito, numererò le domande, in modo da facilitare le (spero) risposte.

Partiamo dal microcontrollore (MSP430G2553, in formato QFN-32); leggendo la documentazione, si capisce che abbisogna di 4 condensatori di bypass (2 per la coppia DVCC/DVSS, 2 per la coppia AVCC/AVSS). Oltre a questi, ho visto spesso inserire un ulteriore elemento, un resistore di valore compreso tra 10 e 100Ω, che funge da filtro per l’alimentazione analogica; riporto qui sotto 2 schemi, credo assolutamente identici da un punto di vista funzionale.



A monte, vi è un regolatore di tensione, quindi le 2 linee DVCC/AVCC e le 2 linee DVSS/AVSS si congiungono in corrispondenza delle piazzole su cui poggia il condensatore di decoupling sull’output del regolatore di tensione (C2), come nella figura qui sotto.



Ai fini del circuito, la piazzola al di sotto del terminale di ground del condensatore C2 (che coloro di verde tanto per evidenziarla) costituirà il centro di stella di massa per tutto il progetto; ad essa si collegheranno tutte le masse del circuito, tanto analogiche quanto digitali.
Ora aggiungo le parti mancanti: il regolatore di tensione, l’interruttore e la batteria; faccio 3 disegni diversi, in cui l’unica differenza è data dal posizionamento del condensatore di bypass sull’input del regolatore di tensione.

Domanda # 1): quale delle 3 diverse soluzioni qui sotto è quella corretta? Sono per lo più equivalenti?



Domanda # 2) In un circuito del genere, credo che il pin di reset sia da collegare (mediante un resistore da 47KΩ) al V+ in uscita dal regolatore di tensione; si può collegare invece al V+ a monte del regolatore di tensione (quindi, al voltaggio della batteria), magari aumentando il valore di resistenza?

Torno ora al solo microcontrollore; come scrivevo sopra, il terminale di ground del condensatore C2 (verde) costituirà il centro di stella di massa.

Domanda # 3) posso utilizzare una soluzione come quella raffigurata qui sotto, in cui una (o più) massa analogica si collega direttamente al centro di stella, mentre altre masse digitali convergono in un secondo centro di stella (P2), che poi confluisce nel centro di stella di massa principale?



Passo ora al segnale analogico da campionare; nel circuito, è presente, oltre al microcontrollore, una sorgente del segnale analogico (un sensore) il cui segnale viene amplificato da un amplificatore operazionale, per poi arrivare al pin del microcontrollore.
L’OpAmp va ovviamente alimentato; a che io ne sappia, si possono scegliere 2 strade:
1) Lo si alimenta attraverso un pin del MCU; questa soluzione ha la controindicazione che si va ad alimentare un componente analogico (l’OpAmp) mediante un componente digitale (il MCU) i cui pin sono soggetti a rumore, che poi si riverserebbe sull’alimentazione (e, di conseguenza, sul segnale in uscita) dell’OpAmp. Un modo per risolvere il problema passa per la scelta di un OpAmp con un buon CMRR, da 80dB in su, e dall’impiego di un compound by-passing sulle linee di alimentazione dell’OpAmp (la classica combinazione 0,1µF + 1µF potrebbe andar bene).
2) Lo si alimenta mediante un p-mosfet, impiegato come interruttore high-side, con:
- Il gate connesso ad un pin del microcontrollore.
- Il drain connesso a +V dell’OpAmp.
- Il source connesso ad AVCC.
In questo modo, si aggiungerebbe tuttavia una resistenza aggiuntiva sull’alimentazione dell’OpAmp (RDSon); fortunatamente, ci sono ormai p-mosfet con una RDSon di poche decine di mΩ, anche con una VGS inferiore a -3V.

Domanda # 4) Le 2 diverse soluzioni qui sopra esposte sono entrambe valide, o una è migliore dell’altra?
Se si sceglie la soluzione del p-mosfet, e partendo dal presupposto che il condensatore di decoupling da 0,1µF tra AVSS e AVCC del MCU (C4, nei disegni qui sopra) è bene che sia il più possibile vicino al MCU stesso, si può posizionare il terminale di source del p-mosfet tra il condensatore C4 ed il condensatore C3 (sempre tra AVSS e AVCC del MCU)?

Tornando alla sorgente del segnale; un sensore, generalmente, ha la necessità di essere collegato a massa. Da un punto di vista teorico, credo che la soluzione ottimale (se si sceglie una configurazione come quella qui sopra, con un centro di stella di massa) sia quella di collegare il catodo del sensore direttamente al centro di stella.

Domanda # 5) Impiegando un OpAmp low-power (con Iq inferiore a 20 µA), si può pensare ad un collegamento in serie delle 2 masse (sensore e OpAmp, in questo modo: catodo del sensore - alimentazione negativa dell’OpAmp - centro di stella) oppure in questo modo si va a rovinare tutto il lavoro?

Filtraggio del segnale: un segnale analogico, tipicamente, trarrà grande giovamento da un circuito RC di filtraggio del segnale; tale circuito andrà posto tra il sensore (sorgente del segnale analogico) e l’OpAmp, in modo da amplificare il segnale solo dopo averlo “pulito”.
Leggendo il datasheet del 2553 (pag. 37), si può vedere come il modulo ADC10 abbia un condensatore di input del valore di 27pF, ed un resistore di input di 1KΩ; questi 2 elementi costituiscono già un filtro per il segnale analogico da campionare. Quando ho imparato ad utilizzare i microcontrollori (i Picaxe), avevo letto come mettere un condensatore di by-pass in prossimità del pin che riceve il segnale analogico sia un buon modo per migliorare la qualità del segnale. Di contro, ho letto che, negli MSP430 con ADC, non c’è bisogno di impiegare questo ulteriore condensatore (ulteriore, in riferimento al condensatore interno dell’ADC) a meno che non si abbia a che fare con una sorgente analogica caratterizzata da un’elevata impedenza. Per definizione, le uscite di un OpAmp dovrebbero essere a bassa (molto bassa) impedenza, quindi:

Domanda # 6) Nel momento in cui il segnale da campionare proviene da un OpAmp, si può omettere il condensatore di bypass in prossimità del pin del microcontrollore?
Grazie a chiunque avrà la pazienza di rispondermi.

Marco

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Blu
  • Junior Member
  • Junior Member
Di più
10 Anni 10 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic MSP430 e segnali analogici
Ciao Marco,

anche se hai numerato...qualche punto o dettaglio lo perdero'...! :)

I tuoi ragionamenti sono in generale validi ma cerchi probabilmente piu' performance di quelle che hai in realta'.

Tutti i diaccoppiamenti e accorgimenti che stai pensando valgono in generale qualora un ADC sia esterno.
Dal momento che l'ADC10 e' gia' interno al microcontrollore anche se i condensatori di bypass esterni aiutano a disaccoppiare le due alimentazioni analogiche e digitali, rimane il fatto che l'ADC e' a braccetto con il micrcocontrollore.

Le performace di un ADC10 bit interno ad un micrococontrollre (in generale per ogni ADC interno) sono inferiori ad un ADC esterno.

Detto questo:

1) La figura 3 potrebbe essere meglio. In gnerale cerca di far passare le linee di corrente direttamente sul condensatore, come per C3 e C4. Evita le tracce a T.

2) No e' meglio di no. Non so la tensione della batteria e in uscita dall'LDO, ma se la differenza raggiunge 0.4V-0.7V, hai un bel cortocircuito con i diodi di protezione ESD interni al microcontrollore.

3) Perche' non usare un piano di massa. In ogni modo se non hai grosse correnti in gioco non vedo grossi problemi nel tuo approccio,

4) Se vuoi proprio usare un transistor esterno cerca direttamente un op amp con enable.
Alimentando eventualmente l'operazionale con un pin I/O metti un filtro RC o un filtro T (se necessario).
Un CMRR di 80dB non e' difficile trovarlo ma a bassa frequenza. Nel caso tuo, il rumore del microcontrollore potrebbe avere contenuti ad alta frequenza. per cui e' meglio avere un filtro RC o T sull'alimentazione al fine di avere 20-40 dB aggiuntivi.
Se il guadagno dell'operazionale non e' alto (~10) non credo ci siano molti problemi con il rumore del micro. Se il guadagno e' 1000...qualche considerazione in piu' va fatta (ovvero un buon filtraggio).

5) Potrebbero essere collegati assieme ma potresti prevedere un filtro come nel caso 4.

6) Non capisco perche' dovresti togliere il condensatore. Le due cose sono separate.

Saluti,

Mauro
Ringraziano per il messaggio: Blu

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
10 Anni 10 Mesi fa - 10 Anni 10 Mesi fa #3 da Blu
Risposta da Blu al topic MSP430 e segnali analogici
Ciao Mauro, grazie per l’esauriente risposta.

Per il discorso del modulo ADC interno al microcontrollore; mi rendo conto che si tratta di una soluzione buona, ma non ottima. Sono rimasto molto soddisfatto di alcune prove che ho fatto con il 2553 in formato TSSOP, che non ha neanche le linee di alimentazione (digitale ed analogica) separate; il funzionamento era davvero ottimo, ma solo fintanto che il microcontrollore faceva solo quello; nel momento in cui gli facevo fare contemporaneamente qualche altra cosa, le cose peggioravano. Spero di notare un miglioramento col formato QFN.
Riguardo alla domanda n°1 del mio intervento precedente, quello che volevo chiedere riguardava più che altro il posizionamento del condensatore di input: avendo l’accortezza di far passare la linea di corrente direttamente sotto al “catodo” del condensatore di input dell’ LDO, è meglio posizionare il suo catodo sul centro di stella (come nel disegno #1), tra il centro di stella e la batteria (disegno #2) o a monte del centro di stella (disegno #3)?
Riguardo al piano di massa; per il momento sarei orientato a non usarlo, per lo più per motivi di costo; nel caso me ne servissi, sarebbe meglio impiegarlo per la massa digitale (come credo) o per la massa analogica?
Restando invece sulla filosofia del centro di stella di massa; nel mio progetto, conto di lavorare con un LDO da 2,5V, un assorbimento massimo inferiore a 1mA, ed il guadagno dell’operazionale sarà di circa 10. Nello schema qui sotto, riporto il condensatore posto sull’output dell’ LDO (non riporto l’ LDO), il microcontrollore, e tutti i componenti relativi al segnale analogico. Oltre al centro di stella di massa principale (sempre colorato in verde, sotto al catodo del condensatore di output dell’LDO), sono presenti 2 centri secondari, uno per la massa analogica (P3), uno per la massa digitale (P2), e credo (ma correggimi se sbaglio) che la regola generale sia che devono essere il più vicini possibile al centro di massa principale. Può andar bene?



Se possibile, vorrei chiederti alcune informazioni indicative riguardo ai valori dei condensatori e dei resistori.
Per la coppia R6 / C6, finora ho usato R = 1KΩ e C = 0,1μF; va bene?
Per la coppia R7 / C7, considerato che R1 = 100Ω e considerato che sicuramente è meglio non abbassare di troppo la tensione che alimenta l’OpAmp, che valori mi consigli? E' giusto collegare C7 alla massa analogica, o dovrebbe andare alla massa digitale?
Per la coppia R5 / C5, che valori mi consigli?
Una domanda sul condensatore C5; so che è meglio che si trovi il più vicino possibile al pin del microcontrollore (un po’ come i condensatori C4 sulle linee di alimentazione del microcontrollore): esiste una distanza (indicativa) oltre la quale perde troppo di efficacia?
Nel disegno qui sopra, ho considerato, come pin che riceve il segnale analogico da campionare, il pin P1.0, che è proprio a fianco alla linea di alimentazione digitale: è un errore? Lo chiedo perchè so che, ad esempio, sarebbe un errore porlo a fianco di un pin che invia un segnale in PWM, e non so se ci sono controindicazioni con il DVCC.
Scusa per le numerose domande, ma vorrei farmi realizzare alcune PCB su cui saldare i componenti; a differenza degli errori nella scrittura del codice (che mi ci vuole sempre ben poco tempo per corregerli), gli errori che precedono la realizzazione della PCB sono molto più difficli da eliminare.

Marco
Allegati:
Ultima Modifica 10 Anni 10 Mesi fa da Blu.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Blu
  • Junior Member
  • Junior Member
Di più
10 Anni 10 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic MSP430 e segnali analogici
Ciao,

per R6 e C6 dipende dalla banda del segnale.
Per piano di massa puoi usare il bottom layer senza aggiungere un altro layer.
Il centro stella lo stai portando un po' troppo al limite ed entri in conflitto con altre regole.
I condensatori di by pass devono stare il piu' vicino possibile alle alimentazione dell relativo integrato.
Distanze tipice, dicamo inferiori al cm.
C7 collegato in quel modo fa piu' danni che benefici, inietta interferenze e non fa il bypass.
Tutto il triangolo sulla sinistra potrebbe essere un piano di massa analogico.

Quando dicevo che la corrente di un condensatore di by pass deve atraversare il condensatore intendo che C4 e' ben collegato mentre C7 no.

Per R1 dipende dalla corrente necessaria dal sensore.
Fai R*I, calcoli la ddp, e il tutto deve rimanere entro specifica.

Che progetto e'?
E' per l'universita' o per lavoro?
...parli di costi e ti fai troppe domande per essere semplicemente un progetto per casa.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
10 Anni 10 Mesi fa #5 da Blu
Risposta da Blu al topic MSP430 e segnali analogici
Ciao Mauro,

abbi pazienza, il condensatore C7 non è che non è ben collegato, è proprio messo da schifo.
Si è trattato di un errore di distrazione, avrebbe dovuto essere collegato alla linea di massa che giunge al pin VSS dell'OpAmp.
Mi prendo qualche minuto di tempo per sbattere la testa al muro, poi lo correggo.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Blu
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro LaurentiMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login