Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Le due uscite di corrente di un MDAC

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto UtenteDirtyDeeds, Foto UtenteIsidoroKZ, Foto Utenteg.schgor, Foto UtenteBrunoValente

0
voti

[1] Le due uscite di corrente di un MDAC

Messaggioda Foto Utenteboiler » 29 nov 2013, 17:19

Ciao a tutti

Qualcuno mi sa consigliare una buona introduzione ai multiplying DAC?
Credo che potrebbero fare quello che mi serve, ma non ne sono sicuro :-k

Nelle application note vedo che c'è sempre un opamp in uscita. In particolare mi interessa sapere cosa forniscono le due uscite di corrente SENZA opamp in uscita. Sembra essere un segreto militare :twisted:

Boiler
Avatar utente
Foto Utenteboiler
14,7k 4 7 13
G.Master EY
G.Master EY
 
Messaggi: 2522
Iscritto il: 9 nov 2011, 12:27

0
voti

[2] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utentesimo85 » 29 nov 2013, 19:20

boiler ha scritto:In particolare mi interessa sapere cosa forniscono le due uscite di corrente SENZA opamp in uscita.

Esistono i "Current output DAC" (ved. link). In alcuni casi infatti può essere comodo avere un' uscita in corrente e dimensionare un resistore di shunt per avere la tensione voluta.

In questa AN della Analog Devices viene citato, per esempio. un DAC AD55xx. Vedi appunto il datasheet dell' AD5543/53.
Avatar utente
Foto Utentesimo85
30,8k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9930
Iscritto il: 30 ago 2010, 4:59

1
voti

[3] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utentebanjoman » 29 nov 2013, 21:25

Le due uscite in corrente del DAC sono l'una il complemento dell'altra.

Chiamiamo I_{FS} la corrente di uscita massima di fondo scala (ovvero quando tutti i bit di ingresso sono posti a 1).

Sia I_o la corrente sul pin di uscita corrispondente quando uno o piu' bit dell'ingresso logico sono a 1: a mano a mano che il conteggio sull'input binario aumenta, aumenta proporzionalmente I_o.

Sia \bar{I_o} la corrente in uscita dal secondo pin di uscita: essa aumenta per ogni 0 logico applicato all'ingresso binario, o piu' precisamente, a mano a mano che il conteggio binario all'ingresso diminuisce, \bar{I_o} aumenta. E' in pratica il complemento logico dell'altra uscita.

Vale la relazione:
I_{FS}={I_o}+\bar{I_o}
Per essere ancora piu' comprensibile, diciamo che se il conteggio nell'input binario è a salire, allora I_o aumenta e \bar{I_o} diminuisce, fermo restando la relazione di cui sopra.

Entrambe le uscite possono essere utilizzate simultaneamente, oppure solo una delle due. Se una delle due uscite non serve, va connessa a massa oppure a un punto tale che sia in grado di erogare/assorbire la corrente massima I_{FS}in modo da chiudere il circuito di ritorno per la corrente di uscita.

E' chiaro che se si desidera avere una uscita variabile in tensione, è sufficiente collegare all'uscita una resistenza di valore opportuno.
Quando nel circuito di uscita si utilizza un operzionale, quest'ultimo agisce da convertitore corrente-tensione e contemporaneamente fornisce un'uscita a bassa impedenza. L'operazionale può essere in configurazione invertente (e allora fa da convertitore corrente/tensione), oppure semplicemente come buffer non invertente (e allora va applicata una resistenza di adatto valore come shunt all'uscita del DAC).

Molte altre informazioni si possono trovare sui datasheet. Un ottimo esempio è il DAC08 della Analog Devices che spiega molto bene quello che ho riassunto brevemente e molto altro.
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
7.198 5 8 11
Master EY
Master EY
 
Messaggi: 1130
Iscritto il: 19 set 2013, 19:27

9
voti

[4] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utentecarloc » 30 nov 2013, 9:37

mmm nella mia esperienza il convertitori come il DAC08 con uscite con generatori di corrente sono una rarità :D
cattura08.JPG
cattura08.JPG (48.79 KiB) Osservato 2420 volte


