Releases: stickbreaker/arduino-esp32
w/Hardware Reset, bus_busy recovery, glitch prevention
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
Changes:
- Merge arduino-esp32 09MAR2018 1923GMT 3a4e66
- fix signal glitch when attaching SCL, SDA pins. Thanks @ESP32DE
Initial Master Mode only I2C
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