ESP8266 на апаратных возможностях для адресных лент
Добавлено: 24 дек 2025, 14:44
тестовый вариант
Используем аппаратную периферию I2S с эмуляцией под DMA, хотя физически его у него нету.
Предполагается намного низкая загруженность CPU, по сравнению с FastLED и NeoPixel.
А так же невлияние на Wi-Fi (вероятно, надо проверять).
Задействован пин RX который теперь занят.
По замерам, покрайней мере для бегущих огней с 50 мс, справляется без проблем: вертит на 2,4 МГц импульсы.
А вот с Wi-Fi пачки остались те же, даже частота не сбилась благодаря аппаратнику. Но вот прерывания в 100 мс, где пропадает один пакет, тут пока не знаю: либо особенность работы Wi-Fi, либо это вариант оптимизации флпрог для Wi-Fi. Да и при этом Wi-Fi работает идеально: раз в 1 сек принимает данные непрерывно.
Возможно, скорость ленты надо уменьшить. На такое расстояние у меня её нету, поэтому поставил наобум пока.
По производительности циклов:
Зацикливание переменной с вызовом маски пина обходится в 87к (от неё и отталкиваемся).
1000 светодиодов – 66к.
500 светодиодов – 66к.
500 светодиодов + Wi-Fi – 52к.
Замеры взяты за единичные свободные повторяющиеся циклы без привязки ко времени, поэтому туда не входят прерывания.
Ну и для автора флпрога немного этой информации для размышления: возможно, стоит обратить внимание на аппаратные периферии для этой тематики раз он за неё взялся.
Единственное, что не понравилось, — это отсутствие одного пакета при Wi-Fi.
Если интересно кому, можно развить тему на этом МК дальше.
У меня нет адресных лент, тестировать не на чем.
Используем аппаратную периферию I2S с эмуляцией под DMA, хотя физически его у него нету.
Предполагается намного низкая загруженность CPU, по сравнению с FastLED и NeoPixel.
А так же невлияние на Wi-Fi (вероятно, надо проверять).
Задействован пин RX который теперь занят.
По замерам, покрайней мере для бегущих огней с 50 мс, справляется без проблем: вертит на 2,4 МГц импульсы.
А вот с Wi-Fi пачки остались те же, даже частота не сбилась благодаря аппаратнику. Но вот прерывания в 100 мс, где пропадает один пакет, тут пока не знаю: либо особенность работы Wi-Fi, либо это вариант оптимизации флпрог для Wi-Fi. Да и при этом Wi-Fi работает идеально: раз в 1 сек принимает данные непрерывно.
Возможно, скорость ленты надо уменьшить. На такое расстояние у меня её нету, поэтому поставил наобум пока.
По производительности циклов:
Зацикливание переменной с вызовом маски пина обходится в 87к (от неё и отталкиваемся).
1000 светодиодов – 66к.
500 светодиодов – 66к.
500 светодиодов + Wi-Fi – 52к.
Замеры взяты за единичные свободные повторяющиеся циклы без привязки ко времени, поэтому туда не входят прерывания.
Ну и для автора флпрога немного этой информации для размышления: возможно, стоит обратить внимание на аппаратные периферии для этой тематики раз он за неё взялся.
Единственное, что не понравилось, — это отсутствие одного пакета при Wi-Fi.
Если интересно кому, можно развить тему на этом МК дальше.
У меня нет адресных лент, тестировать не на чем.