la stragrande maggioranza sono CMOS con la rete R/2R passiva come ad esempio questo :D
cattura0830.JPG
cattura0830.JPG (31.57 KiB) Osservato 2420 volte


Il tipo bipolare si può usare anche con una semplice resistenza come convertitore I/V, naturalmente si deve rispettare la voltage compliance, cioè lasciare abbastanza tensione ai capi dei generatori di corrente perché funzionino regolarmente.

Invece con il secondo tipo accadono cose piuttosto "divertenti" caricando le uscite... e l'unico modo per avere una relazione lineare tra codice e uscita sembra avere le uscite inchiodate a zero volt (o per lo meno a tensione costante e uguale tra loro) in due parole "non si può" ma... stay tuned ... sto scrivendo due righe :D
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,1k 5 11 13
G.Master EY
G.Master EY
 
Messaggi: 2118
Iscritto il: 7 set 2010, 19:23

0
voti

[5] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utenteboiler » 2 dic 2013, 10:56

Grazie Foto Utentecarloc e Foto Utentebanjomanper le delucidazioni. Ho buttato giú un circuitino che sto testando... sembrerebbe funzionare. Purroppo è relativamente complicato. Pensavo di poterlo semplificare, ma non parrebbe essere il caso.

Boiler
Avatar utente
Foto Utenteboiler
14,7k 4 7 13
G.Master EY
G.Master EY
 
Messaggi: 2522
Iscritto il: 9 nov 2011, 12:27

13
voti

[6] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utentecarloc » 2 dic 2013, 11:48

Sono contento che tu abbia trovato una soluzione, il comportamento di quel DAC con uscite non in corto più che un segreto militare è proprio un bel xasino :mrgreen:

Lo schema interno è grosso modo sempre questo....


gli N deviatori ovviamente impostano il codice da convertire.
Se le due uscite Ua e Ub sono a potenziale zero la cosa è molto semplice da studiare: la rete R/2R non "si accorge" di nessuna differenza qualunque sia la configurazione dei deviatori (sia Ua=0 che Ub=0 ;-) ), con alcuni semplici partitori di corrente ci si accorge che le correnti nei deviatori "vanno" come 2^n, le tensioni ai nodi V1,V2,...VN pure (tutte le resistenze "viste a destra" sono costanti ;-) ) e le correnti in uscita (all'amplificatore a transresistenza esterno) sono anche esse in progressione geometrica di due....

beh insomma questa descrizione la trovi un po' dappertutto anche meglio di così, ma se invece che succede se le uscite non sono a zero volt?

Io andrei a scrivere le tensioni V0,V1,V2...

La tensione V0 si scrive sovrapponendo U0 (che varrà o Ua o Ub in dipendenza da b0), V1 e Ub


V_0=\frac{1}{2}}V_1+\frac{1}{4}U_0+\frac{1}{4}U_\text{b}
o meglio

-2\,V_1+4\,V_0=U_0+U_\text{b}\qquad\qquad\text{(1)}

Poi passerei ad una delle generiche Vn "in mezzo alla rete"


anche qui sovrapponendo si può scrivere
V_{n}=\frac{2}{5}V_{n+1}+\frac{1}{5}U_{n}+\frac{2}{5}V_{n-1}
o meglio

-2\.V_{n+1}+5\,V_{n}-2\,V_{n-1}=U_{n}\qquad\qquad\text{(2)}

Non resta che l'ultimo "caso particolare" di quanto appena trovato, il bit N che ha a sinistra Vref...

e anche qui semplicemente

-2\,V_\text{ref}+5\,V_{N}-2\,V_{N-1}=U_{N}
o meglio

5\,V_{N}-2\,V_{N-1}=U_{N}+2\,V_\text{ref}\qquad\qquad\text{(3)}

Riassumendo quanto visto in forma un po' più compatta si potrebbe scrivere

\mathbf{M}\cdot \underline{V}=\underline{U}+\underline{B}+\underline{E}\qquad\qquad\text{(4)}

dove la matrice
\mathbf{M}=\begin{bmatrix}
4 & -2 & 0 & \ldots & \ldots & 0 \\
-2 & 5 & -2 & 0  &  \ldots  & 0\\
0 & -2 & 5      & -2 & 0 & \ldots \\
\vdots &   & \ddots & \ddots     & & \vdots\\
0 &\ldots & 0 & -2 & 5 & -2 \\
0 &\ldots & \ldots& 0 & -2 & 5
\end{bmatrix}
descrive il circuito.

