mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91SAM7 SPI <-> AD7797


Autor: Mike (Gast)
Datum:
Angehängte Dateien:

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

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.