Page 1 of 1

Stable period timer

Posted: Wed Jan 26, 2022 5:20 am
by alb702
Hello. This question as addition to previous post.

I'm use ESP IDF Master branch on ESP32C3.

My application have led indicator with dynamic scan. Leds are on shift register, which connected
to ESP32 SPI2. Leds control array size 4 bytes, update time on SPI about 15 us. Update period 1000 us.
Update called from task cycle, included vTaskDelay(1 / portTICK_PERIOD_MS). SPI transfer function
is IRAM_ATTR.
It work.

But when i run other task, which download file from Wifi network and store it to SPIFFS partition, leds are "blinking". It mean, update period became unstable. I'm try to set high priority of led task(5), or call leds update from timer interrupt ISR, but no success. Always "blinking".

Download task consist of two action: recevie packet (size=512 bytes) from network and store data to file. Critical in my case is writting to file.

What a workaroud? File download is backgound task, may be low priority.

-----------------
My config items:

FreeRTOS tick rate : 1000
--
SPI Flash driver
[ ] Verify SPI Flash writes
[*] Enable yeld operations during flash erase
(8192) Flash write chunk size

SPIFFS:
[*] Enable SPIFFS page check

[*] Enable SPIFFS cache
[*] Enable SPIFFS Write Caching
[ ] Enable SPIFFS Cache statistic