Invece il vettore \underline{V}=(V_0,V_1,\ldots,V_{N})^\text{T} è la nostra incognita (le tensioni ai nodo interni del DAC)

il vettore \underline{U}=(U_0,U_1,\ldots,U_{N})^\text{T} definisce le tensioni ai comuni degli N deviatori (details ahead)

il vettore\underline{B}=(U_b,0,\ldots,0)^\text{T}=U_\text{b}\,(1,0,\ldots,0)^\text{T} poi considera il contributo Ub che si trova a destra nella (1).

infine il vettore \underline{E}=(0,\ldots,2\,V_\text{ref})^\text{T} definisce l'eccitazione vera e propria del circuito. la tensione di riferimento.

Al solito, prendendo la (4) e invertendo M otteniamo

\mathbf{M}\cdot\underline{V}=\underline{U}+\underline{B}+\underline{E}

\underline{V}=\mathbf{M}^{-1}\cdot(\underline{U}+\underline{B}+\underline{E})\qquad\qquad\text{(5)}


poi sul circuito completo


definendo il vettore delle correnti \underline{J}=(J_0,J_1,\ldots,J_N)^\text{T} è ovvio applicare la legge di Ohm e trovare

\underline{J}=\frac{1}{2R}(\underline{V}-\underline{U})

che con (5) diventa

\underline{J}=\frac{1}{2R}\Big(\mathbf{M}^{-1}\cdot(\underline{U}+\underline{B}+\underline{E})-\underline{U}\Big)=
\frac{1}{2R}\Big( (\mathbf{M}^{-1}-\mathbf{I})\cdot\underline{U}\;+\;\mathbf{M}^{-1}\cdot\underline{B}\;+\;\mathbf{M}^{-1}\cdot\underline{E}\Big)\qquad\qquad\text{(6)}

Direi ora di esplicitare meglio i U e B in funzione del codice da convertire e le tensioni Ua e Ub.
Per fare questo definiamo (sono le ultime prometto :D ...forse :mrgreen: ) un vettore che rappresenta il codice impostato nei deviatori.
Il vettore \underline{a} è una colonna di N elementi, ciascuno vale uno se il corrispondente deviatore convoglia la corrente nel bus di uscita a, vale zero altrimenti. Insomma si può leggere come un numero binario che rappresenta il codice da convertire.

In maniera complementare definisco anche \underline{b} che fa la stessa cosa per il bus di uscita b. Essendo che ovviamente un deviatore o seleziona il bus a o il bus b vale \underline{b}=\underline{1}-\underline{a}

Con queste definizioni si ha che
\underline{U}=U_\text{a}\,\underline{a}+U_\text{b}\,\underline{b}=U_\text{a}\,\underline{a}+U_\text{b}(\underline{1}-\underline{a})

sostituendo nella (6) abbiamo

\underline{J}=\frac{1}{2R}\Big((\mathbf{M}^{-1}-\mathbf{I})\cdot(U_\text{a}\,\underline{a}+U_\text{b}\big(\underline{1}-\underline{a})\big)+\mathbf{M}^{-1}\cdot\underline{B}+\mathbf{M}^{-1}\cdot\underline{E}\Big)

che riarrangiata sostituendo i vettori prima definiti e raggruppando Ua e Ub diventa

\underline{J}=\frac{1}{2R}\Big(U_\text{a}(\mathbf{M}^{-1}-\mathbf{I})\cdot\underline{a}\,+\,
U_\text{b}\Big((\mathbf{M}^{-1}-\mathbf{I})\cdot(2,1,\ldots,1)^\text{T}-(\mathbf{M}^{-1}-\mathbf{I})\cdot\underline{a}\Big)\,+\,\mathbf{M}^{-1}\cdot\underline{E}\Big)

che infine definendo...
(sono le ultime prometto :D ...forse :mrgreen: )

mentivo :oops: ... sapendo di mentire :mrgreen:

