You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@enhany Thanks for reporting the issue. This seems like a hardware limitation that we can't workaround very well at the moment. The issue is that, the memory copy engine will occupy one of the DMA trigger ID that used by other peripherals. And by default, we set the trigger ID to zero for memory copy, however, this ID is also used by SPI2.
For now, you can just change them to 2, your SPI2 should work again.
In the future, we should make the user ID selectable from the menuconfig. But we can't change the situation that the memcpy takes another perpheral's DMA.
Edit: the hardware limitation is removed since ESP32C6.
1. add check in the gdma driver, to prevent multiple channels connecting
to the same peripheral
2. memory copy DMA ID will occupy the peripheral's DMA ID on some ESP
targets (e.g. esp32c3/s3). We should search for a free one when
install async memcpy driver.
Closes#10575
1. add check in the gdma driver, to prevent multiple channels connecting
to the same peripheral
2. memory copy DMA ID will occupy the peripheral's DMA ID on some ESP
targets (e.g. esp32c3/s3). We should search for a free one when
install async memcpy driver.
Closes#10575
Answers checklist.
General issue report
Slave SPI DMA and async memcpy doesn't work together.
Device: ESP32-C3 (any devboard or chip)
How to reproduce:
Initialize async memcpy code:
The text was updated successfully, but these errors were encountered: