Forum: Mikrocontroller und Digitale Elektronik AD7705 initialisierungs schwierigkeiten


von Grobi (Gast)


Lesenswert?

Hi, ich habe eine paar Schwierigkeiten den AD7705 richtig zum Laufen zu 
bringen. Ich möchte ihn mit einem externem Quarz (2.4576MHz), 250Hz 
Datenrate, AIN1+ AIN1- Bipolar und einer Verstärkung von 128 nutzen.
Meine initialiseirung sieht folgendermaßen aus :
// write com register > AN1+, AN1- write clock register
SPI_send_byte(0x20);
// external clock, 2.4576MHz, CLKDIS=0, CLKDIV=0, CLK=1, FS1=1, FS0=0
SPI_send_byte(0x06);
// write com register > AN1+, AN1- write setup register
SPI_send_byte(0x10);
// selfcalibration, gain = 128, bipolar, no internal buffer, FSYNC = run
SPI_send_byte(0x78);
//warten bis DRDY->Low (signalisiert calibration ende)
while(PIND & (1<<PD2));
//dummy read to clear DRDY
SPI_send_byte(0x38);
SPI_send_byte(0);
SPI_send_byte(0);

so wartet sich mein µc beim warten auf DRDY zu tode,
wenn ich dem clock register anstatt 0x06 0x16 sende läufts, aber ich 
erhalte beim Auslesen der Daten :
SPI_send_byte(0x38);
SPI_send_byte(0);
SPI_send_byte(0);
werte um die 32768 was bei bipolar ja ok ist = 0V, aber in periodischen 
Abständen peaks(einzelner Wert) um die ~64xxx (selbst wenn AIN1+ und 
AIN1- auf GND liegen!)

Viel mehr als die peaks wundert mich aber das ich die Masterclock 
ausschalten muss (CLKDIS=1 bei 0x16 im clock reg) damit der ADC 
überhaupt läuft! Da kann doch was nicht stimmen.

Je nach dem ob ich dem ADC vor der initialisierung ein paar 0xFFs 
schicke (mindestens 4 um ihn zu resetten) ändert sich komischerweise 
auch die Dataoutputrate ( wird > 250Hz fast um die 333Hz ), was auch 
eigentlich niemals vorkommen sollte.
Was zum Henker mache ich da falsch???

Am Quarz habe ich 2 33pF Kondensatoren gegen GND,
mein µc läuft mit 16 MHz, SPI habe ich mit
// SPI = Master, SCKrate = Clock / 64
SPCR = (1<<SPE) | (1<<MSTR) | (1<<SPR1);
initialisiert.

MfG
Grobi

von Zottel (Gast)


Lesenswert?

DataReady scheint an PD2 angeschlossen zu sein.
Wurde dieses PD2 als Eingang konfiguriert ?

Das Teil ist eher kompliziert. Ich mag mich nicht wirklich einarbeiten.

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.