\mathbf{A}=\mathbf{M}^{-1}-\mathbf{I} la matrice che governa il contributo a J di Ua e Ub secondo il codice impostato, e...

\underline{K}=\mathbf{M}^{-1}\cdot(2,1,\ldots,1)^\text{T}-\underline{1} il vettore che governa un offset indipendente dal codice impostato...

otteniamo:

\underline{J}=\frac{1}{2R}\Big(U_\text{a}\mathbf{A}\cdot\underline{a}\,+\,U_\text{b}(\underline{K}  -\mathbf{A}\cdot\underline{a}    )\,+\,\mathbf{M}^{-1}\cdot\underline{E}\Big)\qquad\qquad\text{(7)}

ora aprirei una parentesi per notare una cosa che da molto mi aspettavo :D il circuito risponde ad una tensione in modo comune costante con un offset costante indipendente dal codice... se cambio la base che rappresenta le tensioni alle uscite

U_\text{a}=U_\text{c}+\frac{1}{2}U_\text{d}\qquad\qquad U_\text{b}=U_\text{c}-\frac{1}{2}U_\text{d}

ottengo

\underline{J}=\frac{1}{2R}\Big(U_\text{c}\,\underline{K}\,+\,U_\text{d}(\mathbf{A}\cdot\underline{a}-\frac{1}{2}\,\underline{K})\,+\,\mathbf{M}^{-1}\cdot\underline{E}\Big)\qquad\qquad\text{(7 bis)}

cioè quello che ho appena detto :ok: .


Ma torniamo a bomba al circuito, per quanto definito è facile vedere che la nostra corrente in uscita (diciamo Ia , ma Ib è la stessa zuppa) vale solo la somma degli elementi di J "convogliati" dai commutatori su quel bus, cioè

I_\text{a}=\underline{J}\cdot\underline{a}

da cui (finalmente :-) )

I_\text{a}=\frac{1}{2R}\Big(U_\text{a}\mathbf{A}\cdot\underline{a}\,+\,U_\text{b}(\underline{K}  -\mathbf{A}\cdot\underline{a}    )\,+\,\mathbf{M}^{-1}\cdot\underline{E}\Big)\cdot\underline{a}\qquad\qquad\text{(8)}

che insieme alle relazioni costitutive dei bipoli collegati in uscita

\begin{cases}
f_\text{a}(U_\text{a},I_\text{a})=0\\
f_\text{b}(U_\text{b},I_\text{b})=0
\end{cases}

ci permette di risolvere (o per lo meno provarci :mrgreen:) il circuito :D :D

Per ora la chiudo qui ma....
prossimamente su EY l'applicazione di quanto trovato in alcuni casi particolari :D :D, ma così per stuzzicare l'appetito....

* La matrice M per quanto "strana" invertita sembra avere alcune caratteristiche peculiari... more about this from our math dept

* Nel funzionamento "normale" del DAC l'unico termine non nullo di (8) è l'ultimo \mathbf{M}^{-1}\cdot\underline{E}

* tutti gli altri (se presenti) portano ad una equazione non lineare molto tosta
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,1k 5 11 13
G.Master EY
G.Master EY
 
Messaggi: 2118
Iscritto il: 7 set 2010, 19:23

0
voti

[7] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utenteboiler » 2 dic 2013, 13:53

Grandissimo rispetto! :ok:

Boiler
Avatar utente
Foto Utenteboiler
14,7k 4 7 13
G.Master EY
G.Master EY
 
Messaggi: 2522
Iscritto il: 9 nov 2011, 12:27

10
voti

[8] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utentecarloc » 3 dic 2013, 12:50

Beh intanto partirei da un caso semplice, entrambe le uscite a zero volt. Questo più che altro è un check almeno parziale di quanto scritto. Nell'ipotesi Ua=Ub=0V è molto, ma proprio molto, più semplice fare un'analisi diversa, tipo quella delineata all'inizio dell'altro post.

Partiamo allora da

\begin{cases}I_\text{a}&=\frac{1}{2R}\Big(U_\text{a}\mathbf{A}\cdot\underline{a}\,+\,U_\text{b}(\underline{K}  -\mathbf{A}\cdot\underline{a}    )\,+\,\mathbf{M}^{-1}\cdot\underline{E}\Big)\cdot\underline{a}\\
U_\text{a}&=0\\
U_\text{b}&=0
\end{cases}

