lightspeed attenuator+progetto HiFun controllo pre

Progetti, domande e idee sparse sull'autocostruzione delle elettroniche
Avatar utente
UnixMan
sostenitore
Messaggi: 12086
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 77 times
Been thanked: 47 times

Messaggio da UnixMan »

Scusa ma non ho capito come pensi di leggere la corrente per valutare l'impedenza.
e.g. banalmente con una piccola resistenza di sense in serie alla Vref...
Inoltre variando le correnti nei led andiamo a modificare l'impedenza stessa, per cui boh...
mi riferivo all'impedenza "nominale", ovvio poi che da un setting all'altro cambierebbe (~ come con un comune potenziometro).

L'idea era proprio quella di "emulare" un potenziometro (~ come nel lightspeed originale), ma con step calibrati.

Cioe`: prima si determina la corrente necessaria ad ottenere l'impedenza di ingresso "nominale" desiderata nel punto "medio" (stessa corrente nei LED serie e shunt), quindi si procede come se avessimo un potenziometro, i.e. aumentando l'una e diminuendo l'altra (e viceversa) mantenendo costante la somma delle due correnti (quindi in prima approssimazione anche la R complessiva della serie dei due LDR nella "L" resta ~ costante) fino al raggiungimento dello step desiderato; si ripete per tutti gli step da calibrare ed il gioco e` fatto (giusto? forse mi e` sfuggito qualcosa e` sto` dicendo una stupidaggine?! :| )

Il metodo ha i suoi limiti, ma e` di una semplicita` disarmante. :D
Mi sembra molto più lineare lavorare con correnti note e calibrare una resistenza alla volta, facendo una tabella per valori di resistenza opportuni, scelti per avere la curva di attenuazione desiderata, come si farebbe nello scegliere le resistenze di uno stepped attenuator.
indubbiamente cosi` e` molto piu` versatile... a patto che il uC abbia sufficenti risorse, ci si puo` fare praticamente qualsiasi cosa si voglia. Ovviamente, al prezzo di maggiori complicazioni nel software.

Come ho detto, non ho esperienza nell'uso di PIC e affini e non ho idea di cosa offra il mercato, x cui non mi rendo conto di quante risorse possiamo avere a disposizione e quindi di cosa sia fattibile e cosa no... (in campo elettronico mi sono sempre occupato di elett. analogica, mentre in campo informatico mi e` anche capitato di sviluppare software, ma sempre "ad alto livello"; non ho mai avuto a che fare con problematiche di livello "vicino all'hardware"). Supponendo pero` di avere risorse limitate ho pensato alla soluzione + semplice possibile. Ma se si possono avere a disposizione risorse sufficenti senza complicare troppo l'hardware e/o andare incontro a costi eccessivi, allora la soluzione con resistenze calibrate e "curve" (tabelle...) di attenuazione calcolate e` probabilmente la migliore, quantomeno in quanto decisamente piu` versatile (dopotutto il software si puo` modificare o anche rifare da capo in qualsiasi momento praticamente "a costo zero", l'hardware no...).
Inoltre non vedo problemi per l'iniezione di corrente nelle resistenze, tanto a noi servono valori di max 50-100k.
mmmh... beh, direi che dipende dal range dinamico e dalle imp. di ingresso che vuoi poter ottenere...

BTW, IMHO il problema resta il generatore di corrente. Per non avere errori sensibili nel valore reale delle correnti impostate (e quindi nelle misure), l'impedenza interna del generatore dovrebbe essere di almeno uno o meglio due ordini di grandezza superiore a quella delle resistenze da calibrare... per cui, gia` fermandosi a soli 100K ci vorrebbe un CCS con una Zout di 1 ~ 10 Mohm... (sbaglio?)

