ESP32 I2C PCF8574 read issue
Posted: Mon Jul 01, 2019 3:30 am
In February 2018, I ran my sketch (arduino IDE) in my project - ESP32 digital voltmeter and it worked fine -
Arduino IDE 1.8.5 and ESP32 Board version 1.0.0.
The communication of the digital voltmeter is made with PCF8574 I2C interface. Pullups resistors are 3K3 ohms (VCC = 3.3V)
https://www.elektormagazine.com/labs/es ... /labs/1459
https://github.com/Gustavomurta/ESP32-DVM
The complete voltmeter reading data code is:
https://github.com/Gustavomurta/ESP32-D ... _PT_V1.ino
Now with Arduino 1.8.9 and ESP32 Board version 1.0.2, the I2C runs in crazy mode. The SCL pin sends continuous pulses and the SDA sends erroneous data (checked with logic analyzer).
My ESP32 is DOIT ESP32 DevKit V1 and the hardware is OK and checked with my I2C scanner. (based on Nick Gammon).
https://github.com/Gustavomurta/ESP32-D ... anner2.ino
https://github.com/Gustavomurta/ESP32-D ... 5%20V3.jpg
Researching this problem with the Debug option, I found these messages, but I do not know what it is meaning.
Can someone help me? Thanks in advance.
Arduino IDE 1.8.5 and ESP32 Board version 1.0.0.
The communication of the digital voltmeter is made with PCF8574 I2C interface. Pullups resistors are 3K3 ohms (VCC = 3.3V)
https://www.elektormagazine.com/labs/es ... /labs/1459
https://github.com/Gustavomurta/ESP32-DVM
The complete voltmeter reading data code is:
https://github.com/Gustavomurta/ESP32-D ... _PT_V1.ino
Code: Select all
Wire.begin(); // Start I2C
Wire.requestFrom(PCF8574, 1); // Read One Byte from PCF8574
pcfData = Wire.read(); // Byte Read
My ESP32 is DOIT ESP32 DevKit V1 and the hardware is OK and checked with my I2C scanner. (based on Nick Gammon).
https://github.com/Gustavomurta/ESP32-D ... anner2.ino
https://github.com/Gustavomurta/ESP32-D ... 5%20V3.jpg
Researching this problem with the Debug option, I found these messages, but I do not know what it is meaning.
Code: Select all
debugFlags=0x00000000
[I][esp32-hal-i2c.c:311] i2cDumpDqData(): Debug Buffer not Enabled
[I][esp32-hal-i2c.c:354] i2cDumpInts(): Debug Buffer not Enabled
[D][esp32-hal-i2c.c:1336] i2cProcQueue(): Busy Timeout start=0x303a4, end=0x303a4, =0, max=50 error=0
[E][esp32-hal-i2c.c:318] i2cDumpI2c(): i2c=0x3ffbebe0
[I][esp32-hal-i2c.c:319] i2cDumpI2c(): dev=0x60013000 date=0x16042000
[I][esp32-hal-i2c.c:321] i2cDumpI2c(): lock=0x3ffb84ec
[I][esp32-hal-i2c.c:323] i2cDumpI2c(): num=0
[I][esp32-hal-i2c.c:324] i2cDumpI2c(): mode=1
[I][esp32-hal-i2c.c:325] i2cDumpI2c(): stage=3
[I][esp32-hal-i2c.c:326] i2cDumpI2c(): error=0
[I][esp32-hal-i2c.c:327] i2cDumpI2c(): event=0x3ffb8570 bits=0
[I][esp32-hal-i2c.c:328] i2cDumpI2c(): intr_handle=0x3ffb85a0
[I][esp32-hal-i2c.c:329] i2cDumpI2c(): dq=0x3ffb854c
[I][esp32-hal-i2c.c:330] i2cDumpI2c(): queueCount=1
[I][esp32-hal-i2c.c:331] i2cDumpI2c(): queuePos=0
[I][esp32-hal-i2c.c:332] i2cDumpI2c(): errorByteCnt=0
[I][esp32-hal-i2c.c:333] i2cDumpI2c(): errorQueue=0
[I][esp32-hal-i2c.c:334] i2cDumpI2c(): debugFlags=0x00000000
Can someone help me? Thanks in advance.