Newsgroup: it.hobby.elettronica.digitale
Titolo: LADDER PER DAC LOGARITMICO

Come calcolereste una scala di resistenze pesate per realizzare un dac
logaritmico a 5 bit?
-- 
Ciao
Olmirko

 realizzare un dac logaritmico a 5 bit?
Non saprei... ma 5 bit sono solo 32 livelli... mi sembra piu' semplice fare
una tabellina di conversione lin->log da 32 bytes e usare un comune dac
lineare.
ciao
Claudio F

 ha scritto nel messaggio
news:XFX_c.261216$5D1.11...@news4.tin.it...


 Inoltre non voglio usare un dac.
Vabbe', per me il ladder e' sinonimo di dac ;)
ciao
Claudio F

 > In quel modo però i gradini rimangono spaziati male... ti trovi


 6 resistenze per ottenere un dac logaritmico?
Beh, questo non lo so ;)
ciao
Claudio F

 Y=8,9447*ln(X+1) con X da 0 a 31 e Y sempre da 0 a 31, ma con andamento
log.
Orbene: se a me interessa muovere, ad esempio quadraticamente, la mia Y
analogica (poniamo con uno sweep), ecco cosa dirà nel tempo la mia uscita
digitale (messa in ingresso a un dac lineare): 1, 2, 4, 8, 16, 32!
L'oscillogramma della mia tensione nel tempo apparirà come una metà parabola
ascendente (primo quadrante), ma il tutto sarà avvenuto in soli 5 step!!! Il
medesimo sweep, ma utilizzando tutti incrementi unitari, mi porta
invariabilmente ad una retta ascendente, e non a una parabola. E qui sono
perfettamente d'accordo che aumentando il numero di bit aumenterei la
risoluzione, ma io cinque ne ho. Ora, non volendo montare un dac integrato,
ad esempio uno in I2Cbus, e se, per questione di costi e semplicità, potessi
ottenere un ladder che si comporta secondo la funzione non lineare da me
ambìta, ad ogni sigolo incremento digitale (1,2,3,4...........) otterrei in
effetti un oscillogramma  con la funzione desiderata, e che peró si muove ad
ogni incremento unitario...
Il mio problema originario è di muovere linearmente, in 32 step, una
grandezza che si comporta quadraticamente quando pilotata linearmente in
tensione. In altre parole, quando la mia uscita digitale dice 31, la mia
grandezza finale deve essere al 50%. Lo posso fare muovendo
antiquadraticamente la tensione di pilotaggio. Ma se lo faccio attraverso
una tabella nel firmware e un'uscita digitale già antiquadratica, perdo di
risoluzione, poiché il primo step che devo fare, ad esempio salendo, è già
di ben 16 unità!!!!
               Sbaglio?
-- 
Ciao
Olmirko

ERRATA CORRIGE!!!
Ho scritto l'ennesima czzt:
"quando la mia uscita digitale dice 31, la mia
grandezza finale deve essere al 50%. "
Intendevo naturalmente dire:
"quando la mia uscita digitale dice 31, la mia grandezza finale deve valere
100%, mentre quando dice 15, deve valere 50%"
-- 
Ciao
Olmirko

 logaritmico a 5 bit?
Non c'è modo se poi intendi sommare i pesi....
Il valore delle resistenze pesate sono i soliti, quello che cambia è che non
devi sommare i pesi ma moltiplicarli.
Puoi usare una normale scala collegata non ad un amplificatore sommatore ma
ad un amplificatore logaritmico, se vuoi Vout=log(Valore).
O antilogaritmico, che è un logaritmico inserito nella controreazione, se
vuoi Vout=e^Valore
Ciao.
lucky
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 digitale dice 31, la mia grandezza finale deve essere al 100%.
Se il problema e' questo mi sembra solo una questione di fattore di forma
della curva, dopotutto 0..31 e' un range convenzionale... potrebbe benissimo
essere 1000..5000 e non fare nessuna differenza sul risultato che vogliamo
ottenere. Questo e' per dire che fare X^2 dove X e' la nostra grandezza
digitale non ha molto senso, ne ha di piu' fare aX^2, dove a e' un parametro
amplificatore/attenuatore che riporta il risultato a valori tali da ottenere
l'uscita desiderata... se voglio fare X^2 con uscita 100 in caso di X=31
faro': Y=0,10405827*X^2.
Nel caso si voglia usare un ladder lineare a 5 bit (in cui il 100% e' un
altro 31 digitale "prequadraticato" a firmware) avro' Y=0,032258064*X^2, e
l'uscita analogica arrivera' quadraticamente al 100% quando l'ingresso
arriva a 31.
Se non e' questo non ho capito un tubo ;)
ciao
Claudio F


Troppo sintetica l'esposizione. Il mio microcontrollore deve regolare più o
meno linearmente una potenza elettrica regolando una tensione. (purtroppo
anche il carico non è perfettamente lineare, ma questa è un altra storia:
per adesso consideriamola una resistenza)
Chiaro che, per fare ciò, devo incrementare la tensione in modo
antiquadratico. Però dalla tabella sopra si evince che con un dac lineare,
ad un estremo della scala un incremento che rispetti l'andamento
esponenziale richiede lo "spreco" di vari livelli digitali per un solo
gradino di variazione
(ok, ok non sono un campione di chiarezza espositiva...)
-- 
Ciao
Olmirko

 lucky
Grazie per il suggerimento!
-- 
Ciao
Olmirko

Aridaje...
Ri-errata corrige,
ho scambiato x con y nella tabella.
-- 
Ciao
Olmirko

 livelli digitali per un solo gradino di variazione
Ah, ma potevi dirlo subito ;)... vuoi evitare la quantizzazione sull'uscita,
in modo che per quanto piccoli siano i passi questi possano assumere
comunque un qualsiasi valore continuo tra 0 e 100%.
Occorerebbe, che so... un ladder logaritmico;)))
Credo allora che il tutto sia da fare in analogico dopo il dac lineare come
proposto da lucky.
ciao
Claudio F

 ha scritto nel messaggio
news:JtF%c.278349$5D1.12...@news4.tin.it...
