lightspeed attenuator+progetto HiFun controllo pre

Progetti, domande e idee sparse sull'autocostruzione delle elettroniche
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Ciao,
perche`, un generatore di tensione con in serie una Rs >> Rload cos'e`?

Gli unici inconvenienti sono la minore efficenza (potenza dissipata su Rs) e la necessita` di una tensione di alimentazione piu` elevata.

Quant'e` l'impedenza dei nostri LED quando conducono (max/min), e quindi quanto grande dovrebbe essere Rs?
Prima di tutto il led non è una resistenza :D e bisogna tener conto anche della caduta sulla giunzione (che per esperienza può variare abbastanza e quindi già ti frega in quanto non puoi stabilire "a priori" l'eventuale compensazione), inoltre rischi di dover usare tensioni di alimentazione piuttosto elevate per poter fornire la corrente massima.
In effetti, credo che la soluzione che non mi sono mai tolto dalla testa sia quella di "evitare" il partitore rendendo Rs trascurabile rispetto alla resistenza da misurare... visto che non dobbiamo misurare resistenze molto basse, Rldr>=100, e` semplice. Basta mettere Rs<=1. La tensione sull'LDR sara` sempre circa uguale a quella impostata sul DAC (con Rs=1 ==> 1% di errore max a 100 ohm, 0.1% ad 1k, 0.01% a 10K, etc...). La corrente la si legge ai capi di Rs con un differenziale la cui uscita va` all'ADC ed il gioco e` fatto.
Vediamo.. considerando 20mA (20 mV su 1 Ohm) di fondo scala (1V su 50 Ohm, condizione paragonabile al sisyema proposto da me) il guadagno necessario per il differenziale è 250 (per arrivare a 5V).
Le correnti minime di misura di Rldr possono scendere sotto i 50uA (per 100k)... risultato misuri 12.5mV all'ADC (cioè 3 lsb). Non mi sembra che la risoluzione abbondi. Per non parlare di eventuali offset....

Comunque se tu credi in questo metodo fai un dimensionamento di massima e poi vediamo. Magari mi sfugge qualcosa.
Io qualche numero l'ho buttato giù, ora tocca a te.
Pero` questo non viene affatto gratis, perche` si complica ancora di piu` il firmware: cosi` facendo dobbiamo x forza gestire una qualche se pur minimale interfaccia utente interattiva per le calibrazioni, dovendo quindi "passare" in quache modo per la scheda principale che gestisce tasti e display.
Possiamo sempre metterci dei relè :D
non ti seguo... (sara` il caldo?!)
Ti stavo dando ragione....
eh, ma che uomo di poca fede...
In certi posti dicono "prima vedere cammello...."
mmmmh... sara` il caldo, ma ho l'impressione che stai ragionando "al contrario"... noi conosciamo la Rldr che vogliamo ottenere ed abbiamo bisogno di determinare il corrispondente valore da dare al DAC, cioe` ci serve di determinare la funzione DAC=f(Rldr). Non converrebbe quindi invertire gli assi e partire ponendo X=Rldr ed Y=DAC ?
In effetti è vero, le formule comunque sono sempre quelle.
Mi ero lasciato condizionare dal meccanismo causa-effetto (Rldr dipende da Iled nella realtà) e da come sono inpostate le equazioni sul sito della Silonex (R funzione di Iled).

Ciao

Andrea
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Ecco le formule per l'interpolazione di secondo grado (parabola per 3 punti)

Dati 3 punti di coordinate (X1,Y1), (X2,Y2) e (X3,Y3), i coefficienti della parabola di equazione

y = ax^2 + bx +c
passante per essi sono:

a = (X1*(Y2-Y3)+X2*(Y3-Y1)+X3*(Y1-Y2))/((X2-X1)*(X3-X1)*(X3-X2))
b = -(X1^2*(Y2-Y3)+X2^2*(Y3-Y1)+X3^2*(Y1-Y2))/((X2-X1)*(X3-X1)*(X3-X2))
c = -(X1^2*(X2*Y3-X3*Y2)+X1*(X3^2*Y2-X2^2*Y3)+X2*X3*Y1*(X2-X3))/((X2-X1)*(X3-X1)*(X3-X2))

Molto più complicate rispetto all'interpolazione di primo grado.
Ovviamente per usarle occorre lavorare con matematiche floating point.

Ciao

Andrea
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

Prima di tutto il led non è una resistenza :D
xche`, in un LED il rapporto V/I e` indefinito?! :grin: ...non sara` certo lineare, ma ovviamente e` definibile punto x punto. Per questo chiedevo max e min "R". :D

BTW, fatti due conti... concordo con te. Per avere prestazioni decenti dovremmo salire decisamente troppo con alimentazione (e dissipazione!). Vada senza dubbio per il CCS.

Alcuni link interessanti in merito:

http://www.maxim-ic.com/appnotes.cfm/an_pk/3464

http://www.edn.com/index.asp?layout=art ... A46969&1=1

http://www.edn.com/article/CA321804.html

http://www.epanorama.net/links/psu_current.html

Vediamo.. considerando 20mA (20 mV su 1 Ohm) di fondo scala (1V su 50 Ohm, condizione paragonabile al sisyema proposto da me) il guadagno necessario per il differenziale è 250 (per arrivare a 5V).
Le correnti minime di misura di Rldr possono scendere sotto i 50uA (per 100k)... risultato misuri 12.5mV all'ADC (cioè 3 lsb). Non mi sembra che la risoluzione abbondi. Per non parlare di eventuali offset....
per quello subito dopo dicevo di adottare correnti diverse per "range" diversi ed eventualmente Rs molto piu` alte (~1K), di cui ovviamente tenere conto nei calcoli (almeno fin dove e` rilevante). In pratica l'idea era di combinare il range dinamico del DAC (16bit) che fornisce Vref con quello del ADC (10bit) che legge la corrente per "starci dentro" piu` agevolmente ed aumentare la risoluzione.

BTW, nel file Immagine Allegato: Lightspeed_calib.zip ( 34100bytes )

ho buttato giu` due conticini x valutare varie opzioni possibili. Vediamo quali...

Una alternativa e` quella di tornare all'idea di usare un CCS per iniettare una corrente predefinita nel LDR e leggere direttamente Vout==Vldr con l'ADC oppure con un comparatore su "n" livelli (per "cambiare scala"). Nel file in attach ci sono un po` di conti per due possibili alternative in questo senso.

Nel primo foglio, "CCS e ADC", si usa un CCS programmabile su "n" livelli prestabiliti (nel file ne ho usati 4 decadici, da 5uA a 5mA) e l'ADC per misurare la tensione.

Nel secondo foglio, "PCCS e comp.", si procede in maniera inversa utilizzando invece un CCS controllato da un DAC a 16bit (cioe` lo stesso che utilizziamo per pilotare i LED) ed un comparatore programmabile su "n" livelli (ancora una volta ne ho usati 4, in questo caso da 0,2V a 20V). Ovviamente, in luogo del comparatore programmabile si possono utilizzare "n" comparatori fissi oppure ancora l'ADC (controllando le "soglie" via software).

