Memoria analogica

i

Non =E8 essenziale, servirebbe solo per compensazione termica.

Mi ricorda un tizio un paio di millenni fa... :)

So che puoi farlo e ti invidio perch=E9 non riesco a far fronte attualmente a consegne quasi ordinarie a causa della doppia attivit=E0. Per me vale la formula di Westheimer: "Per stimare i tempi di un qualsiasi lavoro, prendere il tempo che si dovrebbe mettere, moltiplicare per 2, e cambiare l'unit=E0 di misura con quella immediatamente superiore. Ad esempio: per un lavoro che dovrebbe prendere un'ora si calcolano 2 giorni".

.

Costerebbe di pi=F9 con i componenti che ho in mente di usare, ma non mi preoccuperei troppo del feed-back. Dubito che i variac/varicap/pincopallo siano assolutamente identici per cui una calibrazione sar=E0 comunque indispensabile. Credo per=F2 che coi S/Hsi abbia la maggior precisione possibile ed il minor rumore. Ad un dato valore numerico corrisponder=E0 lo stesso valore di tensione su tutte le uscite visto che il DAC =E8 uno solo. L' SMP08 =E8 fatto apposta, ma arriva al massimo a 17V. Le uscite sono bufferizzate e con un OpAmp con Av=3D2 (resistenze di retroazione uguali) si risolve la questione. La calibratura potrebbe essere effettuata con un multiplexer tipo 4067 alimentato con un offset di circa 10V in modo da poter accogliere agli ingressi le max tensioni di uscita. Un ADC 16 bit analizzer=E0 i valori e compiler=E0 un vettore di costanti per la correzione.

Uno stadio da 16 uscite sar=E0 composto essenzialmente da:

- 2x SPM08

- 4x OpAMp quadrupli

- 32 resistenze uguali

- 1x CD4067

A monte avremo il DAC parallelo e l'ADC oltre alle necessarie alimentazioni e splitter per il 4067.

I miei 2 cent... :-)

Piccio.

Reply to
Piccio
Loading thread data ...

cut...

Circa 35 euri di IC.

560 euri per 256 ch. Oltre a DAC, ADC, PCB, ecc.

Piccio.

Reply to
Piccio

"F. Bertolazzi" ha scritto nel messaggio news:8931ke9evg54$. snipped-for-privacy@40tude.net...

Scusa non è na matrice 16 di lato?

Ce ne vanno 2 o sbaglio tutto?

Cio' è dovuto alle elecubrazioni varie che mi rifiuto di rileggere, anche perchè 256 canali mi pare siano tantini, e le capacità parassite le considerano?

Comunque sta discussione nasce male e muore peggio secondo me.

Reply to
El_Ciula

Il 31/01/2011 00:38, F. Bertolazzi ha scritto:

Ti ringrazio per aver ritardato la cena, non era necessario, però grazie, davvero. La soluzione di dalai lamah funziona a livello di charge leakage ma non funziona dal punto di vista delle tensioni. Il componente suggerito necessita di uno shift in tensione per poter utilizzare i 18 V, ma la regolazione effettiva non è più 0-18V ma 13-18V. Inoltre essendo andrebbe inserito un circuito in grado di portare a 3 V lo zero logico e non è banale, perché devi porre su ogni uscita dei decoder uno shift di tensione, sempre che bastino 2 volt a far passare bene la tensione.

formatting link

Ho controllato bene sia il circuito in fidocad sia i datasheet dei singoli componenti che hai citato. La soluzione non è cattiva, qualche dubbio va però chiarito.

1) Il partitore in uscita all'OpAmp serve per abbassare la tensione da 18 a 6 V (30k:10k -> 18/3 = 6V). Se togli RR non credo che la corrente assorbita dal micro sia sufficiente ad abbassare la tensione attraverso le 3 resistenze in serie. Inoltre il micro dovrebbe ricevere al più 5V non 6V.

2) Perché il guadagno è 5? Se usi Vref hai 5 V in uscita e con l'opamp ce ne andiamo a 25 (quindi dovremmo abbassare il numero di valori utili in bit, e non è cosa buona). Se usi l'internal ref hai 2.5 V in uscita che moltiplicati per 5 arrivano a 12.5 V e a noi ne servono 18V.

