• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266 и адресная светодиодная лента.

=Agent=

New member
Собственно вопрос очень простой. Мне надо промодулировать сигнал для адресной ленты, схема прилагается.
Передается 24 бита на светодиод. Все мои изыскания привели меня к границе 0.625 микросекунд между сигналами и 1.125 микросекунд на длительность сигнала. Ничего меньше получить не удаётся и соответственно для управления лентой не годится. В лучшем случае просто горит белым.
5aa6e7ee09a64de7bbc088ce40233720.jpg
ESP8266 завёл на 160Mhz. На 80Mhz даже таких параметров не достигалось. По коду:

Инициализация
1612174037915.png
Каждую секунду сбрасывается сторожевой таймер и очень примитивно обрабатывается нажатие кнопки


Сам импульс
1612174114826.png
Функция задержки
1612174152747.png
Если убирать из функции импульса задержку, длинна либо не меняется, либо вообще не выключается сигнал.

Пишу под SDK 2.0.0, собирается под NON_OS_SDK тобеж без RTOS.

Возможно ли реализовать с esp8266 такой протокол вообще ? Если нет, не расстроюсь, но очень хотелось бы. Варианты внешних модулей тоже подойдут.
 

CodeNameHawk

Moderator
Команда форума
Мне надо промодулировать сигнал для адресной ленты,
Где вы тут видите модуляцию?
Ничего меньше получить не удаётся и соответственно для управления лентой не годится.
Так лента даже из по ардуино работает, может просто библиотеку не посмотреть?
 

=Agent=

New member
Где вы тут видите модуляцию?

Так лента даже из по ардуино работает, может просто библиотеку не посмотреть?
То что "даже из под ардуино" работает это я знаю, но им не пользуюсь. Вопрос именно в реализации на SDK, где помимо самого кода работает Wifi подсистема. В данном примере я отключил все функции, кроме формирования непосредственно сигнала, т.к. стабильной работы добиться не смог.
Как иначе вы назовёте перевод двоичной информации в последовательность импульсов, кроме как модуляция ?
Это вполне типичная ситуация, но на ESP у меня не получается добиться нужных параметров.
А все примеры на ардуино сводятся к пропуску тактов на частоте 16Mhz. Тут так не работает.
 

=Agent=

New member
Импульсы они в Африке импульсы.
Я это так обозвал потому-что тут не подходит определение обычного ШИМ сигнала. Соответственно типичные способы не работают. Протокол ленты хорошо известен, да и картинка прилагается.
Впрочем я нашёл только способ изменения частоты аппаратного SPI интерфейса и не думаю что другой найдётся.
 

CodeNameHawk

Moderator
Команда форума
Я это так обозвал потому-что тут не подходит определение обычного ШИМ сигнала.
Как раз подходит, длительность импульса всегда одинаковая, меняется только скважность.
По программе не подскажу, но если делаете ногодрыгом, то надо смотреть импульсы осциллографом на ноге.
 

=Agent=

New member
Как раз подходит, длительность импульса всегда одинаковая, меняется только скважность.
По программе не подскажу, но если делаете ногодрыгом, то надо смотреть импульсы осциллографом на ноге.
Пусть будет так.
Ногодрыгом как-раз не получается. Логический анализатор настроенный на 16Mhz показывает минимальную длительность и задержку как я описал выше. При любых других параметрах контроллер, такое ощущение, запинается где-то. Там либо остаётся висеть высокий сигнал постоянно, либо вообще не отрабатывает. Когда посылал пачку сигналов так вообще из 8 импульсов шёл только 1.
 
Сверху Снизу