Forum: Mikrocontroller und Digitale Elektronik Impedance Converter AD5933/34


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Hallo,

hat jemand schon mal dem Impedance Converter AD5934 sinvolle Werte 
entlocken können? Die I2C-Programmierung des geht so leidlich. Das 
Rücklesen der Register ergibt immer den vorher reingeschriebenen Wert 
aber die Messung wird nie mit "valid real/imaginary data" beendet. In 
Abhängigkeit des Gain Faktors erhalte ich mal 00h oder 70h aus dem 
Statusregister. Beide werte machen keinen Sinn. Die Programmierung mache 
ich laut Vorschrift:

Daten Programmieren
- standby
- initialisierung
- start sweep

hier der Code dazu:

// Initialisierung AD5934
TWI_Flag := TWIout(Slave, $82,$02);               { Startfrequenz 1000 
Hz }
TWI_Flag := TWIout(Slave, $83,$0C);
TWI_Flag := TWIout(Slave, $84,$49);

TWI_Flag := TWIout(Slave, $85,$02);           { Frequenzincrement 1000 
Hz }
TWI_Flag := TWIout(Slave, $86,$0C);
TWI_Flag := TWIout(Slave, $87,$49);

TWI_Flag := TWIout(Slave, $88,$00);        Incremente 50 (1 kHz - 50 
kHz) }
TWI_Flag := TWIout(Slave, $89,$32);

TWI_Flag := TWIout(Slave, $8A,$06);                  { Settings Cycles 
x4 }
TWI_Flag := TWIout(Slave, $8B,$64);                   { 100 Messungen x 
4 }

TWI_Flag := TWIout(Slave, $81,$08);     { D3 = 1, extern Clock 
}
TWI_Flag := TWIout(Slave, $80,$B1);     { Standby Mode 
}
                                        { D9 = D10 = 0; 2 V p-p 
}
                                        { D0 = 1; PGA Gain 1 
}
TWI_Flag := TWIout(Slave, $80,$11);     { Messung initialisieren 
}
TWI_Flag := TWIout(Slave, $80,$21);     { Start Sweep 
}


TWI_Flag := TWIout(Slave,$B0,$8F);       { Command Code + Statusregister 
}
TWI_Flag := TWIinp(Slave, TWI_Status);         { lese Statusregister 8FH 
}
If TWI_Flag = true then
  TWI_Error := $FF;                                   { lesen 
erfolgreich }
  else TWI_Error := $00;                               { lesen 
fehlerhaft }
endif;


Joe

von Phasenkasper (Gast)


Lesenswert?

Würde den AD5933 oder AD5934 auch gerne einsetzen.

Jedoch nur für eine einzelne Frequenz.
Ist dieses sinnvoll?
Oder ist es da besser sich etwas selber zu bauen?

Phasenerkennungen die ich bisher realisiert habe mit XOR oder 
D-Flipflops und Schmitttrigger zuvor waren schon recht abhängig von den 
eingespeisten Amlituden.

Hat da jemand Erfahrung?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.