Dunque se proprio dobbiamo sacrificare qualcosa, mettiamo un guadagno di

4, arriviamo a 20 V in uscita (alimentando l'opamp a 24V - con qualche regolatore 7824) ed usiamo i valori da 0000000000 a 1110011010 (922).

Non ho ben capito se il componente della linear accetta un clock asincrono. In tal caso l'Attiny dovrebbe:

a) Settare il bit (5V) da trasmettere su una porta b) Impostare ad 1 (5V) sulla porta che funge da clock, e dunque tale variazione viene percepita come un fronte di salita, facendo scorrere lo shift register. c) Dopo un certo tempo riportare la porta del clock a zero (e bisogna misurarlo sto tempo).

A parte il rack di 4 opamp, in teoria con un solo micro possiamo gestire

6 canali, però effettivamente è comodo gestirne 4.

Qui non ho capito molto, stai parlando del controller che regolerebbe ogni singolo micro? Ho una soluzione più semplice:

la rete di decoder già esistente aggancia 4 uscite a 4 porte di questo micro (visto che ne ha tante libere). Quando ricevono una certa combinazione di bit, abilitano un ADC (ne abbiamo ancora 2 liberi), così il micro prende la tensione da un unica linea 0-5V (analogica) connessa a tutti i micro, controllata dal microprocessore principale.

Mi sembra fattibile, che ne pensi?

La catena è questa:

1) uP impone la tensione sulla linea analogica 0-5V; 2) uP seleziona una cella attraverso la rete di decoder connessa ai uC 3) il uC che si vede abilitare dal decoder una porta, legge il valore dalla linea analogica; 4) uP disabilita la rete di decoder, cambia tensione sulla linea analogica, seleziona cella successiva.
Reply to
Artemis

Artemis:

No, rimane 0-18. Il solo problema è la tensione di controllo, ma, d'altro canto non è detto che la massa digitale debba coincidere con quella logica.

Sarebbe importante sapere qual'è la corrente di perdita dei varicap, un quanto potrebbero essere già loro i condensatori dei sample and hold (così si chiama la "memoria analogica").

No, va da 20 a 5V. Il partitore non è 3:1, ma (3+1):1.

No, la Vref è di 4,096 V

Cosa intendi per asincrono? Se il ricevitore accetta un clock è sincrono. Al clock, appunto. Se il clock se lo crea da solo è asincrono.

Forse ti spaventa il fatto che il clock non abbia una frequenza uniforme, ma è appunto per ciò che lo si trasmette, per non avere i vincoli sulla precisione della velocità di trasmissione tipici dei sistemi asincroni.

Ovvero subito dopo, con l'istruzione successiva.

No, è il bello delle trasmissioni sincrone.

Piccio mi ha fatto notare due cose molto importanti:

- col mio sistema abbiamo 256 strumenti diversi (i partitori resistivi) che misurano 256 tensioni diverse. Avrai 256 risultati diversi. Meglio usare un selettore e un solo partitore e A/D.

- In realtà forse la precisione assoluta non serve, in quanto ogni varicap avrà la sua tolleranza, quindi non è detto che a, mettiamo, 7,864 V un varicap abbia la stessa capacità di un altro varicap alla stessa tensione.

Dovresti cercare di saperne di più su questa parte.

Come contano di tarare il tutto? In fondo, al macchinario misterioso non importa nulla delle tue tensioni, gli importa delle capacità dei varicap.

Reply to
F. Bertolazzi

dalai lamah:

Non mi pare che ce ne sia bisogno: Vss e GND dovrebbero poter essere collegati insieme e Vdd mandato a +19V.

Reply to
F. Bertolazzi

Un bel giorno Artemis digitò:

Basta una resistenza e un diodo, vedi schema in fondo.

Certo che puoi, lo switch è bipolare.

