esp-idf/components/driver
Darian Leung f3a8a911c0 twai: Add errata workaround for listen only mode
This commit adds a workaround for the TWAI listen only mode errata which is
present on the ESP32, ESP32-S2, ESP32-S3, and ESP32-C3. twai_get_status_info()
has also been updated to account for the fact that TEC/REC are frozen in
listen only mode.

Errata Description:

When the TWAI controller is put into listen only mode, it should not influence
the TWAI bus in any way (i.e., should never send a dominant bit). However,
on the targets listed above, the TWAI controller will send dominant bits in an
error frame (i.e., active error frame), even if the controller is set to listen
only mode.

Workaround:

We can force the TWAI controller into the error passive state on startup (by
setting the REC to >= 128). Since the TEC/REC are frozen in listen only mode,
the TWAI controller will remain error passive and only send recessive bits
(i.e., passive error frames), thus will not influence the TWAI bus.

Closes https://github.com/espressif/esp-idf/issues/9157
2023-02-24 20:38:37 +08:00
..
esp32 ESP32: Fix xtal 32k not oscillate or oscillate too slowly issue 2022-03-30 15:27:03 +08:00
esp32s2 adc: apply adc power API to adc driver 2022-01-06 11:42:55 +08:00
include/driver Update the note of the gpio_intr_enable function 2022-07-26 12:39:42 +00:00
test driver: uart rs485 fix test sync issues and fail threshold (backport v4.2) 2022-09-15 15:23:21 +08:00
adc1_private.h adc_i2s: solve the i2s_adc issue when using wifi 2020-12-14 19:33:35 +08:00
adc_common.c adc: apply adc power API to adc driver 2022-01-06 11:42:55 +08:00
CMakeLists.txt TWAI: FIFO overrun handling and errata workarounds 2022-02-15 14:16:53 +08:00
component.mk driver(adc/dac): fix adc dac driver for esp32s2 2020-04-01 12:41:51 +08:00
dac_common.c Driver(dac): fix DAC-DMA driver and unit test 2020-09-28 19:35:07 +08:00
gpio.c gpio: Bugfix - Move esp_intr_free() out of the critical section in gpio_uninstall_isr_service() 2021-12-30 14:45:13 +08:00
i2c.c I2C: patch for solving watchdog timeout issue 2022-10-10 11:05:25 +08:00
i2s.c i2s: fix write failure issue in slave mode (backport v4.2) 2022-03-03 15:16:53 +08:00
Kconfig twai: Add errata workaround for listen only mode 2023-02-24 20:38:37 +08:00
ledc.c ledc: Fix FADE_NO_WAIT mode concurrency problem. 2022-03-29 03:42:06 +00:00
linker.lf TWAI: FIFO overrun handling and errata workarounds 2022-02-15 14:16:53 +08:00
mcpwm.c mcpwm: fix second fault line broken 2021-01-27 14:56:33 +08:00
pcnt.c pcnt: fix bug in clear interrupt status 2020-09-30 11:13:17 +08:00
periph_ctrl.c TWAI: FIFO overrun handling and errata workarounds 2022-02-15 14:16:53 +08:00
rmt.c driver(RMT): Fix the breaking change issue of RMT driver introduced by refactoring. 2020-05-19 11:39:38 +08:00
rtc_io.c rtcio: add hal for driver 2019-11-21 10:40:49 +08:00
rtc_module.c global: rename esp32s2beta to esp32s2 2020-01-22 12:14:38 +08:00
sdio_slave.c Merge branch 'fix/sdio_slave_recv_intr_unhandled_v4.2' into 'release/v4.2' 2022-03-15 22:06:19 +08:00
sdkconfig.rename Rename Kconfig options (components/driver) 2019-05-21 09:09:01 +02:00
sdmmc_host.c sdmmc: Correctly check function parameters before using them 2020-05-20 13:09:05 +08:00
sdmmc_private.h tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
sdmmc_transaction.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
sdspi_crc.c sdspi: support crc16_be for esp32s2 2020-02-12 15:15:46 +08:00
sdspi_crc.h Replace all DOS line endings with Unix 2018-07-12 19:10:37 +08:00
sdspi_host.c sdspi: use polling transactions to increase reading speed. 2020-02-12 15:16:19 +08:00
sdspi_private.h sdspi, vfs_fat: allow sharing SPI bus among devices, and mounting multiple SD cards 2020-02-12 15:16:08 +08:00
sdspi_transaction.c driver: remove unused drivers for esp32s2beta 2019-09-04 10:53:25 +10:00
sigmadelta.c refactor(sigmadelta): add hal sigmadelta driver 2019-11-21 11:53:07 +08:00
spi_bus_lock.c SPI_BUS_LOCK: fix a concurrency issue 2022-09-14 12:15:06 +08:00
spi_common.c spi: fixed crash when calling spi_bus_free when not initialized 2022-03-27 02:41:09 +08:00
spi_master.c spi_master: fix the error log when use tx/rx_data with larger data 2022-04-18 15:15:06 +08:00
spi_slave.c spi_slave: fix slave can't use iomux bus mixed with gpio cs_pin 2022-12-01 20:36:14 +08:00
timer.c modbus: fix esp restart does not reset timer groups periph (backport v4.2) 2022-07-11 16:42:42 +08:00
touch_sensor_common.c global: rename esp32s2beta to esp32s2 2020-01-22 12:14:38 +08:00
twai.c twai: Add errata workaround for listen only mode 2023-02-24 20:38:37 +08:00
uart.c uart: Fix unwanted processing of TX_DONE interrupt immediately after calling uart_wait_tx_done() 2022-09-23 16:24:30 +08:00