Pull to refresh

Comments 21

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

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

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

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

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

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

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

где классическая керамика прям около МК?

одинокая керамика (с подсказки автора) - на обратной стороне, обычно ставят как можно ближе к корпусу, у автора небольшая петля + ~30%, но это придирки уже.
дросселями всегда отделяю МК и сильноточные цепи. Какое же было удивление (О, оно работает!) как-то когда бусину по ошибке поставил на землю и связь с устройством (ST-Link 400kHz) прервалась.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Когда смотришь на поделие автора - понимаешь что у некоторых людей слишком много времени на всякую парашу.

Тоже тебе такой умный порекомендовал на пин поставить конденсатор на 220uF? При отключении (тем более на светодиоде оптопары) у тебя ещё некоторое время будет сигнал висеть активный! Экстренного отлючения не получится.

Объясни, для чего там конденсатор?

Хорошая статья, скучаю по гиктаймс:) Но писать на ассемблеме - это прям надо любить тему. Интересно конечно сейчас попробовать прогнать на оптимизацию - уменьшат ли сегодня размер кода "роботы"?:)
Я как то тоже болел пытался заиспользовать все процессоры валяющиеся в коробке начиная с самых мелких. Так вот там памяти не было, только регистры и двухуровневый стек для возврата из прерывания. Но мне просто наскучило писать на asm. Встречал упоминание в сети где энтузиаст писал на Си для проца чуть выше в линейке со сходной системой команд и после компиляции заменял все обращения к памяти скриптом.

Я тогда только начинал изучать микроконтроллеры, и начал с ассемблера. Сейчас на асм я уже давным давно не пишу. Это просто как минимум очень долго да еще и муторно. Но, все-таки считаю правильным, что начал с него - как бы выразиться... асм дает полное ощущение контроля и понимание того как работает МК

Да я тоже с asm начинал, а перед этим с ЛА3, и ИП3 (4-битное АЛУ), давно было, но опыт важный... особенно с блокировочными конденсаторами, землёй и разводкой:)

"Не стреляйте в пианиста — он играет, как умеет" (c)

Спасибо за поддержку :D

Да, как проект 14 летней давности, нормально. Сейчас конечно можно делать и проще и быстрее и на другой элементной базе.

Комментариев много и много прям хейтовых. Я и понимаю людей и не понимаю. Вы смотрите проект как историю и автор об этом сказал сразу, ну так и отнесите ь к нему как к истории. Я в 1995 тоже начинал писать код на Ассемблере и да, сейчас его ещё помню, но сейчас пишу в основном на С, С++, С#. Изделие хорошее, а учитывая что оно показало себя с хорошей стороны и о работало более 14 лет и не в одном экземпляре, то можно сказать что проект удался, не смотря на критику и замечания.

А ещё можно сказать, что компания Atmel делает хорошие микроконтроллеры.

Да, устройство отчасти небезопасно, с точки зрения некоторых людей, но и оно не продаётся на прилавка магазинов.

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

Автор, спас бо за интересную статью и экскурс к истокам микроконтроллеров (пусть и не к древним)

Спасибо за поддержку. Я тоже уже очень давно пишу только на Си, и пишу для STM32 и ESP32 понеменгу стараюсь осваивать, но все-таки уверен что правильно начал с ассемблера - уверен что только асм дает полное понимание того как работает контроллер. Хотелось бы надеятся что кто-то все-таки еще интересуется оптимизацией и просто устройством контроллера. Ну и кстати еще повторюсь - я самоучка, и все что я делаю - чистый DIY и позиционируется так же.

Sign up to leave a comment.

Articles