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


von Thomas G. (graza)


Angehängte Dateien:

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...

von hebel23 (Gast)


Lesenswert?

Hi Thomas,

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

Gruß Andreas

von hebel23 (Gast)


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

von Thomas G. (graza)


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

von Thomas G. (graza)


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...

von hebel23 (Gast)


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

von Thomas G. (graza)


Angehängte Dateien:

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...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.