[Ovmsdev] ESP32 CAN controller hardware bug / interrupt issue

Craig Leres leres at xse.com
Sat Apr 3 00:09:10 HKT 2021


On 4/1/21 11:51 PM, Michael Balzer wrote:
> It's 17 months after my report, and – lo & behold – Espressif just fixed 
> the issue in their TWAI driver:
> 
> https://github.com/espressif/esp-idf/commit/2f5806092135e3d991057bc06225bdcf536e93a5
> 
> The commit includes three more workarounds for hardware bugs (see 
> options added to Kconfig) probably worth checking for our driver:
> 
>  1. "Add SW workaround for REC change during bus-off" – apparently the
>     receive error counter can get stuck on a bus-off event preventing
>     recovery
>  2. "Add SW workaround for TX interrupt lost errata" – apparently
>     there's a race condition when reading the transmit interrupt
>  3. "Add SW workaround for invalid RX frame errata" – this already has
>     been spotted by Craig, and he's added a counter for this, but it
>     seems the fix also does a controller reset when this occurs → we
>     probably should do so as well?
> 
> Issue #1 could be the cause for the occasional CAN1 freezes we see, with 
> the CAN watchdog being our current workaround. #2 could cause a similar 
> effect, especially on a polling-only bus.
> 
> So it could be worth porting those fixes to our driver. Craig, do you 
> want to take this on?

I'll see what I can come up with this weekend.

		Craig


More information about the OvmsDev mailing list