Hallo liebe Forum-Gemeinde,
ich hab mich nun nach langem Lesen dazu entschlossen, selbst Mitglied zu
werden=)
Und da starte ich mein Mikrocontroller.net-Leben gleich mit einer Bitte
zur Hilfestellung.
Folgendes Szenario:
Ich möchte den TPA81 (http://www.roboter-teile.de/datasheets/tpa81.pdf)
via I2C an mein STM32F103VE Board klemmen und auslesen.
Das klappt auch soweit ganz gut, zumindest 1 mal, danach zieht SDA auf
LOW und mein STM-Board interpretiert dies als BUSY.
I2C habe ich wie folg initialisiert:
Um nun den TPA81 zu sagen was ich von ihm möchte nutze ich folgenden
Code:
Als Info: TFT_ShowString und TFT_ShowNum habe ich zum "debuggen"
eingesetzt damit ich seh wo er grad steht ;-)
Die Routine läuft genau 1 mal durch, danach ist schluss. SDA wird immer
auf LOW gezogen.
Ich habe zu diesem Problem etliche Foren durchforstet, Manuals gelesen
und mich auch ausgiebig mit dem I2C bzw. TWI Bus beschäftigt und stoße
solangsam an meine Grenzen :-(
Leider habe ich kein Oszi daheim stehen.
Ich bedanke mich schon mal vorab für Tips / Kritik und weitere Infos zu
dem Thema I2C, STM32 sowie TPA81
Michael Andres schrieb:> Also vor dem lesen des letzten bytes ein STOP schicken.
Das geht bei I2C nicht, Nach einem Stop wartet der Slave auf das nächste
Start mit folgender Adresse.
Der Fehler klingt nach "lesen mit ACK", statt beim letzten Byte "lesen
mit NACK" zu machen.
MfG Klaus
Eine eigene Frage?
Dieser Thread ist über 14 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.