Allora conviene piuttosto usare lo schema proposto inizialmente da Marzio, pero` mettendo un generatore di tensione (controllabile?) "Vref" al posto di quello di corrente, in serie con una resistenza di sensing "Rs" di valore sufficentemente elevato. Cosi` la corrente la si legge direttamente come caduta ai capi della Rs (che e` nota) e, conoscendo questa nonche` Vref (fissa o fissata con un DAC) e tensione di uscita (misurata) si puo` calcolare tutto minimizzando gli errori.
Ma gli altri che ne dicono??
ecco, appunto... ragazzi, sveglia, che e` 'sto` silenzio? dite la vostra!


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 tua soluzione mi sembra abbia delle criticità dal punto di vista del dimensionamento.

Cioè:
e.g. banalmente con una piccola resistenza di sense in serie alla Vref...
Piccola corrente, piccola resistenza... piccolissima tensione. Gli ADC sono in genere a 8, max 10 bit.
(quindi in prima approssimazione anche la R complessiva della serie dei due LDR nella "L" resta ~ costante)
Ad una veloce occhiata alle curve di resistenza vs corrente non mi sembra poi tanto.. ma forse non siamo nemmeno troppo lontani.

Per quanto riguarda il convertitore tensione/corrente secondo lo schema proposto, scegliendo opportunamente le resistenze si riesce a ottenere un range di correnti da 50uA (pilotaggio 0.1V) fino a 2.5mA (a 5V).
Con una res da 100k di carico abbiamo un errore di pochi punti % sulla corrente, non così male.
Tieni conto che con questo metodo vai a minimizzare gli errori legati alla risoluzione limitata dell'ADC, avendo almeno 250mV da leggere con 100 Ohm di resistenza da misurare.

Queste considerazioni non per sminuire la proposta di Paolo ma per dettagliare la mia, coi limiti del caso e con un dimensionamento almeno approssimato delle condizioni di lavoro (incluse le condizioni limite).

Paolo butta giù due numeri di verifica della tua proposta, magari poi capisco meglio l'idea ;-)

Ciao

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

Messaggio da UnixMan »

Ciao,
Piccola corrente, piccola resistenza... piccolissima tensione. Gli ADC sono in genere a 8, max 10 bit.
xche`, gli op-amp non si trovano piu`? :D Scherzi a parte (perdonami la battuta, non ho saputo resistere...), in realta` non sarebbe un grosso problema. Visto che la resistenza da misurare in questo caso e` nell'ordine di 10K - 100K, la resistenza serie non deve essere poi cosi` piccola... inoltre, poiche` tale misura serve solo a stabilire l'impedenza "nominale", tutto sommato non e` neanche necessario che sia estremamente precisa. E comunque si puo` sempre mettere un amplificatore per riportare la tensione nel range piu` adatto al ADC (x l'appunto :D ).

Cio` premesso, voglio sottolineare che NON sto` "spingendo" per quella soluzione. L'ho proposta solo per discutere e valutare una possibile alternativa, nulla di piu`.

Apro una parentesi: {

In realta`, la cosa piu` "interessante" :grin: di quella idea e` che si potrebbe "implementare" anche in versione "minimalistica", completamente elettromeccanica! :o (ovviamente facendo le calibrazioni una tantum "a mano").

Si potrebbe infatti usare banalmente un banco di trimmer (uno per ogni step di attenuazione) commutati, eventualmente con l'aggiunta di un CCS (o al limite anche un regolatore di tensione) regolabile per settare l'impedenza nominale desiderata senza dover cambiare tutti i trimmer (*). Che poi fare una cosa del genere sarebbe verosimilmente piu` costoso oltre che molto meno versatile ed in fin dei conti anche piu` complicato di come vogliamo farlo noi e` un'altro discorso. :grin:

(*) BTW, lo stesso vale anche per il lightspeed originale: non so` xche` tutti si siano dati un gran da fare a provare potenziometri di valori diversi e nessuno abbia invece pensato piu` banalmente -e logicamente- di variare la tensione di alimentazione o, meglio, di usare un CCS regolabile con il potenziometro che si limita a ripartire tra i due LED la corrente prefissata.

} chiusa parentesi.

Divagazioni a parte, come accennato nel post precedente direi che in realta` mi piace di piu` l'idea "originale" di produrre le "curve" (tabelle...) di calibrazione corrente/resistenza dei singoli LED-LDR utilizzati per l'attenuatore e poi usare quelle per calcolare le tabelle di attenuazione che non quella alternativa. Tra l'altro, cosi` si ha anche il vantaggio di poter riprogrammare vari parametri quali ad es. l'impedenza di ingresso senza dover ricalibrare tutto ogni volta, il che potrebbe essere utile per verificare sperimentalmente qual'e` il carico "ottimale" (quello che "suona" meglio) per ciascuna sorgente, e quindi addirittura impostarne uno diverso per ciascun ingresso! :o :p

Quindi, visto che mi pare che in realta` siamo daccordo, se nessun altro ha commenti da fare direi che possiamo considerare questa come la soluzione approvata ed andare avanti a discuterne i dettagli.
(quindi in prima approssimazione anche la R complessiva della serie dei due LDR nella "L" resta ~ costante)
Ad una veloce occhiata alle curve di resistenza vs corrente non mi sembra poi tanto.. ma forse non siamo nemmeno troppo lontani
per l'appunto, ho detto all'incirca ed in prima approssimazione. Anche in questo caso, il metodo con le tabelle calcolate (se gli errori di misura e di calcolo restano sufficentemente bassi) permette (dovrebbe permettere) di ottenere risultati piu` precisi e soprattutto piu` prevedibili.
Per quanto riguarda il convertitore tensione/corrente secondo lo schema proposto, scegliendo opportunamente le resistenze si riesce a ottenere un range di correnti da 50uA (pilotaggio 0.1V) fino a 2.5mA (a 5V).
Con una res da 100k di carico abbiamo un errore di pochi punti % sulla corrente, non così male.
qui` invece NON siamo affatto daccordo. La soluzione con la Howland current pump come generatore di corrente -per questa applicazione- non mi piace affatto. Quando serve una impedenza di uscita realmente elevata, quell'oggetto diventa critico e tendenzialmente instabile.

Se proprio si volesse utilizzare un generatore di corrente, sarebbe casomai piu` opportuno indirizzarsi su uno schema diverso. Ma, ripeto, IMHO per questa applicazione e` MOLTO meglio utilizzare piuttosto un generatore di tensione (eventualmente regolabile) con in serie una resistenza (del valore piu` opportuno per rientrare nell'intervallo utile del ADC) ai capi della quale *misurare* (anziche` predeterminare approssimativamente) la corrente effettiva che circola nel circuito.

In questo modo si determinano con la max precisione possibile tanto la corrente quanto la tensione, minimizzando gli errori.

Questo al "solo" prezzo di necessitare di due ADC... ma, visto che non dobbiamo farlo in tempo reale, se ne puo` utilizzare comunque anche uno solo commutandolo da una parte all'altra (qui` si possono usare senza remore "switch" a stato solido...) ed effettuando le due misure in sequenza.


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,
qui` invece NON siamo affatto daccordo. La soluzione con la Howland current pump come generatore di corrente -per questa applicazione- non mi piace affatto. Quando serve una impedenza di uscita realmente elevata, quell'oggetto diventa critico e tendenzialmente instabile.
La poca esperienza che ho a riguardo (un progetto di regolazione della corrente dei led di un illuminatore lineare modulare per uso industriale)non mi suggeriva problemi di instabilità. Comunque sono accettabilissime proposte altenative.
Se proprio si volesse utilizzare un generatore di corrente, sarebbe casomai piu` opportuno indirizzarsi su uno schema diverso. Ma, ripeto, IMHO per questa applicazione e` MOLTO meglio utilizzare piuttosto un generatore di tensione (eventualmente regolabile) con in serie una resistenza (del valore piu` opportuno per rientrare nell'intervallo utile del ADC) ai capi della quale *misurare* (anziche` predeterminare approssimativamente) la corrente effettiva che circola nel circuito.
In effetti si potrebbe fare così: Vgen - R - LDR, dove per "R" si intende un valore opportuno opportunamente commutato tramite relè.
Leggendo la tensione sul partitore misuriamo direttamente l'impedenza della LDR.
Da 50 a 100k ci sono poco più 3 decadi, scegliendo ad esempio 100, 1k e 10k come resistenze copriamo senza problemi il range che ci serve.
Alla faccia di opamp e current pumps ; )
E serve pure un ADC solo :D

