Hallo! Ich hab meinem AD7705 an Masse gehängt. Binär bekomme ich dann vom A/D-Wandler zuerst zwei 1 und dann 14 0. Kann mir jemand sagen, wieso ich da zuerst zwei 1 bekomme? Danke im Voraus! lg Hans
seltsam, eine Eins wäre ja noch verständlich. Im ganzen Datenblatt finde ich keine Angabe über das Datenformat, two's complement oder sowas. Scheint also einfach von Null bis 65535 zu gehen, MSB first wie auf Seite 32 zu sehen ist. http://www.analog.com/UploadedFiles/Data_Sheets/AD7705_7706.pdf Sind alle Konfigurtationsbits eingestellt? Irgendwo steht zum Beispiel, wenn ZERO nicht stimmt, ist "proper operation" nicht gewährleistet. Stimmt das unipolar/bipolar-Bit?
Hallo! Normalerweise habe ich alle Konfigurationen richtig getroffen. Mit dieser Funktion sende ich ein Byte zum A/D-Wandler: void spi_writeByte(unsigned char byte) { int i; unsigned char mask = 0x80; CS=0; delay(); for(i=0; i<8; i++) { DOUT=byte & mask; delay(); sendstr("write"); SCLK=0; SCLK=1; mask>>=1; } CS=1; delay(); } Und mit dieser Funktion lese ich vom Data-Register des A/D-Wandlers: unsigned int spi_readData() { int i; unsigned int rByte=0; unsigned char mask = 0x80; spi_writeByte(0x38); CS=0; delay(); for(i=0;i<16;i++) { rByte += DIN ? mask : 0; sendstr("Read"); if(DIN==1) sendstr("1"); if(DIN==0) sendstr("0"); delay(); SCLK=0; SCLK=1; } CS=1; delay(); return rByte; } Das sendstr() habe ich nur, damit ich mit Hyperterminal beobachten kann, ob der A/D-Wandler gerade schreibt oder liest bzw. was er einliest. Vl habe ich ja bei den Programmen einen Fehler? Bin für jeden Tipp dankbar.
So, hab jetzt den A/D-Wandler auf unipolar gesetzt, da ich ja nur 0-2.5V habe. Das war einmal ein Fehler, danke dafür. Aber wieso ist die erste 1 verständlich? lg Hans
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.