ESP8266-I2C-Driver icon indicating copy to clipboard operation
ESP8266-I2C-Driver copied to clipboard

ошибка в формировании состояния линии i2c REPEATED START

Open Vilkin80 opened this issue 3 years ago • 0 comments

Столкнулся с неправильным формированием "REPEATED START" состояния при взаимодействии с часами MAX31343. esp8266 - 1 master MAX31343 - slave pull-up`s 1K core 3.0.2

Полная посылка на чтения времени: RigolDS5

Более подробно интересующий нас фрагмент: RigolDS1

RigolDS2

тут видно что из-за опережения фронта SCK ошибочно формируется еще и STOP состояние, что рушит обмен с часами RigolDS3

можно оценить несоответствие, а ведь SDA должен быть high задооооолго до SCK: RigolDS4

используемый мной фрагмент кода в котором формируется "REPEATED START"

i2c_handler->beginTransmission(MAX3134X_I2C_W); i2c_handler->write(reg); i2c_handler->endTransmission(false); i2c_handler->requestFrom(MAX3134X_I2C_R, len);

т.е. при endTransmission(false) становится заметна проблема. На мой поверхностный взгляд ошибка в функции twi_write_start (файл core_esp8266_si2c.cpp) там в первых строках по любому будет сформирован STOP.

Vilkin80 avatar Mar 03 '22 12:03 Vilkin80