Skip to content

Releases: stickbreaker/arduino-esp32

w/Hardware Reset, bus_busy recovery, glitch prevention

14 Mar 23:04
bb24e52
Compare
Choose a tag to compare

With this Release V0.2.0 14MAR2018, Wire() can handle a bus fault, Grounding SDA and or SCL is now recoverable. The bus_busy cascade failure should be solved!

The signal glitch that was created when attaching pins to the i2c peripheral has also been solved!

A bus_busy status is now auto-magically cleared. When this status is detected upon entry into the hal layer i2cProcQueue(), i2cProcQueue() immediately returns I2C_ERROR_BUSY which causes TwoWire() to attempt to clear the bus, first TwoWire() re-inits the i2c peripheral with a hardware reset!, then it attempts to cycle the i2c bus manually. TwoWire() then retries the transaction once. If the bus did not clear, the I2C_ERROR_BUSY is returned to the app.

This branch should handle both I2C peripherals at the same time, UnTESTED, but, it should work.

Catchup 3a4e66

09 Mar 20:38
0f79fa0
Compare
Choose a tag to compare

Changes:

Initial Master Mode only I2C

18 Jan 21:58
b502fd7
Compare
Choose a tag to compare

18JAN2018
Initial release, this release only supports the first I2C channel I2C0 in Master Mode. This release is preparatory for initial Slave Mode merging. This code was forked from espressif/Arduino-esp32 November 27,2017

The attached zip only contains the modified/new files:

  • examples in libraries/Wire/examples
  • readme in libraries/Wire/doc
  • readme in root
  • modified files
    • cores/esp32/esp32-hal-i2c.h
    • cores/esp32/esp32-hal-i2c.cpp
    • cores/esp32/esp32-hal-log.h
    • libraries/Wire/src/Wire.h
    • libraries/Wire/src/Wire.cpp

Chuck