I maggiori limiti di queste opzioni sono soprattutto risoluzione e precisione effettive del CCS stesso... che, ovviamente, per non introdurre errori significativi ai valori piu` alti dovrebbe avere anche una Zout>10Mohm ed una compliance (max vout) la piu` alta possibile.

Le altre opzioni prevedono invece l'uso di un generatore di tensione "Vref" in serie con una Rs.

Nel terzo foglio, "DAC e ADC" c'e` una bozza dell'idea di utilizzare il DAC per Vref e l'ADC per misurare la corrente per mezzo del "solito" differenziale su Rs.

Nel quarto foglio, "Prog Vref e ADC", si prevede invece l'uso di un regolatore di tensione "programmabile" su "n" livelli per effettuare il cambio di scala, tenendo Rs fissa e misurando la corrente con l'ADC per mezzo del "solito" differenziale su Rs.

Infine, nell'ultimo foglio, "Switched RS", c'e` la tua idea... si tiene costante Vref e si cambia Rs, misurando Vout con l'ADC.


Che dire... provate a giocare un po` con le varie opzioni... poi vediamo di deciderci.

Non converrebbe quindi invertire gli assi e partire ponendo X=Rldr ed Y=DAC ?
In effetti è vero, le formule comunque sono sempre quelle.
ovviamente, finche` restiamo in un sistema lineare... :D

BTW: ho visto le equazioni che hai postato... dubito che un PIC ci permetterebbe di fare tutti quei conti con una precisione adeguata.

Direi comunque che una serie di spezzate scelte con cura dovrebbero essere piu` che sufficenti. Stavo quindi pensando all'algoritmo da usare in fase di calibrazione...

