Gast
#493088
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
|
Anzeige
|
AD7705
Gast
#493088
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
Gast
#493113
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?
Gast
#493235
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.
Gast
#493249
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 Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|