Forum: Mikrocontroller und Digitale Elektronik STM32 HAL I2C Daten im Startbyte


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin (martin79)


Lesenswert?

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?

von Monk (roehrmond)


Lesenswert?

Martin schrieb:
> 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.

von Martin (martin79)


Lesenswert?

Steve van de Grens schrieb:
> Das erste Byte ist der Opcode.

Der MCP23008 nutzt aber nur 3 Adressbits. Also einfach DevAddress 
dementsprechend schreiben?

von Monk (roehrmond)


Angehängte Dateien:

Lesenswert?

Martin schrieb:
> 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.

: Bearbeitet durch User
von Vanye R. (vanye_rijan)


Lesenswert?

> 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

von Martin (martin79)


Lesenswert?

Steve van de Grens schrieb:
> Martin schrieb:
>> 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?

von Peter D. (peda)


Lesenswert?

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.

von Thomas W. (dbstw)


Lesenswert?

Man koennte auch gucken, wie andere es gemacht haben. Z.B.
https://github.com/m1geo/MCP23008_STM32

von Wastl (hartundweichware)


Lesenswert?

Thomas W. schrieb:
> 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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.