l'idea e` questa:

prendiamo due punti abbastanza vicini e calcoliamo la nostra retta;

sulla base di questa calcoliamo un terzo punto piu` avanti, e confrontiamo il valore reale (misurato) con quello "predetto" (calcolato).

Se i due valori sono sufficentemente vicini, ripetiamo la cosa fintanto che lo scostamento (errore) non supera una certa soglia.

A quel punto torniamo un po` indietro (e.g. al punto precedente), ricalcoliamo la nuova pendenza e reiteriamo il tutto.

In questo modo dovremmo riuscire ad ottenere la max precisione possibile con un numero minimo di segmenti. :?:


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

Avevo dimenticato una opzione... forse la piu` ovvia: utilizzare Vref ed Rs costanti e commutare invece l'ADC per misurare alternativamente Vout (per Rldr < Rs) e Vrs (per Rldr > Rs).

Ho aggiornato lo spreadsheet aggiungendo un foglio...

Immagine Allegato: Lightspeed_calib.zip ( 43007bytes )

...e con questa credo che stavolta le opzioni ci siano tutte. :D


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Ciao,
xche`, in un LED il rapporto V/I e` indefinito?! ...non sara` certo lineare, ma ovviamente e` definibile punto x punto. Per questo chiedevo max e min "R".
Ovviamente non lo è ma non è caratterizzabile con la precisione necessaria in maniera ripetibile (cioè la variazione da esemplare a esemplare non è nota e può essere elevata)

Bene per il file di excel ( a proposito la scritta MSB è sbagliata se intendevi "full scale range" come sembra) ma occorre definire due cose:

-Uno schema applicativo per ogni soluzione, in modo da valutarne la complessità realizzativa ed eventuali problematiche

-Un indicatore di merito che tenga conto di tutti i fattori.

Esempio : la colonna diff(%) indica la variazione percentale del valore convertito a fronte di un incremento noto (10%) della resistenza.
A prima vista i valori migliori sono quelli che tendono a 10 ma in realtà possiamo vedere che, a parte i CCS, i valori "migliori" si ottengono quando il valore convertito è composto da pochi LSB, per cui questo fattore da solo vuol dire poco.

In linea di massima io vedrei:
- Valore convertito composto da un numero elevato di LSB (minimo 200) per contenere l'errore di quantizzazione allo 0.5% massimo (colonna n*LSB Vrs) [RISOLUZIONE]
- Numero di LSB tra un valore e l'altro di resistenza adeguato (colonna diff Vrs) [SENSIBILITA']
-"Peso" in ohm del LSB che cambi in maniera graduale per mitigare problemi dovuti ad eventuali errori sistematici (coi CCS a step, ad esempio, il peso del LSB varia del fattore tra le correnti dei vari step); se ci fosse un offset di un paio di LSB sull'ADC l'errore varierebbe di step grandicelli, specie a resistenze alte. [ROBUSTEZZA]

Avete altre idee?

Una volta deciso cosa è effettivamente importante la scelta sarà più facile.

Ciao

Andrea
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

xche`, in un LED il rapporto V/I e` indefinito?! ...non sara` certo lineare, ma ovviamente e` definibile punto x punto. Per questo chiedevo max e min "R".
Ovviamente non lo è ma non è caratterizzabile con la precisione necessaria in maniera ripetibile (cioè la variazione da esemplare a esemplare non è nota e può essere elevata)
si`, certo... ma la domanda era intesa solo a stabilire un'ordine di grandezza, non una caratterizzazione precisa: era solo per valutare quanto grandi dovessero essere tensione di alimentazione e resistenza serie per avere una precisione sufficente. BTW, visto che abbiamo gia` deciso di optare x il CCS, ormai e` un discorso ozioso...
Bene per il file di excel ( a proposito la scritta MSB è sbagliata se intendevi "full scale range" come sembra)
auff, come sei pignolo... :) comunque si`, hai ragione. Avrei dovuto scrivere "%fs", visto che di quello si trattava.
ma occorre definire due cose:

-Uno schema applicativo per ogni soluzione, in modo da valutarne la complessità realizzativa ed eventuali problematiche
mmmh... a prima vista, le soluzioni sono tutte abbastanza semplici... fondamentalmente sono i "dettagli" che possono renderle piu` o meno complicate. Se ora pero` ci mettiamo ad esplorare i dettagli di tutte le opzioni possibili, rischiamo di non finirla piu`! Quindi, direi che prima sia il caso di "restringere il tiro" alle sole soluzioni migliori (o quantomeno accettabili) dal punto di vista dei risultati ottenibili e solo a quel punto studiarne la complessita` per decidere quale implementare in pratica.
-Un indicatore di merito che tenga conto di tutti i fattori.
mmh, facile a dirsi... bisogna trovare il modo di combinare coerentemente tutti i parametri "pesandoli" correttamente... se hai gia` qualche idea, prova a buttarla giu`, altrimenti vedro` di provare ad inventarmi qualcosa.
Esempio : la colonna diff(%) indica la variazione percentale del valore convertito a fronte di un incremento noto (10%) della resistenza.
A prima vista i valori migliori sono quelli che tendono a 10 ma in realtà possiamo vedere che, a parte i CCS, i valori "migliori" si ottengono quando il valore convertito è composto da pochi LSB, per cui questo fattore da solo vuol dire poco.
infatti, non a caso ho messo anche gli altri... :D e magari me ne sono anche scordato qualcuno.
-"Peso" in ohm del LSB che cambi in maniera graduale per mitigare problemi dovuti ad eventuali errori sistematici (coi CCS a step, ad esempio, il peso del LSB varia del fattore tra le correnti dei vari step); se ci fosse un offset di un paio di LSB sull'ADC l'errore varierebbe di step grandicelli, specie a resistenze alte. [ROBUSTEZZA]
ok, intanto ho aggiunto le colonne "ohm/lsb" e "% ohm/lsb"... (btw: date una occhiata anche alle formule, andavo di fretta...).