[FIDOCAD] RV 70 40 100 100 TY 75 40 5 3 0 0 0 * Vdd MC 80 40 3 0 010 TY 75 25 5 3 0 0 0 * 18V TY 75 95 5 3 0 0 0 * Vss MC 80 100 1 0 020 TY 75 110 5 3 0 0 0 * 0V TY 90 55 5 3 0 0 0 * IN TY 85 85 5 3 0 0 0 * Vgnd MC 120 90 0 0 010 TY 130 90 5 3 0 0 0 * 3V LI 100 90 120 90 SA 110 60 SA 110 90 LI 100 60 125 60 MC 140 60 2 0 200 LI 140 60 185 60 TY 175 55 5 3 0 0 0 * 0-5V LI 110 70 110 60 MC 110 70 1 0 080 LI 110 80 110 90
--
emboliaschizoide.splinder.com
Reply to
dalai lamah

Un bel giorno F. Bertolazzi digitò:

Fornisco solo spunti da verificare, mica la devo fare io la tesi. :)

--
emboliaschizoide.splinder.com
Reply to
dalai lamah

Un bel giorno F. Bertolazzi digitò:

Mi sembra un rischio inutile. A prescindere dalle maximum ratings (fra l'altro valide solo a 25 gradi), le "specified performances" sono misurate a ±15V, e in nessuna prova/grafico salgono sopra a 15V.

--
emboliaschizoide.splinder.com
Reply to
dalai lamah

guarda tra i SSR di questo tipo:

formatting link
ne troverai anche multipli ( avago, nec, vishay ecc.)

Reply to
ramundo

Il 31/01/2011 19:19, dalai lamah ha scritto:

Ho allegato lo schema finale in base alle tue indicazioni, dimmi se è corretto. Ho inserito solo 2 celle, ovviamente essendo il decoder 4:16 dovrebbero andarcene 16. Il primo decoder invece (quello vicino al processore) seleziona le 16 righe (quindi il decoder 4:16 di ogni riga).

Essendo un varicap molto piccolo, ho preferito inserire un condensatore da 100nF, per mantenere la scarica. Per il charge leakage ci siamo, ma riusciremo a caricarlo (e scaricarlo, nel caso volessimo applicare una tensione inferiore a quella applicata in precedenza) in un tempo breve?

E' una soluzione che può funzionare anche per un 4096 elementi in futuro?

In precedenza avevo usato lo switch 74HCT4066, ma va da 0 a 5 V (analogici).

Quello che dovrò cambiare in ogni caso sono i decoder, che oltre ad averli presi DIP (e sono enormi), hanno l'uscita negata.

Occorre prenderli veloci (meglio progettare le cose come se già avessimo a che fare con i 4096 elementi).

Sono combattuto sullo scegliere questa strada (che è quella che avevo intrapreso all'inizio) o quella di Bertolazzi.

Quella di inserire microcontrollori a meno di 1 euro con un feedback sulla tensione di uscita non è mica male, tra l'altro programmando ogni singolo microcontrollore, riesco a mappare anche le nonlinearità di tutti i varicap montati sulla scheda, e linearizzarli in loco anche dopo il montaggio.

Con il feedback la tensione si stabilizza, e volendo, se un varicap esibisce un comportamento differente dalla caratterizzazione fatta in laboratorio, la si può correggere via software agendo sul singolo microcontrollore.

Ripeto, cosa ne pensi?

Questo è lo schema con la tua soluzione:

[FIDOCAD ] TY 110 190 5 3 0 0 0 * Vdd MC 115 190 3 0 010 TY 125 205 5 3 0 0 0 * IN TY 120 235 5 3 0 0 0 * Vgnd MC 155 240 0 0 010 TY 165 240 5 3 0 0 0 * 3V LI 135 240 155 240 SA 145 210 SA 145 240 LI 135 210 160 210 MC 175 210 2 0 200 LI 175 210 220 210 LI 145 220 145 210 MC 145 220 1 0 080 LI 145 230 145 240 TY 185 205 5 3 0 0 0 * 0-5V LI 235 175 235 160 LI 235 160 255 160 LI 255 160 255 150 RV 300 125 250 150 TY 110 90 5 3 0 0 0 * Vdd MC 115 90 3 0 010 TY 110 75 5 3 0 0 0 * 18V TY 125 105 5 3 0 0 0 * IN TY 120 135 5 3 0 0 0 * Vgnd MC 155 140 0 0 010 TY 165 140 5 3 0 0 0 * 3V LI 135 140 155 140 SA 145 110 SA 145 140 LI 135 110 160 110 MC 175 110 2 0 200 LI 145 120 145 110 MC 145 120 1 0 080 LI 145 130 145 140 TY 185 105 5 3 0 0 0 * 0-5V LI 195 110 195 200 LI 195 200 220 200 LI 175 110 195 110 LI 245 185 310 185 TY 255 135 7 4 0 0 0 * Decoder 4:16 TY 225 165 7 4 0 0 0 * EN TY 230 230 7 4 90 0 0 * Decoder 4:16 LI 245 200 320 200 LI 245 215 330 215 LI 245 230 340 230 RV 220 175 245 240 MC 120 160 1 0 020 RV 105 90 135 160 TY 110 165 5 3 0 0 0 * 0V MC 115 260 1 0 020 RV 105 190 135 260 TY 110 255 5 3 0 0 0 * Vss TY 110 155 5 3 0 0 0 * Vss LI 135 255 390 255 LI 390 255 390 90 RV 245 30 345 95 TY 280 60 7 4 0 0 0 * PROCESSOR LI 385 60 385 65 MC 370 90 0 0 080 MC 395 65 1 0 580 LI 390 90 380 90 LI 370 90 365 90 LI 365 90 365 60 LI 365 60 385 60 LI 395 40 345 40 LI 395 65 395 40 MC 365 50 0 0 080 LI 365 60 365 50 MC 375 50 0 0 020 TY 380 45 5 3 0 0 0 * 0V LI 340 230 340 95 LI 330 215 330 95 LI 320 200 320 95 TY 265 85 7 4 0 0 0 * 8 bit Grid Address LI 310 185 310 95 LI 290 125 290 95 LI 280 125 280 95 LI 270 125 270 95 LI 260 125 260 95 TY 235 100 10 8 0 0 0 * MSB TY 340 100 10 8 0 0 0 * LSB TY 325 40 7 4 0 0 0 * 0-5V LI 180 255 180 155 LI 180 155 135 155 SA 180 255 SA 390 90 SA 365 60 TY 405 65 10 7 0 0 0 * Gain: 3,6 MC 55 115 3 0 190 MC 55 225 3 0 190 LI 55 220 55 210 LI 55 210 105 210 LI 115 265 55 265 TY 120 265 5 3 0 0 0 * 0V LI 55 225 55 265 LI 120 165 55 165 LI 55 165 55 115 LI 55 105 55 100 LI 55 100 105 100 MC 75 130 1 0 170 MC 75 235 1 0 170 LI 75 130 75 100 LI 75 140 75 165 LI 75 235 75 210 LI 75 245 75 265 TY 80 135 7 4 0 0 0 * 100nF TY 80 240 7 4 0 0 0 * 100nF TY 20 105 7 4 0 0 0 * Varicap2 TY 20 215 7 4 0 0 0 * Varicap1 TY 200 215 7 4 0 0 0 * Line1 TY 200 190 7 4 0 0 0 * Line2 TY 285 260 7 4 0 0 0 * Analog line 0V-18V TY 105 180 5 3 0 0 0 * 18V
Reply to
Artemis

Il 31/01/2011 18:54, F. Bertolazzi ha scritto:

I S/H vengono utilizzati negli ADC come registro prima del campionatore. In questo caso abbiamo il problema opposto, il registro non mantiene abbastanza a lungo il dato... è un Sample con poco "hold" :D

Si scusami, errore moooolto stupido il mio.

Se guardi sul datasheet a Electrical Characteristics, troverai DAC Output Span:

Supply as Reference -> 0 to Vcc Internal Reference -> 0 to 2.5 V

Pagina 4, seconda tabella.

Per clock asincrono intendo che non invio un clock "continuo" ma posso inviare un impulso, poi inserisco una latenza lunga quanto mi pare e piace, e poi altri 3 impulsi.... questo per me è asincrono. Mentre per sincrono intendo continuo, ininterrotto.

Dopo un certo tempo inteso come: dopo che sono certo che lo shifter register abbia shiftato. Se dò un fronte a 12 MHz con il mio tiny e lo shift register non lo segue, è la fine. Per questo preferisco dare un fronte, attendere qualche ciclo di clock, e rimettere a 0 la linea. Il clock vorrei generarlo asincrono direttamente dal mio tiny.

Ma poi stavo pensando una cosa: invece di mettere un DAC, visto che ormai abbiamo inserito un bestione con 24-32 pin (ed ho visto che li realizzano anche a larghi 5 mm per lato), ma non è meglio scegliere direttamente un cavolo di microcontrollore serio, con 5 ADC e 4 DAC? Voglio dire, se uno stadio che mi controlla ben 4 canali mi costa 2.5 euro, cacchio ma ce ne spendo anche 10 euro per micro, chissene! Ho il vantaggio di linearizzare ogni singolo varicap ed evito le serializzazioni eliminando il DAC esterno.

Eeee... con un solo selettore addio feedback attimo per attimo che stabilizza la singola tensione, devi sincronizzarti con tutti i 256 elementi e che fai, si scassa un elemento e li rendi tutti inutilizzabili. Dobbiamo creare 256 stadi indipendenti. Non importa che le tensioni siano diverse, gli AT la stabilizzano di continuo in base al loro riferimento (in bit) interno.

E la soluzione a microcontrollore ti permette dopo il montaggio di "tutta" la struttura di effettuare misurazioni e linearizzare in loco componente per componente.

Se dico che a 7,864 tutti i varicap devono darmi la capacità X, vado a imporre tale tensione su ogni varicap e calcolo la variazione, così memorizzo sul micro di "quel" varicap la correzione. A questo punto dici: ok la correzione sulla capacità la fai staticamente, ma poi le resistenze dell'opamp e gli effetti termici cambiano la tensione amplificata.... e qui entra in gioco il feedback del micro, cioè: se ti do: 0010010011 che corrispondono a (esempio) 12 V, tu quelli devi avere in uscita, se non li hai, correggi... a frequenze molto alte (12 MHz).

Direi che meglio di così si muore. Se riusciamo a eliminare il DAC esterno trovando un micro con i DAC interni (il costo non è un problema) siamo a cavallo.

Un'altra cosa che mi piacerebbe inserire è la possibilità di ri-programmare i micro anche dopo montati (senza staccarli dalla scheda). Vorrei prevedere, non so, dei pin esterni ai quali collegare dei morsetti. L'ideale sarebbe programmarli tutti ad una botta, però poi la linearizzazione locale va a farsi friggere (e poi non credo sia possibile, ci sarà una comunicazione bidirezionale tra micro e kit di programmazione).

Dici che è possibile riprogrammarli senza staccarli dalla scheda, pur tenendoli collegati ai decoder, alla linea analogica e ai varicap?

Esatto. La taratura avverrà come sopra, loro misurano l'effetto della capacità via radiofrequenza e se è quella desiderata, si segna il valore di capacità e si associa alla tensione.

Reply to
Artemis

Il 31/01/2011 19:59, ramundo ha scritto:

Grazie, anche questi sono parecchio interessanti

Reply to
Artemis

cut...

cut...

Non puoi collegare un condensatore da 100nF in parallelo ai varicap: le capacit=E0 si sommano. Dovresti come minimo mettere una resistenza in serie e non farebbe troppo male anche un'induttanza per HF su ferrite (poche spire). La polarizzazione del varicap non deve risentire pesantemente di impedenze parassite, soprattutto capacitive, senn=F2 quando oscilla su frequenze diverse non lo controlli pi=F9. Infatti credo che la generazione delle tensioni di controllo non debba avere pretese di precisioni eccellenti dato che tutto quello che segue dopo con le proprie derive vanifica il vantaggio. Una mappatura di ogni singolo varicap sar=E0 indispensabile e pi=F9 l'uscita =E8 presa a valle (una frequenza, immagino) e pi=F9 il sistema sar=E0 preciso.

Piccio.

Reply to
Piccio

E poi sarebbe importante guardare che i condensatori non abbiano isteresi dielettrica, altrimenti il sample and hold non holda!

--

Franco

Wovon man nicht sprechen kann, darüber muß man schweigen.
(L. Wittgenstein)
Reply to
Franco

Il 01/02/2011 01:10, Artemis ha scritto:

Probabilmente sbaglio, ma un clock "continuo" dovrebbe chiamarsi isocrono (cioè sempre uguale, come si dice in musica). Mentre "sincrono" non si riferisce tanto al clock quanto a tutto il sistema, che appunto è "sincronizzato" al segnale di clock.

Basta leggere il datasheet dello shift register e questi tempi sono riportati. Tipicamente se devi andare a 12 MHz sceglierai un IC che ti permetta un clock ben più alto.

Che io sappia solo di ATxMega (rimanendo sugli Atmel) hanno i DAC. A proposito, ma dal sito hanno tolto la tabella riassuntiva di *tutti* gli AVR?

Marco

Reply to
Marco Trapanese

Il 01/02/2011 08:16, Marco Trapanese ha scritto:

^^^^

"gli"

Reply to
Marco Trapanese

Gli SMP08 che ho indicato hanno le capacit=E0 di hold interne e dato il refresh relativamente alto non si dovrebbero presentare particolari problemi. Almeno spero che chi ha progettato l'IC abbia tenuto in considerazione la questione... :-|

Piccio.

Reply to
Piccio

Il 01/02/2011 06:20, Piccio ha scritto:

Errore mio, erano 100pF. Le capacità si sommano a livello statico, ma come ho scritto, c'è disaccoppiamento RF. Infatti se proprio vuoi vederlo come un circuito equivalente, in RF avresti questo:

[FIDOCAD ] MC 80 35 1 0 170 MC 90 30 0 0 120 MC 110 45 3 0 190 LI 80 35 80 30 LI 80 30 90 30 LI 100 30 110 30 LI 110 30 110 35 MC 110 45 1 0 020 MC 80 45 1 0 020 TY 60 35 5 3 0 0 0 * 100pF TY 115 35 5 3 0 0 0 * Varicap LI 110 30 170 30 TY 155 30 5 3 0 0 0 * RF

non farti ingannare la simbolo dell'induttore, in realtà è realizzato con un particolare stub (trovato in letteratura). Questo perché non si è riusciti a trovare rf choke commerciali (e ottenibili in tempi non bibblici), di piccole dimensioni, avente frequenza di autorisonanza abbastanza lontana dalle frequenze di interesse, la quale impedenza fosse sufficiente elevata a disaccoppiare il circuito senza ritardare troppo la carica del varicap per il refresh. Un condensatore da 100pF pur diventando un corto circuito resterebbe comunque isolato dallo stub.

E ti dò ragione. Per questo mi piace l'idea di avere operazionali controllati da microcontrollori a basso costo. Questo mi permette sia di tenere stabile la tensione, sia di linearizzare in loco i varicap dopo il montaggio.

in laboratorio si ricava in linea di massima la corrispondenza:

V -> C

poi dopo il montaggio si applica una V in modo da portare C al valore desiderato e si memorizza in quel micro la correzione. In modo tale che se la correzione rispetto al valore di laboratorio è 70mV, quando riceve la tensione mappata, gli aggiunge la correzione.

Con un sistema automatico e passivo come quello da me scelto originariamente, o con un s/h, non riuscirei ad avere tale possibilità.

Reply to
Artemis

Il 01/02/2011 08:16, Marco Trapanese ha scritto:

Yes, grazie per la precisazione.

^^^ Autocorrezione: shift

Si questo è chiaro, volevo capire solo se lo shift register ha bisogno di un clock isocrono o posso farlo scorrere arbitrariamente quando decido io (inserendo latenze), attraverso il micro. Esempio:

Ho controllato ieri sera ed ho individuato ATmega64M1 (4 DAC e 16 ADC) e va bene anche qualche altro esemplare. Il problema è che su Farnell (o RS) non ci sono (e non conosco altri rivenditori online rapidi). Sul sito della ATMEL ci stanno solo i distributori, che non vendono sotto i

1500 pezzi (quando t'è andata bene).
Reply to
Artemis

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.