• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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.
Ну а что там ТС будет делать - это по его уровню знаний.
 
Сверху Снизу