Immagine Allegato: Lightspeed_calib.zip ( 61948bytes )


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Ciao,
reply veloce prima di andare a nanna....

Le formule sembrano OK, la % ohm/lsb (indice della risoluzione dell'ADC) bastava ricavarla come 100/n*LSB.

Ho rispolverato la Vref variabile più Rs sfruttando l'idea iniziale di lavorare con V(ADC) costante (se possibile), in modo da massimizzare la risoluzione dell'ADC.

Il risultato mi sembra più che degno.
Il foglio di excel permette di ottimizzarlo ulteriormente.
Coi dati impostati (DAC 16 bit, max 15V e Rs 400 Ohm) abbiamo un comportamento più che buono, con precisione di lettura di poco più dello 0.1% tipica e max 0.5% a 250kOhm.

Che dite l'accendiamo ? :D

Ovviamente comporta che in uscita al DAC vero e proprio avremo un ampli con guadagno 3 per la calibrazione e un VCCS per il pilotaggio del led.
Ho provato a vedere se si poteva adoperare il resistore serie anche per pilotare i led con una dinamica ragionevole (range di correbti in uno span di Vdac di qualche volt almeno) ma la Rs dissiperebbe troppo (8W)

Ciao

Andrea


Immagine Attachment: Vref R optimized.zip ( 7641bytes )
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

Le formule sembrano OK, la % ohm/lsb (indice della risoluzione dell'ADC) bastava ricavarla come 100/n*LSB.
eh, lo sapevo che la fretta e` cattiva consigliera... va beh, se non altro non ci ho messo ca....e. :D
Coi dati impostati (DAC 16 bit, max 15V e Rs 400 Ohm) abbiamo un comportamento più che buono, con precisione di lettura di poco più dello 0.1% tipica e max 0.5% a 250kOhm.
mmh, hai tenuto conto anche della precisione di Vref (i.e. DAC+ampli) oltre che del ADC?

Per come hai impostato la cosa, stai sfruttando il range dinamico del DAC mentre l'ADC e` quasi superfluo... (se aumentiamo un po` il guadagno dell'ampli e la tensione di alimentazione e/o abbassiamo un po` la tensione "Vadc" si puo` anche mettere un semplice comparatore al posto dell'ADC). Il problema pero` e` comunque la precisione di Vref... specie ai valori piu` bassi di Rldr, dove la differenza tra un valore ed il successivo diventa di pochi LSB... :?:

BTW, non so` se l'avete visto: http://www.diyaudio.com/forums/showthread.php?postid=1266650#post1266650

in effetti, aggiungere una R fissa in parallelo agli LDR potrebbe essere una buona idea... non fosse che ci scombinerebbe tutto. :(


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Ciao,
mmh, hai tenuto conto anche della precisione di Vref (i.e. DAC+ampli) oltre che del ADC?
Ho tenuto conto solo dell'ADC per questa stima ma la colonna "DAC Value" indica il valore da impostare (è corrisponde al numero di LSB del DAC).
Il valore minimo è >250, per cui al peggio l'errore "DAC" è < dello 0.5% (trascurando l'errore dell'ampli)

In realtà possiamo ricuperare qualcosa tenendo conto che il DAC usa valori interi per cui la Vadc varierà (poco a dire il vero) di consegenza.

E' vero che sfruttiamo poco la dinamica dell'ADC ma IMO ci puo dare un risultato più corretto e poi già c'è.
La dinamica del DAC è più ampia e sfruttandola a pieno si riesce a fare tutto ragionevolmente.

Usando una Rs da 200 Ohm migliora un poco la situazione a bassi valori di resistenza senza pregiudicare particolarmente le resistenze alte (Almeno a prima vista).

Comunque se vuoi giocare con gli spreadsheet sei il bevenuto. La soluzione migliore vince ;-)
Io purtroppo non ho molto tempo per fare prove ora.
in effetti, aggiungere una R fissa in parallelo agli LDR potrebbe essere una buona idea... non fosse che ci scombinerebbe tutto.
Mah, credo che sia una complicazione inutile andare a lavorare nella zona con caratteristica meno controllata (led vicino allo spegnimento, dove entrano pesantemente in gioco le tolleranze delle Vjunction) per poi riportarsi in un range di resistenza che già di suo è più controllato....

Ciao

Andrea
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

Ho tenuto conto solo dell'ADC per questa stima ma la colonna "DAC Value" indica il valore da impostare (è corrisponde al numero di LSB del DAC).
Il valore minimo è >250, per cui al peggio l'errore "DAC" è < dello 0.5% (trascurando l'errore dell'ampli)
Per me va` anche bene... certo pero` che questa e` la soluzione + complessa sia dal punto di vista hardware (dobbiamo aggiungere il differenziale su Rs e l'ampli in uscita al DAC) che da quello software (dobbiamo tenere conto non solo del valore del DAC ma, da un certo punto in poi, anche di quello dell'ADC).
Comunque se vuoi giocare con gli spreadsheet sei il bevenuto. La soluzione migliore vince ;-)
l'opzione che mi piacerebbe di piu` sarebbe usare DAC+CCS e leggere Vout, perche` sarebbe la piu` semplice da implementare dal punto di vista hardware: un CCS preciso ce lo dobbiamo mettere comunque per pilotare i LED e, leggendo Vout, non dobbiamo aggiungere altro se non al piu` un attenuatore fisso per riportare Vout nel range del ADC. Per quanto riguarda la precisione -se riusciamo a mettere insieme un CCS adeguato- non ci dovrebbero essere differenze significative rispetto all'altro metodo... :?:


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Per me va bene anche il VCCS, ci mancherebbe.
Anzi è la soluzione che preferivo inizialmente.

Il "problema" che ha il circuito da me proposto è che abbiamo, ad alti valori di impedenza, un errore sulla corrente dovuto all'impedenza della R da misurare che diventa comparabile con la R sul ramo di retroazione positivo, dove va a finire un po' della corrente che dovrebbe andare in R.

Mentre scrivevo sta' cosa, ecchecca**o (non ci avevo mai pensato!), la soluzione diventa ovvia!!
Invece di un opamp singolo ne usiamo uno doppio adoperando il secondo opamp per leggere la tensione sul nodo incriminato e il problema sparisce (beh almeno quasi...)

Usando un opamp di precisione le cose sono ancora migliori.

Tirando le somme, col VCCS modificato l'unico problema rimane il range di correnti che è troppo ampio per poter usare una Rs (R1) sola.
Le correnti necessarie sono più alte nel caso del led e più basse per la calibrazione, per cui potremmo usare 1k per la calibrazione e 200 per il pilotaggio led.

Coi valori in figura abbiamo un rapporto di 1mA/V in calibrazione (5mA max, pari a 250mV su 50 Ohm e 500mV su 100 Ohm, pari a 52 e 104 LSB).
Per misurare una R da 100k il DAC deve fornire 50mV (per rimanere nei 5V dell'ADC, comunque >800 LSB per un 16 bit)

[Edit: tenendo conto della cosa si potrebbe usare 2mA/V in calibrazione]

In pilotaggio led abbiamo 5mA/V, max 25mA con 5V sul DAC.

Immagine

Commenti?

Ciao

Andrea

edit 2: se l'opamp riesce a fornire la corrente necessaria il BJT può essere omesso
Avatar utente
marziom
sostenitore
Messaggi: 3253
Iscritto il: 24 nov 2005, 18:06
Località: Ciociaria
Been thanked: 2 times
Contatta:

Messaggio da marziom »

scusate....ma in questo periodo sto molto impicciato....e non posso aiutare...speriamo dopo questa settimana d'inferno.

marzio

_____________________
Se con 10 milioni di transistor non riesci a fare tutto sei un p**la!
_____________________
So di non sapere. Socrate
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

Per me va bene anche il VCCS, ci mancherebbe.
Anzi è la soluzione che preferivo inizialmente.
OK, forse finalmente cominciamo a convergere... ; )
Commenti?
uno si`... buona l'idea del workaround con il secondo op-amp, ma perche` ti vuoi complicare la vita con la HCP? Non abbiamo bisogno di un VCCS "bipolare" (source & sink): tanto x il pilotaggio dei LED che x la calibrazione a noi basta una sorgente di corrente... :)

non potremmo piu` semplicemente utilizzare un uno schema tipo quello adottato qui`: http://www.maxim-ic.com/appnotes.cfm/an_pk/3464
con il solo feedback negativo in corrente "diretto" anziche` avere bridge + o - critici tra i piedi? :?:


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

E' vero che non ci serve un VCCS bipolare (che avremmo solo con Vref negativa comunque e senza BJT) )ma il vantaggio della Howland current pump è che Vref è riferito a massa e non a Vcc, che deve essere maggiore di 5V per il drop-out su Rs e sul combo MOS-operazionale.
Quindi ti serve un circuito che adatti l'uscita del DAC all'ingresso del generatore.

A dire il vero continuo a proporla perchè so' de coccio :D .. in realtà l'ho usata in un progetto per lavoro, ho eseguito simulazioni estensive e il circuito si comporta come previsto. :D
E poi non i sembra così complicata (1 precision opamp duale e 5 resistenze, più eventualmente un BJT).....

Per quanto riguarda la "stabilità" del ponte lavorando con un rapporto "in discesa" tra le resistenze (la res. di feedback ad esempio metà dell'altra) l'errore sulle resistenze si ripercuote attenuato sulla corrente di uscita, per cui tanto critico non mi sembra....

Ciao

Andrea
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

l'ho usata in un progetto per lavoro, ho eseguito simulazioni estensive e il circuito si comporta come previsto. :D
beh, di solito e` questo che succede con i circuiti che funzionano... ; ) :D

