mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC 'ADS7823' auslesen...


Autor: Thomas G. (graza)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab versucht den 12Bit ADC 'ADS7823' mit I²C Interface
auszulesen...
Die Schreib-Adresse, das Command-Byte und die Lese-Adresse werden
korrekt Acknowledged... beim Auslesen der ersten 8 Bit bekomm ich
allerdings ein negatives Acknowledge zurück und der gelieferte Wert
ändert sich auch nur im Bereich von 0 bis 0,7V... von 0,7V bis 5V tut
sich bei den 4 Bits nichtsmehr...
Und alle weiteren Datenpakete die ich auslese sind voller Nullen... war
nach dem Not-Acknowledged zwar zu erwarten... aber ich hab keine Ahnung
warum das so ist...
Ich denke nicht, dass ich den Chip zu schnell ansteuere... immerhin hat
mein Board nur einen 11MHz Quarz und ich hab auch zusätzliche
Warteschleifen eingebaut... außerdem funkioniert mein I²C LCD
mittlerweile einwandfrei...

Kann mir jemand helfen?
Danke, Thomas...

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Thomas,

wenn ich das beim Überfliegen richtig gesehen habe, liest Du nur ein
mal vom ADC und damit nur 8Bit?!

Gruß Andreas

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt noch mal ins Datenblatt gesehen.
Laut diesem, muss der Master dem Slave (ADC) nach den ersten 8Bit ein
ACK geben und nicht umgekehrt. Dann können die nächsten 8 Bit
ausgelesen werden.

Gruß Andreas

Autor: Thomas G. (graza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Andreas,

Hab das im Datenblatt natürlich auch gelesen... komisch, ich dachte am
Anfang schon, das sei ein Schreibfehler ^^"
Das heißt ich muss ein mir noch ein Unterprogramm zum Acknowledge
senden schreiben?!
Sehr komisch... aber ich werds mal versuchen

Ciao Thomas

Autor: Thomas G. (graza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm... das Datenblatt verwirrt mich...
Der Master sendet doch erst nach dem 4. Datenwort (bzw. 8. Paket) ein
Not-Acknowledge... zwischen den Paketen isses doch ein ganz normaler
Standart-Acknowledge vom Slave...

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die I²C-Schittstelle ist an und für sich byteorientiert, da werden
keine Wörter ausgetauscht.
Laut Datenblatt (SBAS180B von TI) muss der Master beim Lesen der 16Bit
nach 8Bit ein Ack + senden und nach dem 16. ein noAck gefolgt von einem
Stop.
Das ist eigentlich auch bei I2C-EEPROMs so üblich.

Gruß Andreas

Autor: Thomas G. (graza)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm... funktioniert aber irgendwie trotzdem nicht...

Wenn ich eine '1' als neuntes Bit rübersende ändert sich nichts, und
wenn ich eine '0' schicke, verweigert der Chip das Commandbyte
komischerweise nach dem ersten Programmdurchlauf =\

Entweder ist mein Protokoll falsch... das wäre bitter... oder irgendwas
anderes passt nicht...

Ich kann dir ja mal meinen aktuellen Code anhängen...

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.