AT91SAM7 SPI <-> AD7797

Gast #954635
Hi.

Ich versuche eine Wägeanwendung zu schreiben und benutze hierfür einen 
AT91SAM7s256 und einen AD7797 die über SPI kommunizieren.
Dies funktioniert auch eingentlich wunderbar, wenn da nicht ein 
klitzekleiner  Fehler im erkennen des letzten Bits auf der MISO Leitung 
wäre.

Z.B. Der AD7797 ist im IdleMode oder PowerDownMode und ich sende ihm den 
Befehl als nächstes das Offset Register auszulesen, von dem ich weiss 
das dort 0x800000 drinne steht. Die empfangenen Daten sind aber 
0x800001. Es ist aber auch egal welches Register ich auslesen möchte, es 
ist immer das letzte Bit welches falsch erkannt wird.

Zur Veranschaulichung hab ich mal ein paar Osszi Bilder mit angehangen.
Das eine zeigt die Daten des Moderegisters des AD7797. Bei diesem Bild 
sieht man, das das letzte Bit anscheinend vom AD7797 vorzeitig schon 
wieder auf high gezogen wird.

Das andere Bild zeigt das letzte MISO Bit zur SCLK. Hier ist dann 
wiederum zu sehen, das das letzte Bit erst ca. 12ns nach der SCLK wieder 
zurückgesetzt wird. Und dies ist laut dem Datenblatt des AD7797 die Zeit 
t7, die mind. 10ns betragen soll.

Dies alles ist in dem Fall das der AD im Idle oder PowerDown Mode ist 
und er nicht kontinuierlich wandelt und somit MISO/DOUT in der regel auf 
high bleibt.
Wenn ich den AD jetzt kontinuierlich wandeln lasse, ist die meiste zeit 
MISO auf low und ist nur für kurze zeit auf high. Nämlich dann, wenn der 
AD eine wandlung fertig signalisiert. Das Resultat hierbei ist, wenn ich 
nun ein Register auslese wird das letzte Bit immer als 0 erkannt.

Hat jemand noch eine Idee was ich ändern könnte oder wo der Fehler 
liegen soll.

mfg
Mike
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.