Gast
#2798208
Hallo Mikrocontroller.net-Familie! Bei einem Projekt ist es meine Teilaufgabe das Akkumanagement für einen LIPO-Akku zu realisieren. Dabei verwende ich den TI FuelGauge IC bq20z65-r1 sowie den Charger IC bq24735. Um die wichtigsten Parameter des LIPOs immer sehen zu können, sollen dementsprechend verschiedene Parameter vom im Projekt zum Einsatz kommenden Atmel AVR 1281V abgefragt werden. Ich habe mich sehr ausführlich mit den beiden Protokollen I²C und SMBus beschäftigt und bin der Meinung alle Bedingungen damit beide Protokolle miteinander kompatibel sind, zu erfüllen: -) Ich betreibe alle IC's mit 3V Vcc. -) Die Pull-up Widerstände für SCL und SDA habe ich mit 10k bemessen. -) Ich betreibe den Bus mit 50kHz Ich arbeite mit dem I²C Master Driver AVR315 von Atmel, habe den Source-Code für den AVR-GCC Compiler entsprechend angepasst. Im Anhang sieht er ein Bild, wie der derzeitige Versuch einen Slave anzusprechen aussieht: Bis auf das, dass nach der START-Condition doch sehr viel Zeit vergeht, bis die 9 Zyklen des Clocks beginnen und ebenso wieder sehr viel Zeit vergeht bis SCL und SDA wieder in den High-Zustand wechseln, wird kein Timing verletzt. All meine Versuche sind bisher gescheitert ein Acknowledge vom Slave zu erhalten, wie Ihr seht erhalte ich immer ein NACK und ich weiß einfach nicht wieso! Nach dem ersten Sendeversuch wird permanent ein REPEATED START initiiert da eben kein Slave antwortet... Hat jemand Ideen, bzw. sieht jemand einen essentiellen Fehler im Code? Vielen Dank für eure Hilfe, Stefan


