Чтобы не было вопросов предыстория:
Несколько лет назад меня попросили за денежку разработать конвертор интерфейса, из какого то своего протокола работающего по UART (русские производители пром автоматики просто изобретатели всякой ереси в частности ТБН) в то что поддерживала любая скада, недолго думая изучив и поэксперементировав с устройством было принято решение сделать конвертор в MOD BUS, в итоге родилось очень миниатюрное изделие вида :
485/ModBus->Max 485->ATtiny->Разъем DB9-> ТБН тепло счетчик ну и еще диод кандер и 7805 для питания, все это в виде комка в лезло в тот же разъём того же DB9
Развитие проблемы:
Устройство собирается их спецами, я поставляю только лоченые запрограммированные микрухи, дабы мне немного отчисляли денежег и все бы хорошо, но вот ТБН выпустил новые приборы и изменил протокол, и естественно старые стали хоть и работать но с ограничениями... надо как бы сделать новую прошивку, и она сделана и есть новые микрухи, и проблем нет , то есть версия 1 и версия 2, сами понимаете им прошивку не даю ибо ...
Суть проблемы:
Недавно подкралась проблема что так же ТБН поступил с остальными приборами и теперь у них зоопарк из 3х версий протокола, и 5 или даже 7 разных (табиц параметров)
короче надо делать целый зоопарк прошивок, и посетила меня мысль что устройство должно прошиваться штатно, с помощью зашифрованной прошивки дабы не стырили ...
Идея:
Придумана следующая идея, создать бутлоадер(не проблема) который бы проверял факт того что просят от него перейти в режим прошивки и получал бы по любому интерфейсу данные , декодировал и шился бы, а если не требуют то стартовал уже имеющуюся прошивку ...
Первая реализация ... так как на счастье у Тиньки осталась свободная лапа к ней бала прикручена микро кнопка, бутлоадер проверял состояние пина и все работает...
Текущая идея:
Все как и в первом случае, но добавить к этой кнопке функцию сброса, это позволит:
1-не вытаскивать устройство с места
2-не демонтировать его из сети вообще
3- а придти на нужное место нажать подержать и шить через ту же скаду ибо отправить в поток можно все что угодно ..
но столкнулся с проблемой первая схема была такой :
Логика работы оператора была такая , что нужно на устройстве нажать на кнопку и подержать 10 секунд для входа в режим программирования, защита от случайностей, иначе устройство продолжает работать как ни в чем не бывало...
Бутлоадер просто после сброса требует удержания Pin'а в течении 10 секунд примерно, для подтверждения начинает мигать лампочкой связи (таковая была)
Суть проблемы :
Это как бы работает, но как выяснилось во время массового перепрошивания, сброс срабатывает только раз в 30-60 секунд , то есть кондер не разряжается ...
Кто То может подсказать каким образом рассчитать это дело ? чтобы он за 1-5 секунд входил в разряд ... ???
p.s. Много написал , чтобы изложить идею вдруг кому потребуется
p.p.s И да у меня очень хреново с аналоговой частью ... я бы сказал что хромает на обе ноги... ТАк что без кидания тапак, тыкания котенка носом в теорию ... можешь помоги нет пройди мимо, не надо гадить в чужой тазик ...
