使用ESP32-C3 RMT外设驱动W2812
Posted: Wed Nov 23, 2022 1:23 am
by Len_Zhou
使用ESP32-C3 RMT外设驱动W2812, 发现WIFI运行时W2812会闪烁。
https://docs.espressif.com/projects/esp ... 2812-wi-fi
FAQ中有说这个问题。
使用其他外设如SPI或者LEDC能解决这个问题吗。
Re: 使用ESP32-C3 RMT外设驱动W2812
Posted: Thu Nov 24, 2022 2:43 am
by ESP_morris
主要原因是用RMT电灯会频繁进入RMT的传输半满中断,wifi的中断优先级非常高,会抢占掉rmt中断,直接导致rmt因为没有及时响应中断而导致发送错误。
解决办法就是使用带DMA的外设去模拟这个时序,比如SPI.
另外,S3上的RMT带有DMA,所以如果你用S3上的RMT(驱动中开启DMA)的话,也不会有问题
Re: 使用ESP32-C3 RMT外设驱动W2812
Posted: Thu Nov 24, 2022 2:50 am
by Len_Zhou
ESP_morris wrote: ↑Thu Nov 24, 2022 2:43 am
主要原因是用RMT电灯会频繁进入RMT的传输半满中断,wifi的中断优先级非常高,会抢占掉rmt中断,直接导致rmt因为没有及时响应中断而导致发送错误。
解决办法就是使用带DMA的外设去模拟这个时序,比如SPI.
另外,S3上的RMT带有DMA,所以如果你用S3上的RMT(驱动中开启DMA)的话,也不会有问题
感谢回复,有没有SPI带DMA的例程参考