Go Down

Topic: AD9850 Shield Frequenz Generator (Read 5 times) previous topic - next topic

Udo Klein

Wenn Du die Schraubklemmen auf die Seite plaziert hättest, dann wäre Platz für die Buchsen gewesen. Weiterhin ist Deine Leiterbahnführung nicht optimal. Such mal im Netz nach "avr emc design considerations". Wie es aussieht stehst Du auf rechtwinklige Leiterbahnen, bei höheren Frequenzen ist das nicht so gut. Außerdem sieht es so aus als hättest Du keine Groundplane. Allerdings sieht es so aus als wäre die Platine 2-lagig gefertigt. Dann hättest Du den Abblockkondensator auch auf die Rückseite in die Mitte der Versorgungsanschlüsse des ICs packen können. Weiterhin sind einige der Leiterbahnen länger als nötig und öfter abgeknickt als nötig.
Check out my experiments http://blog.blinkenlight.net

alhin

#11
Nov 17, 2012, 04:25 pm Last Edit: Nov 17, 2012, 04:28 pm by alhin Reason: 1
Ja, die Platine ist 2-lagig. Die Leiterbahnen sind durch Autoroute Funktion von Fritzing erstellt worden. Es kommt dann halt sowas raus. :-)

Das mit der Kondensatorposition ist eine gute Idee. Danke Udo.

hk007

#12
Nov 22, 2012, 08:13 pm Last Edit: Nov 22, 2012, 08:22 pm by hk007 Reason: 1
Hi,

hab mal so ein Modul an meinen Arduino geklemmt.
Mit dem Demo-Sketch von Alhin bekomme ich nur Sinus aus dem Modul.

Code: [Select]
#include <EF_AD9850.h>


//BitData - D8, CLK - D9, FQUP - D10, REST - D11
EF_AD9850 AD9850(9, 10, 11, 8);

void setup()
{
 AD9850.init();
 AD9850.reset();
 AD9850.wr_serial(0x0, 1000); // 1000Hz
}

void loop(){
}


Die Kommunikation des Ardiuno zum Modul ist OK, da die gemessene Frequenz zu den gesendeten (verschiedenen) Werten stimmig ist.
Was bedeutet denn das 0x0 bei dem Befehl [font=Verdana]AD9850.wr_serial(0x0, 1000)[/font]
Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

alhin

#13
Nov 22, 2012, 08:46 pm Last Edit: Nov 22, 2012, 08:48 pm by alhin Reason: 1
Wenn Du kein Rechtecksignal siehst, dann steht der Poti für Puls-Pausen-Verhältnis im Anschlag. Wenn Du 0V kontinuerliches Signal hast, dann ist duty cycle bei 0%. Falls 5V, dann ist er bei 100% duty cycle.

Das Beispiel welches Du benutzt hast, nutzt Bibliothek von dieser Seite : http://www.elecfreaks.com/2110.html

Versuch doch den Code von mir:  
Beispiel .ino
AH_AD9850 Arduino Library

AH_AD9850.h Funktionen
Code: [Select]


//Objekt deklaration
AH_AD9850(int CLK, int FQUP, int BitData, int RESET);

//Funktionen
void reset();
void powerDown();
void set_frequency(boolean PowerDown, byte Phase, double Freq);
void set_frequency(double Freq);

         

hk007

Hi alhin,

danke für deine Hilfe. Das mit dem Poti hab ich eigentlich schon probiert.
Auch mit deinem Code lief es anfangs nicht. Aber nachdem meine und deine Software nicht lief, hab ich mir noch einmal das Poti vorgenommen. Und siehe da, es war doch die Fehlerquelle.
Sieht aus, als ob es falsch dimensioniert ist. Über nahezu den ganzen Bereich hab ich kein Signal. Nur so auf die letzten 10% kann man das Puls-Pausenverhältnis einstellen.
Ist das bei dir auch so? Welchen Wert hat dein Poti?

Muss das eigentlich über ein Poti eingestellt werden? Kann man das nicht über einen Analogausgang des Arduino steuern?

gruß/hk007
Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Go Up