Commenti?

Ciao

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

Messaggio da UnixMan »

La poca esperienza che ho a riguardo (un progetto di regolazione della corrente dei led di un illuminatore lineare modulare per uso industriale)non mi suggeriva problemi di instabilità. Comunque sono accettabilissime proposte altenative.
x quanto ne so` tutto dipende da quant'e` l'impedenza interna che vuoi ottenere... finche` e` in un range per cosi` dire "intermedio" va` tutto bene, ma se si va` invece verso gli estremi (i.e. impedenze molto alte o molto basse) da un lato c'e` la criticita` dei valori delle R del "ponte" (in genere ho visto mettere trimmer da tarare con cura) e dall'altro c'e` una tendenza all'instabilita`. Magari pero` potrei anche essere smentito, onestamente cosi` su due piedi non ci metterei la mano sul fuoco. :D
In effetti si potrebbe fare così: Vgen - R - LDR,
esatto...
dove per "R" si intende un valore opportuno opportunamente commutato tramite relè.
Leggendo la tensione sul partitore misuriamo direttamente l'impedenza della LDR.
Da 50 a 100k ci sono poco più 3 decadi, scegliendo ad esempio 100, 1k e 10k come resistenze copriamo senza problemi il range che ci serve.
Alla faccia di opamp e current pumps ; )
giusto.

Pero` 50 ohm mi sembra un po' ottimistico... se vogliamo evitare di stressare i LED/LDR (che a quanto ho capito non gradiscono affatto di lavorare troppo "aperti", specie x lunghi periodi) la resistenza minima che possiamo usare e` piu` alta, verosimilmente almeno intorno ai 500 ohm o forse 1k. Per recuperare range dinamico dobbiamo quindi salire di piu` all'altro estremo.

Per quanto riguarda la selezione del "range", cercherei di evitare di usare altri rele`... forse si puo` fare anche con un paio di FET o roba del genere. Oppure, -bisogna valutare i costi-, magari si puo` evitare del tutto utilizzando un ADC con un range dinamico piu` ampio. :?:
E serve pure un ADC solo :D
certamente, non so` xche` volevo fare una misura ridondante V/I... chissa` dove avevo la testa... probabilmente avevo ancora x la mente la serie di due resistenze ignote e quindi la necessita` di conoscere tanto la tensione quanto la corrente. :oops:



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,
x quanto ne so` tutto dipende da quant'e` l'impedenza interna che vuoi ottenere... finche` e` in un range per cosi` dire "intermedio" va` tutto bene, ma se si va` invece verso gli estremi (i.e. impedenze molto alte o molto basse) da un lato c'e` la criticita` dei valori delle R del "ponte" (in genere ho visto mettere trimmer da tarare con cura) e dall'altro c'e` una tendenza all'instabilita`. Magari pero` potrei anche essere smentito, onestamente cosi` su due piedi non ci metterei la mano sul fuoco.
La criticità delle resistenze del "ponte" è realmente tale se il guadagno tensione/corrente è alto. Nel nostro caso siamo in "discesa" per cui le tolleranze vengono in effetti a essere ridotte.
Per l'instabilità non so, ma lavorando in DC... magari si possono mettere caps di compensazione.
Comunque è sufficiente un DAC+Rserie ( epure più semplice), tanto dobbiamo calibrà....
Pero` 50 ohm mi sembra un po' ottimistico... se vogliamo evitare di stressare i LED/LDR (che a quanto ho capito non gradiscono affatto di lavorare troppo "aperti", specie x lunghi periodi) la resistenza minima che possiamo usare e` piu` alta, verosimilmente almeno intorno ai 500 ohm o forse 1k. Per recuperare range dinamico dobbiamo quindi salire di piu` all'altro estremo.

Per quanto riguarda la selezione del "range", cercherei di evitare di usare altri rele`... forse si puo` fare anche con un paio di FET o roba del genere. Oppure, -bisogna valutare i costi-, magari si puo` evitare del tutto utilizzando un ADC con un range dinamico piu` ampio.
I NSL32SR3 che ho arrivano a 90 Ohm circa, gli SR2 scendono di più (40 Ohm a 20mA).
La corrente max è 25mA.
I 50 Ohm IMHO sono un non-problema, visto che quasi mai si lavora a massimo volume (o minimo).
Se proprio vogliamo stare più sicuri andiamo a 100 ma non oltre.

