Go Down

Topic: Semplice Convertitore D/A con ARDUINO duemilanove : problemi di overshoot (Read 3825 times) previous topic - next topic

dr.benway

Salve,
Sto cercando di utilizzare Arduino come generatore di segnali per la mia tesi, però con scarsi risultati.

Allego uno schema di massima.

[/url]


Le porte wal 1:4 sono collegate alle porte digital out di arduino.

Il problema è dato dai picchi di overshoot presenti ogni volta che c'è una commutazione.

All' inizio pensavo fosse un problema di iduttanza parassita, loop di massa induttivi o cose del genere.
Però anche collegando DIRETTAMENTE la sonda dell'oscilloscopio ad una porta digitale di arduino, è presente il picco di overshoot.

L'ingresso dell' oscilloscopio dichiara  una resistenza di 1 M ohm e una capacità di 40 pF

Io ho trovato degli esempi di dac r2r che funzionano benissimo, senza problemi.
Insomma io vorrei ottenere un risultato simile a questo :

http://arduino.cc/forum/index.php/topic,8715.0.html

Se qualcuno ha un'idea a riguardo è il benvenuto.

Grazie.





flz47655

Arduino non è granché per generare segnali, arrivi a frequenze e risoluzioni molto basse. Ci sono molti modi migliori.

L'overshoot è in genere capacitivo, hai provato ad usare la molla del probe dell'oscilloscopio invece del coccodrillo senza cavetti jumper o breadboard con tutto scollegato? Puoi allegare qualche schermata dell'oscilloscopio?

Il TL082 lo alimenti dualmente? Direi che ad ogni modo non va bene, è una pessima scelta.

Ma che schema hai trovato? Non potevi fare un semplice DAC R2R senza Mosfet?

Ciao

IMPORTANTE: Hai calibrato l'oscilloscopio? I probe sono da tarare ogni tanto

dr.benway

Allego foto


image

Questo è l'andamento a vista, giusto per capire cosa succede. Se  necessario nei prossimi giorni allego uno screen cap fatto come si deve


online photo storage

flz47655

Un minimo di picco è normale che ci sia, nel tuo caso molto è introdotto nella misurazione, prova a seguire i consigli che ti ho dato
Ciao

dr.benway


Quote
Ma che schema hai trovato? Non potevi fare un semplice DAC R2R senza Mosfet?


Lo schema funziona, il problema non è nei mosfet e neppure nell' operazionale


Quote
Hai calibrato l'oscilloscopio? I probe sono da tarare ogni tanto


Si, ho fatto, putroppo lo spike è dovuto proprio alla scheda :-(


Grazie.



flz47655

Secondo me è un pessimo schema, con componenti discreti ti viene un macello con quei mosfet.
Le resistenze da 470k poi sono assurde secondo me, sia che il rumore è proporzionale al valore della resistenza?
L'op-amp non è rail-to-rail oltre che essere totalmente inadatto a questo compito, mettici un MCP6022

flz47655

Hai letto il mio vecchio post: http://arduino.cc/forum/index.php?topic=104750.0 ?
Con il MCP6022 ho risolto moltissimi problemi, te lo consiglio caldamente.
Costa poco (te lo mandano gratuitamente come sample per l'università) , ha una buona banda (10 MHz) è Rail-to-Rail input/output ed è stabile a guadagno unitario, è fatto apposta per essere utilizzato come DAC Buffer

Ma perché ti danno così fastidio quei picchi?

Ciao

flz47655

La capacità di ingresso è determinata anche (e sopratutto) dalla sonda, metti l'attenuazione massima per avere meno capacità (dopo ritara), ti faccio coi numeri dei miei probe per farti capire:
Attenuazione 1x   1M ohm 100pF
Attenuazione 10x 10M ohm 17pF

40pF non sono pochissimi.. se non compensati tramite la taratura di entrambe le sonde i pinnacchi si alzano
Ciao

dr.benway

Grazie per la info sull' operazionale.

Quote
Ma perché ti danno così fastidio quei picchi?


Semplicemente perchè in uscita voglio un segnale fatto a scalini come questo  :




Questo non ha overshoots, come avrà fatto? =( =(


astrobeed


40pF non sono pochissimi.. se non compensati tramite la taratura di entrambe le sonde i pinnacchi si alzano


Per non parlare di tutte le capacità parassite introdotte dalla bread board, mi associo pure io al commento su quanto sia assurdo usare dei mos, che a loro volta introducono altre capacità parassite, per commutare le resistenze, idem per l'opamp scelto e per i valori della rete di feedback.

flz47655

Il segnale è visto con poco zoom (e potrebbe essere un segnale a frequenza molto bassa) e l'oscilloscopio è molto vecchio, si perde parte degli eventi

Ciao

PS: Se vogliamo mettere il coltello i mosfet sono senza resistenza sulla base, se li comandi con una frequenza un pò elevata... BUM!

@Astro: Per misurare l'overshoot gli avevo consigliato di scollegare tutto, spero l'abbia fatto altrimenti è inutile stare a discutere se era con la  breadboard collegata..

dr.benway

Quote
Per non parlare di tutte le capacità parassite introdotte dalla bread board, mi associo pure io al commento su quanto sia assurdo usare dei mos, che a loro volta introducono altre capacità parassite, per commutare le resistenze, idem per l'opamp scelto e per i valori della rete di feedback.


Lasciamo perdere per un momento lo schema elettrico, poichè ci vorrebbe troppo tempo per spiegare a fondo la scelta dei cmos e andrei inesorabilmente OT.
Prendetela per buona.
Il problema è l'overshoot presente sull' uscita digitale SENZA mosfet a valle.
A cosa è dovuto? E' eliminabile?

Grazie.

dr.benway

Quote
PS: Se vogliamo mettere il coltello i mosfet sono senza resistenza sulla base, se li comandi con una frequenza un pò elevata... BUM!


Per base intendi tra GATE e massa? Perchè "BUM"?

Grazie.


flz47655

Si scusami intendevo sul gate ovviamente, BUM! perché il gate è come una capacità e serve corrente per caricarla e scaricarla velocemente, se hai una frequenza troppo alta potresti superare il limite dei 40mA per pin e danneggiare il micro.

L'overshoot è dovuto da capacità parassite, in parte non eliminabili, abbassando la frequenza le percepisci di meno.

Ciao

uwefed

dr.benway oggi sono tonto.
Spiegami il funzionamento di questo circuito.



L' operazionale é un comparatore con retroazione. Tu cosa volevi che fosse?
Come puoi pilotare quei MOSFET? Il source non é collegato a massa. Se la retorazione del operationale funziona hai una tensione quasi uguale sulle entrate + e -. Visto che il + lo hai messo a 3V (partitore con le 2 resistenze da 470Kohm anche la entrata negativa  del operazionale é a 3V. Se la source é a 3V non riesci a pilotare il MOSFET con 5V di Arduino perché troppo pochi per portarlo in piena conduzione.

Come detto, spiegami il funzionamento di quel schema; io non ci arrivo.

Ciao Uwe

Go Up