Show Posts
|
|
Pages: [1] 2 3
|
|
1
|
International / Hardware / Re: Semplice Convertitore D/A con ARDUINO duemilanove : problemi di overshoot
|
on: December 03, 2012, 01:31:35 pm
|
Questo è un semplice progetto per un DDS realizzato con un ATmega, facilmente adattabile ad Arduino, modificando opportunamente la tabella dei campioni può sintetizzare qualunque forma d'onda, unico limite è la limitata frequenza massima e la risoluzione che non è nemmeno lontanamente paragonabile a quella dei DDS con sommatore a 48-64 bit tipici dei generatori da laboratorio di un certo livello (=$$$). Molto interessante, lo studierò con cura ...  Grazie Astrobeed, preciso e utilissimo come sempre. Ti posso chiedere un piccolo favore? Puoi aprire la saracinesca? Grazie.
|
|
|
|
|
2
|
International / Hardware / Re: Semplice Convertitore D/A con ARDUINO duemilanove : problemi di overshoot
|
on: December 02, 2012, 06:35:08 am
|
Collegare un condensatore direttamente tra l'out di un gate logico e gnd a seconda della frequenza, e della capacità del condensatore, può diventare un vero e proprio corto visto che l'impedenza può calare fino a 0, o meglio fino al valore della sua ESR, portando a condizioni di corrente eccessiva (overload).
Si hai perfettamente ragione, infatti non ci avevo pensato  Il problema è quando studi la teoria è una cosa. Quando invece ti ritrovi in laboratorio con il saldatore in mano, le cose cambiano... Credo che sia ormai chiaro che la scritta newbie sotto il mio avatar non sia un caso, quindi gente, DIFFIDATE dagli schemi che ho proposto ... 
|
|
|
|
|
3
|
International / Hardware / Re: Semplice Convertitore D/A con ARDUINO duemilanove : problemi di overshoot
|
on: December 02, 2012, 05:46:13 am
|
l'overload delle porte logiche Intendi la logica contenuta in Arduino o quella che sta a valle? Per quali motivi ci potrebbero essere danni ? Potresti essere più specifico? Grazie Riflettendoci lo schema con le resistenze che ho postato non vale un fico secco : attualmente non lo consiglierei al mio peggior nemico.  Penso di interfacciarmi con un chip DAC  oppure con una cosa chiamata DDS (mi sto documentando a riguardo ...)
|
|
|
|
|
6
|
Using Arduino / Project Guidance / Re: Electrical impedance of Dout port
|
on: December 01, 2012, 10:43:30 am
|
I did the following modification in the schematic, so no more overshoots now.   The resistor is 47 ohm, the capacitor is 10 nFThe current input of the switch is almost zero. I'm working with analog devices adg419 http://www.analog.com/static/imported-files/data_sheets/ADG419.pdfThe problem is the frequency. Now with arduino duemilanove I'm working @ 10 khz but in future I will arrive at 1 mhz or more, so don't know if this is the right switch design for HF. The biggest trouble now is the op-amp : it works perfectly for 10 minuts and after go on strike! I have already burned two.  So, where is the problem now? Anyway, I solved the problem of topic : I NEED THIS RC NETWORK. 100000 thanks 
|
|
|
|
|
7
|
Using Arduino / Project Guidance / Re: Electrical impedance of Dout port
|
on: November 29, 2012, 05:21:11 pm
|
1) gate capacitance: as long as you have mosfets, you have gate capacitance, especially when they are undampened Yes, I will put a dump resistor between the gate and the ground, to protect the mos. If i connect directly the probe to arduino i have this behaviuor:  A probe grounded with a spring have a better result:  So the problem IS the probe. I the weekned i will post some results ...
|
|
|
|
|
8
|
Using Arduino / Project Guidance / Re: Electrical impedance of Dout port
|
on: November 29, 2012, 05:00:35 pm
|
Take 5 resistors: tie your four output pins together through 4 reistors, R0..3, and from there tie them to ground through Rg. Buffer the output from where the resistors meet, with a jfet or an opamp.
The output voltage is = (V0/R0 + V1 / R1 + V2 / R2 + V3 / R3) / (1 / R0 + 1/R1 + 1 / R2 + 1 / R3 + 1 / Rg). V0..3 is either 0 or 5v, representing the output from your mcu. Yes, I am sure of this, but this kind of design is useless for my application. I need a design as this:  My problem is about the implementation of the switch. The c-mos are working in this case, but maybe there are better design available... i need to study this part yet.  But my topic now are the spikes from arduino. I only need to put the right capacitor at the right place ...
|
|
|
|
|
9
|
International / Hardware / Re: Semplice Convertitore D/A con ARDUINO duemilanove : problemi di overshoot
|
on: November 29, 2012, 12:08:50 pm
|
Per curiosità, in cosa ti stai laureando ? Ing. elettronica / telecomunicazioni. Diciamo che il problema di fondo è l'aver azzardato la misura su un prototipo reale. Prima di arrivare fin qui ho simulato tutto, prima in ambiente matlab e poi con pspice. La maggior parte dei miei colleghi si ferma sulle simulazioni, quindi la prova su strada la vedo come una sfida. Inoltre l'aver utilizzato Arduino, seppur con tante limitazioni, per "prototipare" un progetto simile, mi regala molte soddisfazioni.
|
|
|
|
|
10
|
International / Hardware / Re: Semplice Convertitore D/A con ARDUINO duemilanove : problemi di overshoot
|
on: November 29, 2012, 11:31:35 am
|
Ti allego le schermate del mio oscilloscopio, i fronti di salita sono molto rapidi, circa 20ns, quindi col mio oscilloscopio da 100MHz potrei perdermi qualcosina. Ti ringrazio infinitamente per la disponibilità e per il tempo prezioso che mi hai dedicato. Quindi, mi sembra di concludere che, se disponessi di una maggiore banda (forse c'è qualche setting da fare sull' agilent) e magari di una sonda decente (senza il marchio TNT e magari dotata di molla), dovrei ottenere la lettura tanto sperata  Il collo di bottiglia sembra essere questo, poichè nonostante la topologia discutibile del circuito, nonostante l'operazionale scarsissimo, in uscita ottengo la mia onesta sinusoide "quadrettata" con un picco per ogni transizione. I dovrei fare un' analisi spettrale di questa sinusoide a gradini e stimare la larghezza di banda utile. Però gli overshoots (dovrebbero essere 8 per ogni periodo) mi sporcano terribilmente il segnale Bello il tuo scope. Pensavo di prendermi anch'io un Rigol. Penso che come rapporto qualità prezzo siano imbattibili Grazie ancora, vi tengo aggiornati
|
|
|
|
|
11
|
Using Arduino / Project Guidance / Re: Electrical impedance of Dout port
|
on: November 29, 2012, 10:49:47 am
|
[ When you mention the "problem", are you saying that you already have an end result that shows the effects of the overshoot of the square wave or that you are just predicting that the overshoot will affect your end result? Yes. I want to generate a squared "sinusoidal" wave summing 4 weighted digital signals. But, every signal have overshoots so the results is a "dirty" sinusoid. This is my problem, not a prediction. My priority is to eliminate the overshoots from Arduino. Maybe there is something wrong in my probe. Thanks.
|
|
|
|
|
12
|
Using Arduino / Project Guidance / Re: Electrical impedance of Dout port
|
on: November 29, 2012, 10:11:24 am
|
If you are trying to build a DAC with some sort of custom weighting Yes, that's correct. This a project about an alternative design of a "DAC ". The circuit is incomplete and the weighted resistors value is WRONG (I need to calculate the right value yet ). I posted the schematic, only to explain the kind of topology of the net. Anyway, the problem is the signal for arduino, or maybe the probe of the scope. I am sure about this. Thanks. Giorgio.
|
|
|
|
|
13
|
Using Arduino / Project Guidance / Re: Electrical impedance of Dout port
|
on: November 29, 2012, 10:02:45 am
|
Hi, Grumpy Mike, may I contact you in PM ? You haven't said where you are measuring this signal. The measure is between the digital port of arduino and the ground. I need a square wave, almost 50% , about 10 kHz of frequency. I read a square wave with spikes, as show in the pictures. I would not use a 9V battery like that as it will very soon drain, you will get no more than a few hours from it. But a 9V battery is the safest way to prevent ground loops. I power up Arduino, just a moment, to take the measure. Anyway, the battery in brand new.
|
|
|
|
|
14
|
International / Hardware / Re: Semplice Convertitore D/A con ARDUINO duemilanove : problemi di overshoot
|
on: November 29, 2012, 09:45:03 am
|
Ogni oscilloscopio fornisce un segnale rettangolare per calibrare la sonda. Misurando quel segnale Ti da anche quei picchi o hai un segnale pulito? E' la prima cosa che faccio ogni volta quando collego la sonda. Guarda facciamo così, pubblica lo sketch o quelle poche righe che utilizzi per generare il treno di onde quadre, lo faccio girare anch'io sul mio arduino e ti mando una schermata del mio oscilloscopio. Se fosse un problema di campionamento è più probabile che non vedresti il picco o comunque non tutta la sua dinamica.
Saresti molto gentile e ti ringrazio anticipatamente. Prima lanci questo sketch (programmi la ROM) /* * EEPROM Write * * Stores values read from analog input 0 into the EEPROM. * These values will stay in the EEPROM when the board is * turned off and may be retrieved later by another sketch. */
#include <EEPROM.h>
void setup() { } int write = 1; void loop() { if (write == 1) { EEPROM.write( 0 , B10000000 ); EEPROM.write( 1 , B10000000 ); EEPROM.write( 2 , B10001010 ); EEPROM.write( 3 , B10001010 ); EEPROM.write( 4 , B10101000 ); EEPROM.write( 5 , B10101000 ); EEPROM.write( 6 , B10100010 ); EEPROM.write( 7 , B10100010 ); EEPROM.write( 8 , B10100010 ); EEPROM.write( 9 , B10100010 ); EEPROM.write( 10 , B10101000 ); EEPROM.write( 11 , B10101000 ); EEPROM.write( 12 , B10001010 ); EEPROM.write( 13 , B10001010 ); EEPROM.write( 14 , B10000000 ); EEPROM.write( 15 , B10000000 ); EEPROM.write( 16 , B00101010 ); EEPROM.write( 17 , B00101010 ); EEPROM.write( 18 , B00100000 ); EEPROM.write( 19 , B00100000 ); EEPROM.write( 20 , B00000010 ); EEPROM.write( 21 , B00000010 ); EEPROM.write( 22 , B00001000 ); EEPROM.write( 23 , B00001000 ); EEPROM.write( 24 , B00001000 ); EEPROM.write( 25 , B00001000 ); EEPROM.write( 26 , B00000010 ); EEPROM.write( 27 , B00000010 ); EEPROM.write( 28 , B00100000 ); EEPROM.write( 29 , B00100000 ); EEPROM.write( 30 , B00101010 ); EEPROM.write( 31 , B00101010 ); } write = 0;
} poi carichi questo #include <EEPROM.h> int addr = 0; int k=0;
void setup() { DDRD = B11111111; //tutti i pin sono uscite }
void loop() { while (k<100) { PORTD = EEPROM.read(addr); ++ addr; if (addr > 31) {addr = 0;}
}
}
Poi colleghi la sonda tra digital 7 e gnd come vedi nella foto. Dovresti avere l'onda quadra di circa 10 kHz che sfarfalla (lo sfarfallamento è dovuto al codice, che devo riscrivere, però adesso ho altre priorità ...). Il mio sospetto è che le commutazioni di Arduino sono troppo rapide, la sonda che uso introduce un carico induttivo ( il cavetto di massa a banana) e quindi si crea il picco. Grazie ancora. Giorgio.
|
|
|
|
|