I relè li vedo bene perchè consentono di avere una caduta pressochè nulla. Un paio in più secondo me ci possono stare. Li compriamo in blocco e costtano meno ; )
certamente, non so` xche` volevo fare una misura ridondante V/I... chissa` dove avevo la testa... probabilmente avevo ancora x la mente la serie di due resistenze ignote e quindi la necessita` di conoscere tanto la tensione quanto la corrente.
Il caldo....; ) :twisted:

Ciao

Andrea
Avatar utente
marziom
sostenitore
Messaggi: 3253
Iscritto il: 24 nov 2005, 18:06
Località: Ciociaria
Been thanked: 2 times
Contatta:

Messaggio da marziom »

bene, bene....siamo tornati in tre a cantare l'alligalli..... :D

io invece volevo riproporre per l'ultima volta la mia disponibilità a fare da tester ai tre sistemi di attenuazione discussi/usati, ovvero:
- pot ELNA
- scattenuo
- LED/LDR

ovviamente tutto sarebbe riportato sul forum a disposizione di tutti (credo che la cosa sia di interesse generale), per quello che può valere il mio giudizio...
le condizioni sono quelle di sopra, se siete d'accordo chiedetemi l'indirizzo in PM e mi mandate il tutto, poi ve lo rimando io prima delle ferie d'agosto.
In alternativa, tempi permettendo, si andrà avanti senza prove.

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: 12086
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 77 times
Been thanked: 47 times

Messaggio da UnixMan »

Comunque è sufficiente un DAC+Rserie ( epure più semplice), tanto dobbiamo calibrà....
infatti...
Se proprio vogliamo stare più sicuri andiamo a 100 ma non oltre.
per stare sul tranquillo non volevo superare i 15mA... se non ricordo male le curve, con la versione che "scende" di piu` x 100 ohm dovremmo essere da quelle parti, per cui direi che e` ok.
I relè li vedo bene perchè consentono di avere una caduta pressochè nulla. Un paio in più secondo me ci possono stare. Li compriamo in blocco e costtano meno ; )
ok ma... non sara` forse meglio commutare l'ADC, come dicevo in precedenza?

Cerchiamo di evitare altri effetti da caldo 8) e ragioniamo "a voce alta"... :| Trascurando gli effetti degli LDR aperti e dell'ADC (BTW: che impedenza ha? serve un buffer?), abbiamo un circuito cosi`:

Vref-Rs-+-Rldr-gnd
+-Vout

di cui possiamo conoscere tutto tranne la Rldr che vogliamo misurare (ma va`? :grin: ). Ovviamente:

Rldr=Vout/I
I=Vref/(Rs+Rldr)

{ in effetti, trascurando solo l'ADC si avrebbe I=Vref/(Rs+(Rldr//(Rldr_off/n)) dove "n" e` il numero di LDRoff = n.ro di ingressi (sfortunatamente LDRoff non e` ne` univoco ne` costante, ma e` definito solo come >= "x"). Ma torniamo a bomba... }

Per Rldr << Rs, I~=Vref/Rs ("corrente costante"); Vout << Vref. Per misurare Rldr dobbiamo misurare Vout.

Per Rldr >> Rs, I~=Vref/Rldr ("tensione costante"); Vout~=Vref. Per misurare Rldr dobbiamo misurare I.

In entrambi i casi introduciamo comunque una approssimazione "proporzionale" al rapporto Rs/Rldr.

Per valori alti della Rldr ( >= 100K - io vorrei poter arrivare fino ad almeno 250K), mantenere vera l'ipotesi Rs >> Rldr impone l'uso di Rs molto alte che, oltre ad imporre l'uso di Vref relativamente alte (per non rendere rilevanti gli errori casuali a causa di correnti troppo basse nel circuito), rischia di rendere non piu` trascurabili gli errori sistematici legati alla presenza degli altri LDR "spenti".

In effetti, poiche` Rldr(min) ~ 100 ohm, e` piu` semplice mantenere vera la seconda ipotesi...

Se otteniamo la tensione Vref con un DAC e invece di leggere direttamente la tensione sul nodo di uscita misuriamo la corrente (i.e. la tensione che cade sulla Rs...), direi che ce la potremmo cavare con una sola Rs di valore compreso tra 1 e 10 ohm. Il "cambio di scala" lo otteniamo variando la tensione sul DAC in modo che la corrente sia sempre nello stesso "range".

L'unico problema e` che gli LDR gradiscono correnti "sostenute" ancora meno di quanto non lo facciano i rispettivi LED... il che ci porterebbe a leggere tensioni molto piccole su Rs. Pero` questo lo potremmo risolvere facilmente amplificando in differenziale su Rs "a monte" dell'ADC (...c'e` di mezzo "il solito" op-amp :D ).

Una possibile alternativa (dopotutto forse non faceva poi cosi` caldo... ; ) ) e` utilizzare una Rs "intermedia" e misurare indipendentemente sia I che Vout. In questo modo si elimina completamente l'approssimazione legata ad Rs e si e` quindi liberi di scegliere Vref ed Rs in modo da minimizzare gli errori legati al "range" di misura (dell'ADC) tanto su I che su Vout.

Da valutare... :?:



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.»
mrttg
advanced member
Messaggi: 5037
Iscritto il: 03 nov 2005, 05:47
Località: Italy
Been thanked: 1 time
Contatta:

Messaggio da mrttg »

Ciao,
in alternativa a Microchip una piattaforma interessante e affrontabile anche da persone digiune di assebler puo essere Psoc express di Cypress:

http://www.cypress.com/portal/server.pt ... PageID=569

Hà ancora diverse pecche... però è in forte sviluppo e il supporto è ottimo.

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

Messaggio da andypairo »

Ciao,
per stare sul tranquillo non volevo superare i 15mA... se non ricordo male le curve, con la versione che "scende" di piu` x 100 ohm dovremmo essere da quelle parti, per cui direi che e` ok.
Essendo il massimo 25mA io credo che i 20(nominale) possiamo raggiungerli :D o almeno quasi; )
Il Lightspeed originale ha una 100 Ohm in serie su 5V nel caso pessimo e quindi i led lavorano a 25mA. Nessun problema riportato che io ricordi da quanti lo hanno comprato o costruito.

Per la misura: Vout = Vref (Rldr)/(Rldr + Rs)

da cui Rldr = (Vout * Rs)/(Vref - Vout) senza approssimazioni. Che ci frega di misurare I ?

Dobbiamo tener conto che per avere una precisione apprezzabile sia Vout che (Vref-Vout) non devono essere troppo piccole, e quindi il rapporto tra Rs e Rldr non può essere troppo elevato.
Supponendo 4 come rapporto massimo di misura (in salita e in discesa)Vout varia tra 1 e V e per coprire i valori da 50 a 200k basterebbero 3 Rs (200, 3200 e 51.2k).

Vedo più semplice questa soluzione rispetto all'uso di un DAC per Vref o alla commutazione dell'ingresso ADC.
{ in effetti, trascurando solo l'ADC si avrebbe I=Vref/(Rs+(Rldr//(Rldr_off/n)) dove "n" e` il numero di LDRoff = n.ro di ingressi (sfortunatamente LDRoff non e` ne` univoco ne` costante, ma e` definito solo come >= "x"). Ma torniamo a bomba... }
Il NSL32SR2 dichiara 1M minimo, ma l'unico LDR spento che vedo in parallelo è lo shunt quando misuriamo gli altri. Infatti se lasciamo liberi gli ingressi gli LDR "serie" rimangono flottanti, se il caldo non mi sta
dando alla testa.

Se proprio il circuito di calibrazione crea problematiche di costo possiamo sempre farlo su una schedina in piggy-back che ci facciamo girare ;-)). E magari usiamo 10 relè e relative Rs che accontentiamo anche i più esigenti in termini di precisione. :D

Noto però che a basse Rldr si pone il problema della dissipazione sull'elemento, che potrebbe portare ad un errore.
Il caso pessimo è di 31mW.. forse ci preoccupiamo troppo.

Allego immagine tratta dal fogliettino di calcolo che ho creato per fare queste considerazioni.
Un'idea della precisione ottenibile è data dal numero di lsb per ottava dei valori di resistenza Rldr.
Se serve posso allegare il file excel in modo che ognuno possa fare le proprie considerazioni.
Immagine

Ciao

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

Messaggio da UnixMan »

Essendo il massimo 25mA io credo che i 20(nominale) possiamo raggiungerli o almeno quasi
direi che stiamo dicendo piu` o meno la stessa cosa... ok, fissiamo la Imax a 18mA e non se ne parli piu`. :grin:
Vedo più semplice questa soluzione rispetto all'uso di un DAC per Vref o alla commutazione dell'ingresso ADC.
senza dubbio si puo` fare anche cosi`...

BTW, mi viene in mente ancora un'altra alternativa, con una sorta di semplice DAC/ADC "casalingo":

Vref ottenuta con un integratore
comparatore a soglia sulla Vout
ADC di misura sulla Rs

si alza una linea di out digitale che da` tensione all'input dell'integratore... si aspetta fin quando il comparatore
non ci dice che Vout ha raggiunto Vth ed a quel punto con l'ADC su Rs si legge la corrente.

Oppure viceversa, ADC su Vout e comparatore sulla V(Rs)...

Va beh, insomma... di soluzioni valide ce n'e` diverse... basta che ci decidiamo... altrimenti se continiuamo cosi`
non la facciamo piu` finita e ci mettiamo a scrivere un trattato su "mille e uno modi di misurare una resistenza"! :grin:

{ ...casomai non si fosse capito, era autoironico. :D }

Per me va` bene tutto, basta che funzioni. 8)
l'unico LDR spento che vedo in parallelo è lo shunt quando misuriamo gli altri. Infatti se lasciamo liberi
gli ingressi gli LDR "serie" rimangono flottanti, se il caldo non mi sta dando alla testa.
vero... io stavo ancora pensando alla possibilita` di fare la calibrazione senza scollegare gli ingressi e quindi con
gli LDR "aperti" che finiscono in parallelo a quello in misura. Ma, in effetti, visto che la calibrazione e` (o almeno
dovrebbe essere, speriamo...) un'operazione "una tantum", probabilmente non ha senso...
Se proprio il circuito di calibrazione crea problematiche di costo possiamo sempre farlo su una schedina in piggy-back
soluzione interessante per un eventuale sviluppo commerciale... ; ) :D

onestamente, non mi pare che dovrebbe essere poi cosi` costoso... in teoria, il solo connettore per la schedina in
piggy-back dovrebbe rischiare di costare piu` che mettere tutto on-board. :twisted:
Noto però che a basse Rldr si pone il problema della dissipazione sull'elemento, che potrebbe portare ad
un errore. Il caso pessimo è di 31mW.. forse ci preoccupiamo troppo.
entro certi limiti il problema della dissipazione lo si risolve facendo misure "impulsive": si setta la corrente nel LED,
si aspetta un po` x far stabilizzare il LDR e solo a quel punto si chiude il circuito (con il rele` o comandando Vref)
giusto il tempo di acquisire il dato con l'ADC. Si aspetta un altro po` e si ripete, giusto per verificare che il LDR si
sia effettivamente stabilizzato (e magari anche per fare qualche media), poi si passa a quello successivo.



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
marziom
sostenitore
Messaggi: 3253
Iscritto il: 24 nov 2005, 18:06
Località: Ciociaria
Been thanked: 2 times
Contatta:

Messaggio da marziom »

vi sto mandando avanti.....anche perche correte più del tempo a disposizione che ho.....però vi leggo!

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: 12086
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 77 times
Been thanked: 47 times

Messaggio da UnixMan »

Ciao,

facciamo un passo avanti... ed uno indietro.

Abbiamo fatto un gran parlare (anche troppo :) ) sulle tecniche da adottare per misurare la Rldr, ma
temo che abbiamo perso di vista l'obbiettivo da raggiungere. Per dirla diversamente, abbiamo messo
il proverbiale carro davanti ai buoi. :grin:

