使用ESP32-C3 RMT外设驱动W2812

Len_Zhou
Posts: 2
Joined: Wed Nov 23, 2022 1:15 am

使用ESP32-C3 RMT外设驱动W2812

Postby Len_Zhou » Wed Nov 23, 2022 1:23 am

使用ESP32-C3 RMT外设驱动W2812, 发现WIFI运行时W2812会闪烁。
https://docs.espressif.com/projects/esp ... 2812-wi-fi
FAQ中有说这个问题。
使用其他外设如SPI或者LEDC能解决这个问题吗。

ESP_morris
Posts: 290
Joined: Wed Sep 05, 2018 6:23 am

Re: 使用ESP32-C3 RMT外设驱动W2812

Postby ESP_morris » Thu Nov 24, 2022 2:43 am

主要原因是用RMT电灯会频繁进入RMT的传输半满中断,wifi的中断优先级非常高,会抢占掉rmt中断,直接导致rmt因为没有及时响应中断而导致发送错误。

解决办法就是使用带DMA的外设去模拟这个时序,比如SPI.

另外,S3上的RMT带有DMA,所以如果你用S3上的RMT(驱动中开启DMA)的话,也不会有问题

Len_Zhou
Posts: 2
Joined: Wed Nov 23, 2022 1:15 am

Re: 使用ESP32-C3 RMT外设驱动W2812

Postby Len_Zhou » Thu Nov 24, 2022 2:50 am

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的例程参考

Who is online

Users browsing this forum: No registered users and 100 guests