www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AD7705


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/AD...
Sind alle Konfigurtationsbits eingestellt? Irgendwo steht zum Beispiel, 
wenn ZERO nicht stimmt, ist "proper operation" nicht gewährleistet. 
Stimmt das unipolar/bipolar-Bit?

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.