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

Ускорение загрузки

Nikola

New member
Добрый день.
Использую esp 12e в качестве диммера (шим) для LED контролера.
В моем случае важна быстрая загрузка после подачи питания.
Возможно ли ускорить загрузку ботлоадера при старте? Либо как-то назначить HIGH по умолчанию на один из пинов.
Например для ардуинки похожий вопрос решается заливкой optiboot. Есть ли что-то подобное? Подскажите в какую сторону копать.
 

CodeNameHawk

Moderator
Команда форума
В версии платы 2,4,2 быстро подключается к сети, если прописать постоянный IP, MASK, GATEWAY, номер канала, но быстро это около секунды.
(В версии 2,6,2 это плохо работает)

Либо как-то назначить HIGH по умолчанию на один из пинов.
Резистор подтягивающий не пробовали?
 

Nikola

New member
В версии платы 2,4,2 быстро подключается к сети
Наверное я не совсем корректно выразился.
В моем случае не важно как быстро подключается к сети, а важно как быстро заработает LED драйвер.
Соответственно пока esp не подаст сигнал на пин (шим, либо при старте HIGH, который в дальнейшем переходит в шим), LED не горит. Задержка после подачи питания где-то 100~150 мс.
Подтягивающий резистор - точно нет, т.к. драйвер перестанет корректно реагировать на шим.
 

pvvx

Активный участник сообщества
Самое быстрый loader на ESP8266: pvvx/Rapid_Loader
Другие тормознее от двух раз, официальный - тормозит во много-много раз :)


На графике "SDK only" - это запуск на ESP8266 сборки бинарника/прошивки тестового кода на SDK без всяких boot-loader-ов. Время загрузки отмечено "ROM-Loader". Далее отрабатывается тестовый код SDK.
"RapidLoader + SDK" - это запуск на ESP8266 сборки того-же бинарника/прошивки тестового кода на SDK c RapidLoader. Время загрузки отмечено "RapidLoader". Далее отрабатывается тестовый код SDK.
В начале графика - время старта ESP8266 в ROM.
 

Nikola

New member
Спасибо, попробую запустить, но чувствую это будет не просто :)
 
еще один костыль - взять реле-переключатель (3 контакта).

подключение:
1 пин 3,3 V
2 пин лед
3 пин вывод шим с esp
управляющий пин с реле к свободному пину есп на которые будет подаваться сигнал после включения.

алгоритм:
до получения сигнала от есп(до её включения) будут замкнуты 1 и 2 контакт
после загрузки есп она подает сигнал на реле и замыкает 2 и 3 контакт
 
кстати, вариант с подтягивающим резистором можно доработать, если после включения уравновесить его, через транзистор, другим подтягивающим к (-) резистором. Т.е. транзистор по сигналу с есп будет включать резистор между шим и (-)
Так на шим ничего влиять не будет
 

pvvx

Активный участник сообщества
Задержка после подачи питания где-то 100~150 мс.
С RapidLoader вся загрузка будет до 70 мс.
Стандартная - от 110 и далее. Зависит от размеров необходимой подгрузки кода в IRAM и данных в RAM прошивки.
RapidLoader подключается путем копирования его бинарника в начало первого блока прошивки...
В SDK (и в Arduino) есть пользовательская процедура вызываемая до инициализации всяких RF дров и прочего. В ней и пропишите включение ШИМ.
 

Nikola

New member
Идея интересная, подумаю. Интересно как это на сам ШИМ сигнал повлияет.
Контролер драйвера диммируется как через ШИМ так и аналоговым методом - уровнем напряжения. Хотелось бы при старте по умолчанию 50% (если не получится через ускорение загрузчика).
Но т.к. даташит на чип драйвера я так и не нашел, придется пальцем в небо...
 
Идея интересная, подумаю. Интересно как это на сам ШИМ сигнал повлияет.
Контролер драйвера диммируется как через ШИМ так и аналоговым методом - уровнем напряжения. Хотелось бы при старте по умолчанию 50% (если не получится через ускорение загрузчика).
Но т.к. даташит на чип драйвера я так и не нашел, придется пальцем в небо...
при одинаковых сопротивлениях после включения получится делитель напряжения с напряжением 1,65 на контакте ШИМ, так что все в порядке - на работу повлиять не должно.
upload_2020-1-16_14-53-13.png
 

CodeNameHawk

Moderator
Команда форума
Подтягивающий резистор - точно нет, т.к. драйвер перестанет корректно реагировать на шим.
Резистор на шим повлиять не может, другое дело если на выводе организовано преобразование шим - аналог.
Тогда поставьте дополнительно логический элемент ИЛИ .
ili.png
 

pvvx

Активный участник сообщества
Контролер драйвера диммируется как через ШИМ так и аналоговым методом - уровнем напряжения.
Дык поставьте в ШИМ-фильтр емкость с соответствующей постоянной времени RC-цепочки.
Вам что "яркость" надо регулировать со скоростью от 0 до 100% в менее чем 1 сек?
Пример расчета RС:
ChipInfo
upload_2020-1-16_16-9-49.png
 

CodeNameHawk

Moderator
Команда форума
Повлияет на работу. Микросхема драйвера работает по принципу 1~2 В аналоговое диммировние (по напряжение), 2~3 В ШИМ.
Я уже написал на ШИМ не повлияет(сигнал в шим или 1 (+3,3В) или 0( ноль Вольт)), а вот как повлияет на преобразование - это надо смотреть схему.
 

pvvx

Активный участник сообщества
Думаю, что может хватить и такой схемы
Посмотреть вложение 8656
Повлияет.
Лучше оставить GPIO просто входом. На него за время рестарта не будет разражаться выходная емкость через R цепи фильтра ШИМ, а будет нагрузка только входное сопротивление следующего каскада. За 70 мс емкость не разрядится сильно и мигания не будет. Надо всего правильно подобрать RC фильтр ШИМ и при перезагрузке переводить GPIO в input.
Ну а что там ТС будет делать - это по его уровню знаний.
 
Сверху Снизу