Некоторая попытка практического применения предположения теории применения «наборчика заготовок» в виде малых МК для замены отсутствующего в досягаемости потребителя компонента «с мозгами».
Несколько витиевато...
Чуток попроще:
обратился ко мне человек из Николаева-града... так мол и так — есть схемка с восьмилапкой неведомо-китаева происхождения, желательно ее заменить чем местным.
В дополнение к вопросу Семен Семеныч изложил алгоритм работы данного устройства (система поджига газовой колонки).
Только вот на чем ту приблуду собрать?
Меня сие дело заинтересовало с точки зрения практическо-тренировочной работы, вписывающейся в тему о сравнительном функционале МК.
Итак, любезно предоставленная Семен Семенычем схема для ориентации в назначении выводов враждебного МК:
http://img.radiokot.ru/files/20529/slvr6kusz.jpgНе вдаваясь в саму схему (там тоже есть к чему доклепаться — но в данном случае пока оставим на совесть разработчика/копировщика)...
Исходно имеем 8-выводный DIP кристалл с тремя выходами, одним входом и R-C цепочкой генератора. Поиск по просторам инета так ничего путнего о том МК и не дал.
Видимо какой-то «эксклюзив» применения типовой базы.
Из имеющихся в наличии 8-лапых у меня в «коробейке» было два претендента
Attiny13A фирмы Атмел и
PIC12F629 фирмы Микрочип.
Оба кристалла вполне подходят для данной задачи (даже «с избытком»). У каждого есть свои плюсы и свои минусы.
Вобщем для начала была сделана схемка возможного замещения исходного МК претендентами по варианту монтажа:
Тинька оказалась наиболее пригодной в случае прототипа с выводами питания «по диагонали» - плату практически переделывать не требуется.
Однако уровень единицы у тиньки весьма критичен — находится в пределах от низшего в 1,55 вольта до питающего 3 вольта.
У Пика разводка потребует значительных изменений... Зато по уровню логической единицы он значительно «демократичнее» от нижнего в 1 вольт до питающего 3 вольта.
Базовый алгоритм, заложенный в ПО тест-макетов:
Спойлер
включение питания
задержка в исходном состоянии (выводы МК в Z-состоянии)
проверка текущего уровня на /P_flame
если вход закорочен выдать кратковременное включение P_ignits
и полностью блокировать работу системы до полного отключения питания
если /P_flame=1
включить P_ignits
пауза
включить одновременно /P_valve_f и /P_valve
пауза
отключить /P_valve_f
и цикличный опрос /P_flame на наличие 0
если в течении 8 секунд циклического опроса /P_flame так и остался равен1 проводим
отключение /P_valve
пауза
отключение P_ignits
и после паузы в несколько секунд возвращаемся в самое начало программы
если в процессе цикличного опроса обнаружилось /P_flame=0
выключаем P_ignits
и переходим к непрерывному контролю /P_flame на вопрос появления 1 (срыв пламени)
в случае такового отключаем /P_valve и через паузу в несколько секунд переходим в начало программы.
Ежли /P_flame остается в 0 так и работаем без изменений до отключения питания.Проекты с исходниками и скомпилированным *.hex прошивки:
под Аттиньку:
под ПИКушку:
Проекты выполнены и протестированы на макетках исключительно в плане изучения/контроля предоставленной идеи. В связи с особенностями объекта приложения — газовой колонкой практическое использование требует соответствующих разрешительно/лицензионных мероприятий и/или «на свой риск/под собственную ответственность»!!!Теперь еще пару слов по ПИКушке...
Кроме хорошо известных требований к предварительному чтению содержимого на предмет калибровочной константы и флагов уровня калибровки с последующим их ручным вводом при прошивке у простейших 8-лапых ПИКов наблюдается предпочтение прошивке с применением AN589 железа. При других программаторах программа может запустится на исполнение сразу же после завершения прошивки (не допуская даже верификацию — типа «ошибка верификации»). Притом, что прошивка будет завершена успешно.
Состояние фузов и калибровочная константа указаны в исходниках проекта, причем калибровочный байт с моего макетного кристалла (надо или указать свой и перекомпилировать или после загрузки *.hex в программатор (до «записи»!) заменить последний байт вручную).
Состояние фузов у тиньки указано в основном исходнике проекта. Используютсяф все «по умолчанию» , внутренний R-C и активируем WDT.
Оба проекта используют WDT в режиме системного сброса для дополнительной страховки в плане защиты от сбоя программы.
Материал представлен «как есть» как пример возможного оперативного применения технологий замещения БИС с помощью МК и сравнительной оценки одного и того же алгоритма/схемного решения на двух различных семействах МК.