BTW, se dobbiamo usare 2 op-amp, IMHO questa soluzione forse e` meglio:
http://www.edn.com/article/CA321804.html
http://www.edn.com/contents/images/321804.pdf

...si risparmiano ben due R! :D

invece, un'idea che potrebbe essere molto interessante (sostituendo Ic1 con il DAC) e` questa:
http://www.edn.com/index.asp?layout=articlePrint&articleID=CA46969
http://www.edn.com/contents/images/62200di.pdf

che ne pensi?


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Ciao,
la prima mi sembra valida ma usa un instrumentation amp, che costa sicuramente di più.
Inoltre non sembra avere il range che ci serve, bisognerebbe verificare facendo dei conti. Se vuoi verificare... :) io domani parto per lavoro.

La seconda è a corrente fissa (LM317 serve solo da pre-regolatore a quanto vedo), che ce ne facciamo??

Ma ti fa proprio schifo la Howland? ; )

Ciao

Andrea
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

la prima mi sembra valida ma usa un instrumentation amp, che costa sicuramente di più.
non vorrei dire cavolate ma, se non vado errato, li` hanno usato l'instrumentation amp solo per esigenze di precisione in quanto quell'esempio e` pensato per coprire correnti nell'ordine dei nA (nota la R3 da 10M!). Nel nostro caso penso che si possa usare anche un op-amp normale... :?:
Inoltre non sembra avere il range che ci serve, bisognerebbe verificare facendo dei conti.
per quanto riguarda il range, direi che tutto dipende dal dimensionamento, non vedo xche` non possa essere ricalcolato per coprire il range che ci interessa. Se mi riesce di trovare un attimo di tempo, provero` a fare qualche simulazione...
La seconda è a corrente fissa (LM317 serve solo da pre-regolatore a quanto vedo), che ce ne facciamo??
ahem... rileggi quello che ho scritto: "sostituendo Ic1 con il DAC". Pero` devo dire che mi sono espresso... proprio male, xche` in effetti l'idea mi e` si` venuta guardando quello schema, ma con quello alla fine non ha piu` praticamente nulla a che fare. In sostanza avevo pensato di usare un LM317 con il DAC in modo da stabilire Iout=(Vdac+1.25)/R. Pero`, riguardando il datasheet, direi che decisamente non fa` al caso nostro... la corrente minima x il corretto funzionamento e` di gran lunga troppo elevata.
Ma ti fa proprio schifo la Howland? ; )
no, e` solo che non mi sembra la soluzione migliore per questa particolare applicazione. Andrebbe bene per il pilotaggio dei LED, ma non mi sembra la piu` indicata x le calibrazioni.

