Ich werde aus der HAL beim STM32F1 nicht ganz schlau. Wie kann man im Adressbyte noch Daten senden? Ich benutze einen MCP23008 und der möchte den Opcode gerne im ersten byte haben. Wie kann ich mit HAL_I2C_Master_Transmit also das Adressbyte verändern?
Wie kann man im Adressbyte noch Daten senden?
Ich verstehe deine Frage nicht. Das erste Byte enthält 7 Bit für die Adresse und 1 Bit für das R/W Flag. Damit ist das Byte voll, mehr geht nicht.
Ich benutze einen MCP23008 und der möchte den Opcode gerne im ersten byte haben.
Das erste Byte ist der Opcode.
Das erste Byte ist der Opcode.
Der MCP23008 nutzt aber nur 3 Adressbits. Also einfach DevAddress dementsprechend schreiben?
Der MCP23008 nutzt aber nur 3 Adressbits
Nein.
Ist das dein erster I²C Baustein, mit dem du zu tun hast? Ich frage, weil an der Kommunikation dieses IC überhaupt nichts speziell ist.
weil an der Kommunikation dieses IC überhaupt nichts speziell ist.
Wer seinen Master in I2C machen will der spielt mal mit dem LP5810 von TI. :-D Ist aber ein cooles Teil fuer Zylonenprogrammierer.
Vanye
Der MCP23008 nutzt aber nur 3 Adressbits
Nein.
Ist das dein erster I²C Baustein, mit dem du zu tun hast? Ich frage, weil an der Kommunikation dieses IC überhaupt nichts speziell ist.
Ja ich habe I2C immer gemieden daher ist das der erste. Also sende ich mit HAL_I2C_Master_Transmit als devAddress das Byte aus Figure 1-2, dann die Registeradresse zum beschreiben und dann der Wert?
Es ist nicht verboten, einfach mal das Datenblatt des MCP23008 zu lesen. In "FIGURE 1-1: MCP23008 I2C DEVICE PROTOCOL" ist doch alles zu sehen, was auf dem I2C passiert.
Man koennte auch gucken, wie andere es gemacht haben. Z.B. https://github.com/m1geo/MCP23008_STM32
Man koennte auch gucken, wie andere es gemacht haben.
Das wäre zuviel verlangt. Dann müsste man ja selbst das Denken und Arbeiten anfangen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
