Forum: Mikrocontroller und Digitale Elektronik Stm32 I2C sendet falsche Adresse


von David (Gast)


Lesenswert?

Ich habe folgendes problem ich übergebe der Funktion I2C_Send7bitAddress 
die adresse 0x48 (DS1621). Ich bekomme kein Ack obwohl ich sicher bin 
das die Adresse korekt ist. Wenn ich das Programm Debuge wird aber 
angezeigt das ich 0x24 auf den Bus schicke. Was genau die Hälfte der 
eigentlichen Adresse ist. Wenn ich die Adresse 0x90 das doppelte von 
0x48 der Funktione übergebe  schick ich laut Debug 0x48 auf den Bus und 
ich bekomme ein Ack von dem DS1621. Hat vielleicht irgendwer eine Ahnung 
was das Problem sein könnte?

Danke schon mal im voraus

von slowslow (Gast)


Lesenswert?

Schau doch mal in die Specs von i2c.
Da gibts ein R/W-bit im Adressbereich.

von Olaf (Gast)


Lesenswert?

> Hat vielleicht irgendwer eine Ahnung
> was das Problem sein könnte?

Ja, Datenblatt ohne Brille gelesen. :-D

Dir ist offenbar entgangen das I2C-Adressen 7Bit Werte sind
die um 1Bit geshiftet uebertragen werden damit noch das RW
Bit ins Register passt.

Aber mach dir nichts draus, das ist jedem schonmal passiert.

Olaf

von David (Gast)


Lesenswert?

Die Funktion ist aus der Firmware lib von stm32 und erhält als parameter 
bereits R/W also nehme ich an das die Funktion dieses bit bereits 
anhängt.

von (prx) A. K. (prx)


Lesenswert?

Je nach Laune des jeweiligen Programmierers werden Adressen in 
I2C-Funktionen wahlweise in 8 Bits mit integriertem R/W-Bit und mal in 7 
Bits codiert/angezeigt.

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.