AD7495

Gast #329524
Lesenswert?

Hallo,

ich muss mich leider an die Community wenden, weil ich keine Idee mehr
habe wo mein Problem liegt.

Ich möchte mittels externen ADC (AD7495) eine Spannung messen. Der Ad
Wandler ist Hardwaremaessig am SPI Bus des ATmega16.

Die ADC Routine laeuft folgend ab:

Ich setze CS (SS) auf Low danach schiebe ich ueber MOSI 2* 8Bit raus,
nachdem 16 Clocksignal (SCLK) setze ich CS (SS) wieder auf High.
Eigentlich sollte ich jetzt alle Daten ueber MISO empfangen haben. Gebe
ich mir den 16Bit Wert aus erhalte ich immer 0.

Ich hab im Anhang meine Routinen und hoffe jemand hat nen Tipp fuer
mich wo mein Problem liegen koennte.

µC: AVR ATMEGA16 @4Mhz

Gruß,
Dirk
Angehängte Dateien:
#329525
Lesenswert?

Hallo Dirk,

>Ich setze CS (SS) auf Low danach schiebe ich ueber MOSI 2* 8Bit raus,
>nachdem 16 Clocksignal (SCLK) setze ich CS (SS) wieder auf High.

Überprüfe bitte zuerst die Hardware, mit einer einfachen LED oder einem
Oszi folgendes prüfen:

- geht CS wirklich auf LOW ?
- werden wirklich an MOSI Daten gesendet?

wenn das funktioniert, kannst Du MOSI und MISO miteinander verbinden,
d.h. der Master empfängt seine eigenen Daten, somit kannst Du Deine
Software Master-Seitig schonmal testen.

Bernhard
Gast #329526
Lesenswert?

Hi,

/CS habe ich geprüft indem ich einige Warteschleifen >1Sek beim /CS
Wechsel eingefuegt habe.

MOSI und MISO werde ich heute abend mal miteinander verbinden und
prüfen.

Leider besitze ich hier kein DSO sonst würde ich einmal kurz die Daten
sampeln, falls jemand ncoh einen Tipp hat wuerde ich mich ueber eine
Antwort freuen.

Ich werde heute abend nochmal Bericht erstatten.

Gruß,
Dirk
Gast #329531
Lesenswert?

Hallo,

>Welchen Wert haben die Pull-Up-Widerstände ?

Der Pullup am /CS Pin betraegt 10k. Für MISO hab ich keinen bzw. auch
keinen internen aktiviert. Ein Test mit aktivierten internen Pullup
blieb leider auch ohne Erfolg.CPOL habe ich in der Init beachtet (CPOL
= 1). Eine Test mit CPHA 1 und 0 blieb leider ohne Erfolg.
Eine kleine selbst geschriebene Funktion zur Ausgabe des Clocks und des
Samplen der Daten auf Miso brachte auch nix.

Ein Screenshot befindet sich im Anhang. Vin geht auf ein Spgteiler zum
Schutz des ADC's.

Langsam bestaerkt sich das Gefuehl das der Chip aus irgendwelchen
Gruenden defekt ist.

Gruß,
Dirk
Angehängte Dateien:
#329532
Lesenswert?

Hab mir gerade mal das Datenblatt angeschaut.

Ist ja interessant, der AD7495 kann nur über MISO Daten an den µC
senden.

Demzufolge ist MOSI bei Dir am µC nicht beschaltet?

Wenn ich es jetzt richtig überschaut habe, dann sendet der AD7495
sofort Daten, wenn CS auf LOW gezpgen wird und SCK einen Takt sendet.

Aber welche Bedeutung hat VDrive ?
Gast #329534
Lesenswert?

Hi,

>Wenn ich es jetzt richtig überschaut habe, dann sendet der AD7495
>sofort Daten, wenn CS auf LOW gezpgen wird und SCK einen Takt sendet.

Richtig, lowpegel liegt bei 0,3V an /SS. VDrive ist fuer die SPI I/O's
(5V/3,3V Systeme).

>Demzufolge ist MOSI bei Dir am µC nicht beschaltet?

MOSI haengt offen, weil ich nur die Clockimpulse benoetige und das
samplen auf MISO. Der AD Wandler besitzt auch keine Register fuer
Commando's / Einstellungen.

Ich hab mir jetzt nochmal ganz genau die PCB angeschaut und so wie es
aussieht hat der Bestueckungsautomat nen Kondensator verloren. Der
Kondensator ist zwischen MISO und /SS verloetet. Leider kann ich erst
morgen diesen entfernen und testen. Ich gebe morgen abend bescheid, ob
die Entfernung zum Erfolg fuehrte.

Ich bedanke mich recht herzlich fuer deine Beteilung @Bernhard

Gruß,
Dirk
Gast #329536
Lesenswert?

Hallo,

ich wollte nur kurz bescheid geben.

Der AD Wandler funktioniert jetzt einwandfrei. Es war kein
Softwarefehler sondern es lag am Kondensator zwischen /SS und SCLK,
durch diesen Kondensator hat sich die Rise und Fall Time des
Clocksignals so stark veraendert.

Gruß,

Dirk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren