Gast
#4334627
Hallo Forum, ich habe hier einen STM32F103VB und daran angeschlossen an I2C1 ist ein EEPROM. Nach Konfiguration der CPAL klappt auch ein einfaches Schreiben und Zurücklesen von Werten in und aus dem EEPROM. Verwendet wird der DMA mode. Dazu verwende ich das Beispiel aus stm32_eval_i2c_ee_cpal.c. Wenn ich mir die Übertragung im Logic Analyzer ansehe, dann sehe ich, dass die Übertragung komisch segmentiert ist. Selbst der erste Testbuffer "ABC" wird nicht komplett in einem Transfer übertragen. EEPROM Schreibadresse: 0xA2 Ablauf: Schreiben von "ABC" ab Adresse 0x001F. Zurücklesen Schreiben von "DEFG" ab Adresse 0x1F3F. Zurücklesen Dieser Ablauf ist mit dem Logic Analyzer als 5 Transfer Blöcke zu sehen. Zwischen den Transfer Blöcken liegen rund 31ms. Die Blöcke sind nicht gleich lang. Zwischen Auslesen der ersten Zeichenfolge und Schreiben der zweiten Zeichenfolge liegt fast keine Pause (transfer3.png). Es funktioniert also alles korrekt, nur die Zeitliche Abfolge und die Segmentierung wundern bzw. stören mich etwas. Im 1. Transfer wird beispielsweise nach dem "A" mit einem STOP abgebrochen. Dann kommt ein Start mit WRITE und ein NAK... dann dauert es ~31ms und dann geht es korrekt weiter. Hat jemand eine Idee was in der CPAL zu dieser Segmentierung führen könnte?