Mi spiego: come funzionera` questo benedetto oggetto alla fine?

Non mi pare che finora ne abbiamo realmente parlato, se non appena accennato per il solo caso
(tutto sommato banale) della mia proposta alternativa con misura diretta dell'attenuazione. E allora,
visto che a quella abbiamo giustamente preferito l'idea iniziale con le resistenze calibrate... alla fine
della fiera, come funzionera` 'sto coso?

Sicuramente anche in questo caso ci sono molte possibilita`... la prima cosa che mi viene in mente
(la piu` ovvia?) e` la seguente:

1) stabiliamo quali valori di impedenza di ingresso vogliamo poter implementare. Una serie di valori
ragionevoli che copre sostanzialmente tutto il range "utile" potrebbe essere 5K, 10K, 25K, 50K, (75K?),
100K, (250K?);

2) decidiamo lo step minimo di attenuazione: 0.5dB, 1dB, 1.5dB, ... ?

3) costruiamo delle tabelle (una per ogni valore dell'imp. di ingresso desiderata) con i valori delle
due resistenze del L-pad necessari per ciascun passo di attenuazione, avendo l'accortezza di usare il
minimo numero possibile di valori diversi e ben "spaziati" tra loro (praticamente ne piu` ne meno che
se stessimo progettando un attenuatore a scatti con resistori commutati, salvo che non siamo obbligati
ad utilizzare i valori standard dei resistori in commercio e possiamo ovviamente realizzare un numero
di passi quasi illimitato "a costo zero")

{fin qui` e` tutto lavoro preliminare fatto con carta e penna (piu` verosimilmente con l'aiuto di un
foglio elettronico... :grin: ) in fase di progetto}.

Quindi, alla fine abbiamo "n" tabelle (di "attenuazione") fatte cosi`:

| Attenuazione | Rldr1 | Rldr2 |

ciascuna con tante righe quanti (e quali) sono i "passi" di attenuazione che vogliamo realizzare.

{ ovviamente, a seconda di come viene meglio con le risorse del uC, in alternativa possiamo anche
riunirle in una sola: | Impedenza | Attenuazione | Rldr1 | Rldr2 | }

Da queste dobbiamo estrarre la lista di tutti i valori che devono essere assunti da Rldr1 (elem. serie)
ed Rldr2 (elem. shunt).

{se possibile, per evitare di dover tenere due liste diverse per gli elementi serie e per quello
shunt bisognerebbe cercare di fare in modo che tali liste coincidano, cioe` se possibile cercare
di usare gli stessi valori discreti tanto per l'elemento serie che x quello shunt.}

Ora ci servono delle tabelle "di calibrazione" (una per ogni LDR), fatte cosi`:

| Rldr | Iled |

con tante righe quanti sono i possibili valori di Rldr1 (serie) e/o di Rldr2 (shunt).

Dal uC dobbiamo poter leggere le prime e leggere+scrivere (durante la calibrazione) le seconde;
tutte devono risiedere/essere salvate su memoria non volatile, e.g. (E)PROM o EEPROM le prime,
EEPROM le seconde.

All'avvio, una volta scelta l'impedenza desiderata (e` da prevedere quindi una interfaccia per
la configurazione che permetta di selezionarla e salvare la scelta in memoria non volatile) il uC
deve fare grosso modo le seguenti cose (**):

1) caricare la tabella di attenuazione corrispondente all'impedenza desiderata; (*)

2) caricare la tabella di calibrazione dell'LDR corrispondente all'ingresso selezionato nonche`
quella dell'elemento shunt (comune); (*)

3) leggere il valore di attenuazione ("volume") impostato;

4) estrarre dalla tabella di attenuazione i corrispondenti valori di Rldr1 ed Rldr2;

5) estrarre dalle tabelle di calibrazione i corrispondenti valori di Iled1 ed Iled2 ed
impostarli nei rispettivi DAC.

Durante l'uso, se si cambia volume si ripete la procedura dal punto 3, se si cambia canale dal
punto 2 e se infine si cambia impedenza di ingresso si riparte dal punto 1.

Semplice, no? :D

Ovviamente, tutto cio` per ciascun canale.

{ BTW: visto che ci siamo, io realizzerei le schede stesse (selettore ingressi ed attenuatore)
in versione "mono" (singolo canale), cosi` da poterle utilizzare senza alcun problema sia per
applicazioni stereo che multicanale. }