BTW: se guardi la tua soluzione al problema dell'impedenza, prova a pensare: se attacchi entrambi gli ingressi dell'op-amp "aggiunto" ai capi di R1, all'uscita ti ritrovi una tensione proporzionale alla corrente in uscita... a questo punto basta collegarla sull'ingresso dell'altro op-amp in modo che la fase sia quella giusta (i.e. feedback negativo in corrente/tensione) ed hai il risultato voluto. Il "ponte" non serve piu`...

Daltronde, se ci pensi bene, nella HCP il ponte di resistenze serve unicamente a collegare entrambi gli ingressi dell'op-amp ai capi della resistenza di sense, in modo che l'ampli lavori in differenziale su di essa con un determinato guadagno...

cioe` se vogliamo serve a poter usare un solo op-amp anziche` due. :D Ma se dobbiamo comunque mettercene due per problemi di Zout, allora IMHO il ponte non ha piu` senso di esistere. Tanto vale mettere un op-amp ai capi della Rs e con l'uscita di questo fare un normale loop di NFB in tensione intorno all'altro.


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Ciao,
non vorrei dire cavolate ma, se non vado errato, li` hanno usato l'instrumentation amp solo per esigenze di precisione in quanto quell'esempio e` pensato per coprire correnti nell'ordine dei nA (nota la R3 da 10M!). Nel nostro caso penso che si possa usare anche un op-amp normale...
L'instrumentation amp è usato perchè è un buon differenziale. Un opamp "classico" lo è molto meno. Usare un opamp "normale" in differenziale comporta l'uso di 4 resistenze in più che poi sono anche loro un "ponte".
Allora è meglio usare un opamp da strumentazione.
per quanto riguarda il range, direi che tutto dipende dal dimensionamento, non vedo xche` non possa essere ricalcolato per coprire il range che ci interessa. Se mi riesce di trovare un attimo di tempo, provero` a fare qualche simulazione...
E' quello che intendevo. Se si può fare con la HCP si può fare anche con questa, basta trovare i valori corretti. Domani parto per una settimana (di lavoro :x ) all'estero, gioca un po' coi simulatori.
no, e` solo che non mi sembra la soluzione migliore per questa particolare applicazione. Andrebbe bene per il pilotaggio dei LED, ma non mi sembra la piu` indicata x le calibrazioni.
A questo punto mi piacerebbe sapere le motivazioni tecniche. Le simulazioni dicono che può funzionare bene, cosa ti preoccupa?

Cmq se riesci a trovare una soluzione che copra tutto il range con la precisione necessaria ben venga.

Ciao

Andrea
Avatar utente
UnixMan
sostenitore
Messaggi: 12113
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 82 times
Been thanked: 49 times

Messaggio da UnixMan »

Usare un opamp "normale" in differenziale comporta l'uso di 4 resistenze in più che poi sono anche loro un "ponte".
Allora è meglio usare un opamp da strumentazione.
hai ragione. BTW: ho dato una occhiata, con 3-5 Euro al pezzo c'e` una buona scelta di instrumentation amp anche su RS... x cui direi che 2 per canale ce li possiamo anche permettere. :)
A questo punto mi piacerebbe sapere le motivazioni tecniche. Le simulazioni dicono che può funzionare bene, cosa ti preoccupa?
lo hai detto tu stesso, l'imp. di uscita... non ho esperienze dirette (e non sono ancora riuscito a trovare il tempo per fare le simulazioni :( ), ma dovunque abbia letto parlano sempre di criticita` e/o problemi vari quando si devono ottenere Zout molto alte con la HCP. Boh...

BTW, vedro` di fare al + presto almeno un po` di simulazioni...


Ciao,
Paolo.
Ciao, Paolo.

«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
andypairo
sostenitore
Messaggi: 689
Iscritto il: 03 nov 2005, 23:17
Località: Italy

Messaggio da andypairo »

Ciao a tutti,
rientro in ufficio (spero per un po'!) dopo un delirio di trasferte e (meritate) ferie, ci sono degli sviluppi?

Ciao

Andrea
Rispondi
  • Argomenti simili
    Risposte
    Visite
    Ultimo messaggio