espressif / arduino-esp32

Arduino core for the ESP32
GNU Lesser General Public License v2.1
13.62k stars 7.41k forks source link

[ESP32] I2C Interrupt problem since uprade to Espressif 1.1.0 #1588

Closed cyberman54 closed 6 years ago

cyberman54 commented 6 years ago

I'm using u8x8 on ESP32 boards, programmed with Arduino Espressif32 core. I2C display handling using driver U8X8_SSD1306_128X64_NONAME_HW_I2C

This worked perfectly until last days the Espressif32 core was updated from v1.0.2 to v1.1.0.

Since then i get this error during runtime: [E][esp32-hal-i2c.c:594] i2c_isr_handler_default(): eject int=0x0, ena=0x0

And the display write speed is significantly reduced.

I'm not sure if this is a problem with u8x8 or the Espressif32 core. I'm not using any other I2C communication on the board.

Cross reference to u8x8: https://github.com/olikraus/u8g2/issues/646#issuecomment-402372457

helmut64 commented 6 years ago

FYI: For the Rodan DS3231 library I fixed the I2C ESP32 support, basically via a timeout loop around the Wire.requestFrom() as proposed by you. A "Wire.available()" check is an alternate option I tested, however the timeout loop is better because it avoids hangs. The new Rodan DS3231 library (tested on ARV, D21 and ESP32) is available now. Regards Helmut

copercini commented 6 years ago

Fixed on https://github.com/espressif/arduino-esp32/pull/1767 =)