esp-idf/components/driver
Wangjialin 924daf7b84 bugfix(i2c): reduce speed of I2C master bus reset routine and release SDA
closes https://github.com/espressif/esp-idf/issues/2494
closes https://github.com/espressif/esp-idf/pull/2493
closes https://github.com/espressif/esp-idf/pull/2496

1. Change bus reset to handle interrupted READ sequences.
2. Slow down I2C to 100khz during reset
3. If a SLAVE device was in a read operation when the bus was interrupted, the SLAVE device is controlling SDA.The only bit during the 9 clock cycles of a byte READ the MASTER(ESP32) is guaranteed control over, is during the ACK bit period.
If the SLAVE is sending a stream of ZERO bytes, it will only release SDA during the ACK bit period. The master(ESP32) cannot generate a STOP unless SDA is HIGH. So, this reset code synchronizes the bit stream with, Either, the ACK bit, Or a 1 bit.
2018-11-30 10:08:28 +08:00
..
include/driver driver(rmt): Add API get rmt channel's status. 2018-11-28 07:20:45 +00:00
test test: components/driver: i2c case 2018-11-29 18:27:58 +08:00
CMakeLists.txt esp_ringbuf: move ringbuf to seperate component 2018-09-17 17:04:57 +05:30
Kconfig spi: fix the crash when callbacks are not in the IRAM 2018-11-20 13:07:13 +08:00
adc1_i2s_private.h driver(i2s): fix broken i2s adc mode 2018-02-07 17:17:20 +08:00
can.c CAN: Add pm_lock, fix gpio bug, update docs 2018-09-01 02:46:05 +08:00
component.mk build system: Refactor component.mk to not need component_common.mk 2016-11-10 15:52:22 +11:00
gpio.c driver/gpio: support wakeup function for RTC IOs 2018-09-06 15:40:46 +08:00
i2c.c bugfix(i2c): reduce speed of I2C master bus reset routine and release SDA 2018-11-30 10:08:28 +08:00
i2s.c i2s: add (optional) support to clear tx descriptor in underflow case 2018-11-23 14:31:09 +05:30
ledc.c bugfix(ledc): fix bugs reported from unit-test and github. 2018-07-10 02:22:23 +08:00
mcpwm.c driver(mcpwm): Fix mcpwm api in mcpwm.c mismatch with mcpwm.h bug. 2018-06-22 12:26:43 +08:00
pcnt.c Add some comments in pcnt.h. 2018-07-24 10:33:58 +08:00
periph_ctrl.c aes/sha/mpi: Bugfix a use of shared registers. 2018-11-05 04:22:47 +00:00
rmt.c driver(rmt): Add API get rmt channel's status. 2018-11-28 07:20:45 +00:00
rtc_module.c driver/gpio: support wakeup function for RTC IOs 2018-09-06 15:40:46 +08:00
sdio_slave.c sdio_slave: fix the ret_queue crash issue when being reset by the master 2018-09-25 20:30:25 +08:00
sdmmc_host.c sdmmc: implement partial DDR support 2018-08-30 13:11:54 +08:00
sdmmc_private.h sdmmc: implement partial DDR support 2018-08-30 13:11:54 +08:00
sdmmc_transaction.c sdmmc: implement partial DDR support 2018-08-30 13:11:54 +08:00
sdspi_crc.c Replace all DOS line endings with Unix 2018-07-12 19:10:37 +08:00
sdspi_crc.h Replace all DOS line endings with Unix 2018-07-12 19:10:37 +08:00
sdspi_host.c Replace all DOS line endings with Unix 2018-07-12 19:10:37 +08:00
sdspi_private.h Replace all DOS line endings with Unix 2018-07-12 19:10:37 +08:00
sdspi_transaction.c feature(sdio): allow to enable internal pullups of the SDIO host and slave as a debug feature 2018-06-14 12:04:22 +08:00
sigmadelta.c components/driver: 'const' all config calls. 2017-04-13 18:33:33 +01:00
spi_common.c spi: shown owner of spi host explicitly 2018-10-29 20:22:44 +08:00
spi_master.c spi: fix the crash when callbacks are not in the IRAM 2018-11-20 13:07:13 +08:00
spi_slave.c spi: fix the crash when callbacks are not in the IRAM 2018-11-20 13:07:13 +08:00
timer.c Timer API docs update, refactored example 2017-10-27 07:13:59 +02:00
uart.c driver(uart): fixed uart read error bug when using dual core. 2018-11-27 20:53:26 +08:00