Note:
(*) l'operazione di "caricare" (in memoria) le tabelle potrebbe non essere affatto necessaria
qualora le stesse siano gia` tutte in uno spazio di indirizzamento direttamente accessibile
dal uC... in tal caso, leggere "selezionare" in luogo di "caricare".
(**) ovviamente qui` mancano ancora perecchi "dettagli" come il controllo degli "switch" (LDR)
in ingresso e dei relativi rele` di "muting", etc... altrettanto ovviamente c'e` qualche differenza
se si usa una singola tabella di quattro colonne in luogo di "n" tabelle di tre. :grin:


A questo punto, torniamo alla nostra calibrazione... quello che ci serve di fare e` "popolare"
le relative tabelle, cioe` scoprire quanta corrente dobbiamo far passare nel LED di un dato LDR
per far si` che questo presenti una data resistenza ai suoi capi.

Quindi, noi NON dobbiamo affatto misurare una resistenza incognita! dobbiamo invece stabilire
quanta corrente debba di volta in volta passare nel LED per ottenere una Rldr pari ad una certa
serie predeterminata di valori!

Alla luce di questo, il metodo da adottare IMHO e` leggermente diverso da quelli discussi finora.

Poiche` del circuito in esame (Vref-Rs-Rldr-gnd) conosco tutto a priori (inclusa la LDR che voglio
ottenere!), anziche` utilizzare un ADC io utilizzerei invece un DAC come Vref, una Rs ed infine un
semplice comparatore per sapere quando ho raggiunto il risultato.

Si puo` operare indifferentemente a "tensione costante" oppure a "corrente costante" mettendo il
comparatore su Vout piuttosto che in differenziale ai capi di Rs.

Supponiamo di lavorare a "corrente costante" (l'altro caso e` analogo). Si procede cosi`:

* si stabilisce la corrente di misura { 10uA? comunque < Max(Vdac) / Rs+Max(Rldr) }

* la Rs ed il comparatore ai suoi capi saranno dimensionati in modo tale che la soglia
corrisponda alla corrente di misura prefissata;

* a priori (in fase di progetto) si realizza (calcola) una tabella nella quale, per ogni valore
desiderato della Rldr, si determina la tensione Vref necessaria a far circolare nel circuito
esattamente la corrente di misura prefissata;

In fase di calibrazione, per ciascun valore della Rldr da calibrare, il uC:

1) legge detta tabella e setta il DAC della Vref di conseguenza;

2) aumenta lentamente la corrente nel LED dell'LDR fin quando il comparatore non indica
il raggiungimento della soglia (== corrente prefissata => Rldr prefissata)

3) salva il valore impostato nel DAC che controlla il LED nella tabella di calibrazione

fatto.

Semplice e lineare...

Commenti, idee, suggerimeti?


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
marziom
sostenitore
Messaggi: 3253
Iscritto il: 24 nov 2005, 18:06
Località: Ciociaria
Been thanked: 2 times
Contatta:

Messaggio da marziom »

mica tanto semplice e lineare....

me lo devo rileggere per capire bene, pero di primo acchitto:
1) è difficile trovare un uC con il DAC
2) si deve aggiungere un comparatore nell'elettronica....

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: 12086
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 77 times
Been thanked: 47 times

Messaggio da UnixMan »

1) è difficile trovare un uC con il DAC
si mette esterno... gia` ce ne servono almeno altri due per pilotare i LED/LDR serie e shunt, uno piu` uno meno... :D
2) si deve aggiungere un comparatore nell'elettronica....
questo non mi pare un grosso problema...

BTW, se il PIC che andremo ad usare ha gia` una ADC incorporato, possiamo risparmiarci il comparatore esterno
usando l'ADC interno in luogo del comparatore (basta andare a vedere quando legge un valore prestabilito).

Attendo commenti (ed eventuali proposte aternative) per la struttura generale. Direi sia il caso che, prima di discutere
dei dettagi di implementazione, decidiamo almeno quella... :|


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
marziom
sostenitore
Messaggi: 3253
Iscritto il: 24 nov 2005, 18:06
Località: Ciociaria
Been thanked: 2 times
Contatta:

Messaggio da marziom »

Paolo, tu hai fatto un passo indietro, io ne faccio 3!

sto leggendo piano piano le risposte e forse stiamo uscendo dai binari: stiamo raggiungendo una complessita tale del sistema che o rimarra sulla carta o diverrà troppo costoso, tutto questo poi per la calibrazione, una procedura che verrà fatta 1, 2 tiè 3 volte nella vita del pre: VALE LA PENA??!
Secondo me no, IMHO è preferibile fare qualche ponticello volante/switch meccanico/aggiunta di un alimentatore esterno da farsi al momento rispetto a fare una scheda all in one.

gran parte delle misurazioni che state ipotizzando partono dal fatto che il segnale di sense venga iniettato sul ramo T, cosa che con il circuito che ho postato io non si può, inoltre con il PIC che ho proposto io (vedi schema) che è gia grandicello siamo gia al completo.

io credo che pensare ad un generatore Vref esterno, da collegare quando occorre fare la clibrazione direttamente sugli ingressi RCA sia gia sufficente, e gli schemi che ho postato gia rispondo a questo.
Pensateci, basta fare uno scatolino (oppure un alimentatore da banco) collegarci un cavo terminato RCA e, seguendo una procedura pilotata dal display del pre, collegare la tensione su ogni RCA disponibile.
Penso che più semplice di cosi..... semplice si HW che SW.

poi se volete mettere giu un qualcosa full automatic ...io sono qui, però ho paura che rimarrà un semplice esercizio teorico.

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: 12086
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 77 times
Been thanked: 47 times

