[LPC11Cxx] Chip_I2C_MasterRead(.) keine MultipleByteRead-Funktion?

Gast #5154062
Lesenswert?
• ▲
▼
Hallo Leute,

kurze Frage an die Runde, da ich hier bei der i2c_11xx-Bibliothek nicht 
weiterkomme. Und zwar geht es um die i2c-Auslesefunktion.
Das Problem ist: Trotz dem korrekt angegebenen xfer.rxSz (größer 1) wird 
nur ein Byte ausgelesen und anschließend die Verbindung per NACK 
beendet. Der StateHandler scheint eigentlich i.O. zu sein.

Hat jemand ein ähnliches Problem?

Danke im Voraus
Gast
Lesenswert?
• ▲
▼
Naja, es ist eben die Standard-Bibliothek, ich verwende ja nur die 
Befehle daraus.
Das ist der Codeausschnitt. Trotz allem wird immer nur ein Byte 
empfangen.



// 7-Bit-Sensoradresse zuweisen
xfer.slaveAddr = I2C_ADDR_SENSOR;
// Anzahl der zu empfangenen Bytes
xfer.rxSz = 2;
// Auf das Empfangs-Array verweisen
xfer.rxBuff = &rxBuffer[0];

Chip_I2C_MasterRead(i2cDev, xfer.slaveAddr, xfer.rxBuff, xfer.rxSz);
Gast
Lesenswert?
• ▲
▼
Ja genau, den Thread habe ich ebenfalls gefunden gehabt - leider ist es 
so, dass bei mir der stateHandler-0x58 abgearbeitet wird:

/* Rx handling */
case 0x58:  /* Data Received and NACK sent */
cclr &= ~I2C_CON_STO;


Dieser sendet eben direkt ohne die Überprüfung der Byteanzahl ein NACK. 
Für die Abarbeitung der Byteanzahl ist eher der case 0x50 zuständig mit:

case 0x50:  /* Data Received and ACK sent */
*xfer->rxBuff++ = pI2C->DAT;
xfer->rxSz--;

Allem Anschein nach wird dieser aber nicht abgearbeitet, da ich 
unabhängig vom I²C-Device und CommandByte nie mehr als ein Byte aus dem 
Bus herausbekomme (wohlgemerkt, nur beim Lesen, das Schreiben klappt 
hervorragend).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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.