Обновить

Двухканальный термостат на ATtiny2313: выжимаем максимум из кристалла на чистом ассемблере

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.6K
Всего голосов 6: ↑6 и ↓0+7
Комментарии10

Комментарии 10

питание было собрано на классическом малогабаритном трансформаторе и понижающей микросхеме MC34063.

230В на 5В на 34063? Или все таки с стабильного низковольтного питания перешли напрямую на 230?

Глядя на плату прям сразу вопрос а где классическая керамика прям около МК?

Не замечал у AVRок какой-то привередливости к питанию, в отладке на 128меге у меня например стоит широкодиапазонный сепик который гадит дай боже, единственное Aref жестко зафильтрована RC, ну и на всех микросхемах кондесаторы.

Я вот тоже сколько переделал усторйств ни разу на аврках не отмечал подобного. По питанию было так: малогабаритный трансик 230/12, мост, ну и далее MC34063 со своей обвязкой. Работало всегда на ура, мощности с лихвой хватало. В свое время возникла проблема с трансформаторами, поэтому был начат поиск готового решения. И оно нашлось. Термостат разработан уже лет как 14 назад, и в варианте с трансом никаких проблем никогда не было и до сих пор нет.

В свое время возникла проблема с трансформаторами, поэтому был начат поиск готового решения.

Да вроде лежат в магазинах, помниться даже раньше дороже были, глянул ЧД 200р за 0,2А в исполнении на плату. Импульсник сравнимой с трансформатором неубиваемости, как бы не 10х стоить будет.

У вас со схемотехникой питания и разводкой платы проблемы. Потому что глюки и зависания случаются только когда блок питания ну совсем уж неисправен. Ваша адаптация под современные блоки питания это всё костыли.

При всем уважении к автору - в таком исполнении на устройстве должна быть надпись: "Эксплуатация допускается только под присмотром потребителя". Потому что без присмотра такое оставлять нельзя!

  • Ни одного упоминания об аппаратном WDT (причем не с прерыванием где флаг сбрасывается, а со сбросом только при нормальном состоянии устройства и датчиков). Автор уже встретился с тем, что ЭМП могут произвольно менять флаги в регистрах, а устройство - зависать, но выводов не сделал...

  • При этом, я бы не доверял и аппаратному WDT. Когда вы управляете чем-то нагревающим, да с мощностью в киловатты - наверное не трудно поставить пару транзисторов и разделительный конденсатор, чтобы работа нагревателя разрешалась не постоянным уровнем на ноге, а меандром (который генерируется не через PWM на канале таймера, а честным дерганьем PORTx в основном цикле при условии что датчики и данные с них идут нормальным потоком).

  • При этом, я бы не доверял и этому - потому что при пробитии транзистора или симмистора оно все-равно может неуправляемо разгоняться. Поэтому нужна независимо действующая система безопасности (например, одноразовый термопредохранитель прикрученный к нагревателю), которая будет рвать питание вне зависимости от того, что происходит в контроллере... Или биметаллический таймер, который не дает физически держать нагреватель включенным непрерывно больше чем определенное время (гарантированно не приводящее к пожару).

Конечно - реализовать это все в формате Tiny2313 может не хватить ресурсов. Но положа руку на сердце - вы не серию миллионную гоните, где для вас каждый рубль экономии - путь к несметному богатству! Вы делаете единичные устройства - ну так поставьте Atmega328! Ну будет оно на сто рублей дороже, и что ?! Зато спать спокойно ночью будете...

Хотелось бы сразу ответить на первые комментарии. Критику я приветствую. И постараюсь ответить на некоторые замечания.

В главных: в тексте статьи я направильно выразился НАМЕРТВО НИЧЕГО НЕ ЗАВИСАЕТ. Как бы правильно выразится. В общем, в коде реализовано несколько софт таймеров, на базе одного 16битного, так вот те самые "костыли" это просто обнуление всех флагов, которые могут вызываться прерываниями перед запуском прерываний (команда sei). Видимо все-таки как то это влияет. По хорошему это в любом случае надо было сделать, просто со старыми источниками проблем не было. Итак еще раз - ничего не зависает, просто получается что не начинают работать софт таймеры. И не выполняется часть основного кода из-за этого. в Частности нагрузка ВСЕГДА отключена. И вот сброс регистров как раз и решил эту проблему, причем без всяких доработок вроде дросселя - его я позже добавил.