Messaggio da UnixMan »

sto leggendo piano piano le risposte e forse stiamo uscendo dai binari: stiamo raggiungendo una complessita tale del sistema che o rimarra sulla carta o diverrà troppo costoso, tutto questo poi per la calibrazione, una procedura che verrà fatta 1, 2 tiè 3 volte nella vita del pre: VALE LA PENA??!
Uh? non mi pare che il sistema di calibrazione sia cosi` complicato, ne` tantomeno costoso... stiamo parlando di un rele`, un DAC da 2 euro, una resistenza e, forse, un op-amp con relativo contorno.

E, volendo, rele` a parte tutto il resto e cioe` DAC, resistenza, eventuale op-amp ed eventuale comparatore si possono montare su una schedina separata, unica per tutti i canali (ma non so` se ne valga la pena...). Oppure si puo` pensare di utilizzare il DAC di controllo dell'altro LED (che rimane inutilizzato durante la calibrazione) per generare la Vref. Ma bisogna in qualche modo commutare il tutto e forse la soluzione rischia di essere piu` complessa e costosa che non metterci banalmente un DAC economico in piu`...

BTW, e` da verificare, neanche a me piacciono gli sprechi.
gran parte delle misurazioni che state ipotizzando partono dal fatto che il segnale di sense venga iniettato sul ramo T, cosa che con il circuito che ho postato io non si può, inoltre con il PIC che ho proposto io (vedi schema) che è gia grandicello siamo gia al completo.
Nononono... NO! :) Devi aver fatto confusione tra le varie proposte che sono passate. Quello valeva per la proposta "alternativa" con la misura diretta dell'attenuazione. Viceversa, la soluzione a resistenze calibrate prevede che il "segnale" (corrente DC...) di calibrazione venga iniettato nel nodo di uscita, esattamente come nell'ultimo schema che avevi postato. Sostituisci il generatore di corrente che ci avevi messo tu con un DAC ed ottieni precisamente lo schema proposto da me!

Per quanto riguarda la PIC, devo verificare quello schema... considera comunque che, per come la vedo io, e cioe` con una singola scheda (con la sua PIC dedicata) per ciascun canale (piu` ovviamente la scheda di controllo generale con il telecomando, etc.) dovrebbe bastare.

Dopo tutto, ciascuna PIC dovrebbe controllare due o al max tre DAC seriali (di cui cmq. solo due contemporaneamente), un rele` per ciascun ingresso + uno per collegare il circuito di calibrazione e ricevere in ingresso il segnale (analogico) per l'ADC interno (oppure in alternativa una linea digitale dal comparatore). Possibile che non riusciamo a starci dentro?

{
cmq. al limite facciamo la schedina di calibrazione separata, ci infiliamo dentro una PIC dedicata anche li` e non se ne parla piu`... ma non credo che dovremmo arrivare a tanto! :twisted: Anche perche` finiremmo per complicarci la vita. Infatti i valori rilevati dal sistema di calibrazione devono essere scritti nella memoria non volatile della PIC del canale in via di calibrazione...
}


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 »

Una cosa che non ho capito ancora è chi sarà a sviluppare il SW.... io non ho mai adoperato i PIC, per cui....

Magari dico una scemata, ma tant'è.. già ne ho dette ;-)

E se usassimo un aggeggio del genere: la "T" come selettore di ingresso e poi un "lightspeed clone" liscio al seguito? Ci sarebbero solo 2 coppie di LDR da matchare e ne servirebbero 2 per canale per lo switch dei canali (un modo creativo per riutilizzare gli LDR scartati nel matching ; ) )

Ciao

Andrea
Avatar utente
marziom
sostenitore
Messaggi: 3253
Iscritto il: 24 nov 2005, 18:06
Località: Ciociaria
Been thanked: 2 times
Contatta:

Messaggio da marziom »

per il sw ci penso io.
sull hw invece vorrei la collaborazione vostra.
chi farà lo sbroglio? le basette? ce le facciamo fare, ognuno per se....



_____________________
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: 12086
Iscritto il: 27 ott 2005, 22:34
Località: L'Aquila (Italy)
Has thanked: 77 times
Been thanked: 47 times

Messaggio da UnixMan »

per il sw ci penso io.
sull hw invece vorrei la collaborazione vostra.
ci mancherebbe...
chi farà lo sbroglio? le basette? ce le facciamo fare, ognuno per se....


Originariamente inviato da marziom - 13/07/2007 :  22:58:08
Direi che anche x lo sbroglio convenga procedere con uno sviluppo "di gruppo", un po`
come per il PCB della versione "americana" del my_ref. Ci vuole un volontario che ha il
software adatto e lo sa` usare. Questo procede a creare una bozza che posta qui`; gli
altri la verificano e quindi se ne discutono insieme eventuali problemi o miglioramenti.
A quel punto il volontario posta una versione aggiornata, etc., finche` non arriviamo
ad un risultato che riteniamo soddisfacente.

Per quanto riguarda le basette al momento mi sembra prematuro, ma comunque direi
che convenga senzaltro farcele fare... se arriviamo a quel punto sono sicuro che non
manchera` chi sara` interessato ad un acquisto di gruppo. Al limite possiamo proporre
un "group buy" su diyaudio o addirittura pensare di mettere insieme un kit...

Ma, ripeto, al tempo. Una cosa alla volta... questo aggeggio vorrei vederlo (e sentirlo!)
finito e funzionante nel mio impianto, possibilmente anche presto! :p


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.»
Rispondi
  • Argomenti simili
    Statistiche
    Ultimo messaggio