AVR32: Differenzen bei I2C-Adressierung Kategorie: I²C-Bus (von Eisbart - 16.06.2014 20:19) | ||
| ||
Hallo zusammen, ich verwende seit neuestem das C-Control-Pro mit dem AVR32 und dem Appli-Board und arbeite mich mühsam in den I2C-Bus ein und bin auf ein mir unverständlichen Phänomen gestossen. Folgende Vorgaben: Eine einfacher Versuchsaufbau zum Ein-/Ausschalten von LEDs mit dem I/O-Expander PCA8574. Die Adr-Pins A2 und A0 sind auf GND, das A1 auf +5V gelegt. = Adr 2 Das Datenblatt des I/O-Expanders PCA8574 zeigt folgenden, internen Slave-Adress-Aufbau: 0100(A2)(A1)(A0)(R/W) Ich bekomme per I2C_Probe(&H44) eine 1 als Antwort. Dies entspricht dem Datenblatt: 01000100 Adressierung, stimmt in meinen Augen, verstehe ich. Wenn ich diese bestätigte Adresse per I2C_Write() bzw. I2C_Read() nun einsetze rührt sich nichts an den I/Os. Erst ein forschen in dem Beispiel (REL4.cbas) und dem dazugehörigen Schaltplan ergab folgende Erkenntnis. Die beiden oben genannten Funktionen benötigen als Adressierung nach oberer Ermittlung nicht &H44, sondern eine um ein Bit nach rechts verschobene Adresse (nun &H22). So funktioniert das auch anstandslos. Die I2C_Probe() Funktion bezieht das (R/W)-Bit in der Gesamtadresse mit ein und die Schreib-/Lese-Funktionen werfen das (R/W)-Bit schlicht unter den Tisch und adressieren mit A0-beginnend. Kann mir, zum Verständnis, jemand sagen warum hier mit unterschiedlicher Basis gearbeitet wird? In der Doku habe ich zumindest nichts gefunden. Frage an dass C-Control-Entwickler-Team: Wird dieser Basis-Fehler behoben werden? Ich hoffe, ich konnte etwas Licht in diese Problematik zu bringen. Meine Grüsse Eisbart | ||
Antwort schreiben Antworten: Re: AVR32: Differenzen bei I2C-Adressierung (von PeterS - 17.06.2014 9:27) Re: AVR32: Differenzen bei I2C-Adressierung (von Eisbart - 17.06.2014 17:38) Re: AVR32: Differenzen bei I2C-Adressierung (von PeterS - 18.06.2014 15:35) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum