Forum: Mikrocontroller und Digitale Elektronik AD7705


von Hans (Gast)


Lesenswert?

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

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

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?

von Hans (Gast)


Lesenswert?

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.

von Hans (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.