e notiamo subito la bella "sfoltita"...

I_\text{a}=\frac{1}{2R}\Big(\mathbf{M}^{-1}\cdot\underline{E}\Big)\cdot\underline{a}

vediamo allora quella matrice.... per il momento lo farei vedendo un esempio, ma ci sono dei risultati eccezionali :D dal nostro math dept iOi iOi sull'inversione simbolica del caso generale (more about this soon on EY)

diciamo di avere un convertitore 4bit, con WxMaxima otteniamo
Nuovo Immagine bitmap.JPG
Nuovo Immagine bitmap.JPG (19.43 KiB) Osservato 2343 volte

visto poi il vettore \underline{E}=(0,0,0,2\,V_\text{ref})^\text{T} andiamo subito a vedere l'ultima colonna di \mathbf{M}^{-1} e...
Nuovo Immagine bitmap2.JPG
Nuovo Immagine bitmap2.JPG (10.78 KiB) Osservato 2343 volte

...e troviamo una bella colonna di potenze di due :D (direi che promette bene ;-) )

insomma arriviamo a

I_\text{a}=\frac{1}{2R}\left(\frac{2\,V_\text{ref}}{32},\frac{2\,V_\text{ref}}{16},\frac{2\,V_\text{ref}}{8},\frac{2\,V_\text{ref}}{4}\right)^\text{T}\cdot\underline{a}=
\frac{V_\text{ref}}{32R}\left(1,\,2,\,4,\,8\right)^\text{T}\cdot\underline{a}

esplicitando poi i singoli elementi di a abbiamo

\underline{a}=(a_0,\,a_1,\,a_2,\,a_3)^\text{T}\qquad\qquad a_i\in\{0,\,1\}

I_\text{a}=
\frac{V_\text{ref}}{32R}\left(a_0+2\,a_1+4\,a_2+8\,a_3\right)

e direi che già si intuisce la conversione, i pesi in successione di potenze di due mappano l'insieme dei possibili vettori a nella successione di naturali 0..15

\underline{a}_n\in\left\{
\left(\begin{array}{c}0\\0\\0\\0\end{array}\right),
\left(\begin{array}{c}1\\0\\0\\0\end{array}\right),
\ldots,
\left(\begin{array}{c}1\\1\\1\\1\end{array}\right)
\right\}\mapsto
n\in\{0,1,\ldots,15\}

insomma :D

\boxed{I_\text{a}=\frac{V_\text{ref}}{32R}n}

come del resto confermato pure da LTSpice...
Nuovo Immagine bitmap3.JPG
Nuovo Immagine bitmap3.JPG (17.29 KiB) Osservato 2343 volte

Ribadisco, fin qui un grandissimo UCAS :mrgreen: però almeno ora abbiamo gli strumenti per tentare l'assalto al "fortino" della R/2R caricata :D
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,1k 5 11 13
G.Master EY
G.Master EY
 
Messaggi: 2118
Iscritto il: 7 set 2010, 19:23

0
voti

[9] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utenteboiler » 4 dic 2013, 9:20

Ciao carloc

Posso chiedere come hai realizzato la cosa in LTSpice?
Voltage controlled switches e sorgenti con ritardo?

Grazie
Boiler
Avatar utente
Foto Utenteboiler
14,7k 4 7 13
G.Master EY
G.Master EY
 
Messaggi: 2522
Iscritto il: 9 nov 2011, 12:27

5
voti

[10] Re: Le due uscite di corrente di un MDAC

Messaggioda Foto Utentecarloc » 4 dic 2013, 9:52

Sì sì :D VCS e una rampa di tensione come ingresso e una table per ogni generatore ;-)

Nuovo Cartella compressa.zip
(1.8 KiB) Scaricato 44 volte


ma non credo proprio sia una buona idea per dimensioni sopra i pochi bit :? :? ogni tabella è lunga 2^N :( :(
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,1k 5 11 13
G.Master EY
G.Master EY
 
Messaggi: 2118
Iscritto il: 7 set 2010, 19:23

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 33 ospiti