Hallo,
hat jemand von euch schon mal einen STM32(F3/F4) per I2C im
Bootloadermodus angesprochen? Also zB Befehle wie GetVersion, GetID?
Folgender Aufbau:
[Mikrocontroller 1] ---- I2C ----- [Mikrocontroller 2]
Mikrocontroller 1 greift per I2C auf Mikrocontroller 2 zu (dieser ist im
Bootloadermodus (Boot0, Boot1 usw)).
Grundlegend reagiert der Mikrocontroller 2 auf die Adresse auf dem Bus
und er ACK't auch meine Anfragen, aber was nicht funktioniert ist das
konkrete Auslesen, also zB der GetVersion-Command.
Ich schicke die 7-Bit-Adresse (als Master Transmitter), bekomme ein ACK,
schicke das erste Byte (0x01 als Command) und das XOR dazu (0xFE),
bekomme wieder ein ACK. Als nächstes würde mir der Mikrocontroller 2
dann drei Bytes als Antwort schicken - dazu müsste ich ja im Normalfall
ein Repeated-Start generieren, also ein Start ohne vorheriges Stopp mit
Read-Flag gesetzt (Direction = Receiver).
Aber auf das Repeated-Start bekomme ich nur ein NACK und daraufhin wird
die Übertragung beendet.
Anbei ein Screenshot aus dem Logicanalyzer.
Vlt. kann mir ja jemand einen heißen Tipp geben?
Danke und VG