По поводу схемотехники и разводки плат - спорить не буду. И то и другое есть в репозитории, так что можно даже прям носом меня натыкать где там проблемы. Было бы интересно, без иронии, схема состоит из одной тиньки и всё. Кстати и керамика присутствует, практически на всех фото её очень хорошо видно. Просто находится с другой стороны платы. По поводу не оставлять без присмотра - это вообще можно в принципе к любому устройству применить, абсолютно надежных нет и не будет никогда. Никакой код не сможет предусмотреть абсолютно всё. Поверьте я за свою профессиональную карьеру уже много раз видел как сгорают дорогущие технологические установки напичканные супер модной отказоустойчивой электроникой. Ну а про свои скажу скромно - уже лет 14 работают, причем боюсь предположить сколько копий устройства сделано. И сделано на заказ.

Насчет контроллера - да, мега328, а еще лучше ESP32, причем опять же без иронии я задумывался об этом тоже уже давно, когда всяких TYUA у нас еще не было, но руки не дошли. Да и надобности уже нет, эта разработка покрыла абсолютно все потребности. И тинька была выбрана именно ввиду достаточности ее. Напомню писалось все на ассемблере. Ну и напоследок - проект открыт - это значит, что можно брать его и "допилить" прям вот под себя. Я поделился своим видением. Уже на то время термостат был настолько избитой и облизанной со всез сторон темой, а готовых устройств уже было настолько много, что в принципе не было никакого смысла этим заниматься, только чисто из спотривного интереса, и именно потому, что надо было сделать именно "под себя" вот прям так как мне надо. Я же просто надеюсь, что возможно кому то будет интересно посмотреть код, как что реализовано. Я сам - самоучка. И учился именно на таких проектах. Образование у меня совсем по другому профилю никак не связанное ни с электроникой ни с программированием.

В этом, к сожалению, и проблема... Я с одной стороны никоим образом не хочу душить техническое творчество, пусть даже и не подкрепленное специальным образованием. А с другой стороны - надо понимать, что ваше устройство опасно. И что еще хуже - те кто будут у вас его повторять с сайта - понимают еще меньше вас. А дальше с увеличением количества пользователей - статистика бессердечная сука: начнутся пожары и трупы. Нет, наверное формально к вам претензий предъявить будет нельзя. В принципе, правила электрической и пожарной безопасности ясно говорят - использование кустарных нагревательных приборов в помещениях запрещено. Использование бытовых нагревательных приборов разрешается только под присмотром. Для того, чтобы термостат можно было воткнуть в розетку и уйти из дома - у него должен быть сертификат. Но вы же знаете отношение нашего человека к правилам и запретам... В общем, я бы себя чувствовал морально плохо, если бы выкладывал на сайт устройство которое часть пользователей обязательно оставит без дома (а кого-то еще и без отца/матери/детей/etc).

Как минимум - добавили бы вы в дисклеймер, что эту штуку запрещается оставлять без присмотра! Это оставляет ей кучу применений - какие-нибудь лабораторные установки, котлы где есть дежурный круглосуточно, и т.д - но хотя бы никто не убьет себя по глупости...

А если вы хотите спроектировать штуку, которая действительно может легально (тут без шуток - правила безопасности писаны кровью) работать автономно - то хочешь-не хочешь надо изучать правила проектирования отказоустойчивых систем. И да, абсолютно безопасных устройств не бывает, и подход к безопасности всегда риск-ориентированный. Принцип простой - по нормативу задаетесь такой вероятностью, чтобы за время использования вашего устройства вероятность погибнуть от его отказа была меньше чем под колесами автомобила или от сосульки с крыши зимой. Будет десять в минус какой-то степени на час (месяц, год) работы. Дальше по другим справочникам раскладываете это в надежность компонентов и подтверждаете что ваши схемотехнические решения действительно позволяют человеку скорее попасть в автомобильную аварию чем сгореть от отказа термостата. И в принципе все, ваше устройство получает право работать без присмотра...

P.S. Никому и никогда не говорите что вы их делали на заказ. Случись что - попадете под уголовное дело. Оно и раньше было не то чтобы очень здорово - даже если не посадят а дадут условно... А сейчас наиболее вероятно, что до суда даже не доживете - "уговорят" подписать контракт - а дальше вы и сами знаете...

На основе этого опыта я категорически не рекомендую использовать данные модули питания (Hi-Link) в их «голом» виде без дополнительной обвязки

Разве в его даташите нет довольно могучей обвязки с дросселем итп ?

Я помнится думал купить, но когда посмотрел сколько там всего не хватает не стал.

Санкционный дорогой 8битный древний mcu. С китайским за 5..20р и выжимать не понадобится. Кондеры на питании не стоят. Я бы зачёт не поставил.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации