Hallo Leute,
ich bin hier gerade am verzeifeln.
Ich möchte den AD-Wandler AD7780 mit meinem Arduino Mega auslesen.
Zualler erst weiß ich nicht genau wie ich den AD Wandler anschließen soll, da der AD7780 nur einen SCK und einen DOUT/RDY Pin für die Kommunikation hat.
Ich bin jetzt einfach davon ausgegangen, dass ich den SlaveSelect Pin hier nicht benötige (habe nur den ADC an meinem Arduino über SPI angeschlossen) und ich somit meinen ADC nicht direkt ansprechen muss und er immer sendet.
Daher habe ich nur den SCK Pin an meinen Arduino PIN 52 (SCLK) und mein DOUT/RDY an den Arduino PIN 50 (MISO) angeschlossen.
Mein Zweites Problem ist, dass ich gern die PINs über die SPI Library auslesen möchte.
Dazu habe ich folgenden Code geschrieben:
#include <SPI.h>
#define DOUT 51 //MOSI
#define DIN 50 //MISO
#define SCK 52 //sck
#define SS 53 //ss
#define GAIN 40 //GAIN (1 = Gain 128; 0 = Gain 1
void setup (void) {
Serial.begin(115200);
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV16); // 1 MHz
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
pinMode(SCK, OUTPUT);
//digitalWrite(SS, HIGH);
}
void loop() {
while(digitalRead(50)==HIGH); // MISO
byte spia=SPI.transfer(0); //byte
Serial.println (spia, BIN);
}
Dabei bekomme ich allerdings nur sowas hier raus.
1110010
1110010
1111000
1111101
1001
1110001
1101100
100000
1001
1110011
1000000
1001001
1001
1110010
1110011
Ich verstehe dabei nicht wieso die Länger meiner Ausgabe unterschiedlich lang ist.
Normalerweise möchte ich als Ausgabe ein 32bit lange binäre Zahl.
Laut Datenblatt (des AD7780 sind die ersten 8 bit die Status-bits und die restenlichen 24-bit mein Messwert.
Danke schonmal für eure Hilfe.
Gruß
Dave