Страница 1 из 1

Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Вт дек 30, 2025 16:09:46
ejsanyo
Ветка про вот эту статью: https://radiokot.ru/artfiles/6820/
Что бы ещё добавить?
  • Если кто не знает, четверть длины волны на 433 МГц это примерно 17 см.
  • Судя по информации из интернетов, вместо МИТ-16В нормально подойдёт также МИТ-4В (при этом правда одна из его обмоток останется не при делах), либо МИТ-4Вм.
  • Точно настраивать длительность открывающего импульса не обязательно. Если она окажется больше оптимальной, симистор всё равно будет открываться нормально. Просто на управление будет тратиться больше энергии за счёт более длительного захода сердечника в насыщенное состояние.
А для тех, кто дочитал до конца, представляю "упрощённую" версию радиорозетки на обычном реле и Attiny2313 :)
Изображение
Собственно, с этого всё начиналось. Трансформатор, если правильно помню, на 9В по выходу, реле на 12В.
В части приёма кодов схема такая же, как и "полная". Кто основную статью внимательно читал, поймёт, как здесь всё работает. Но на выходе электромагнитное реле, так что никакой синхронизации с сетью.
Если кому интересно, здесь все файлы данного проекта: https://drive.google.com/file/d/1aTcmPD ... drive_link

Re: Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Пн мар 23, 2026 19:48:39
ejsanyo
Состряпал "версию 3.1" радио-розетки так сказать. По сравнению с версией в статье несколько изменил схему питания, поставив трансформатор с двумя вторичками ТПК-2 2х6В и несколько иной детектор перехода через ноль.
Изображение
Судя по полученным осциллограммам, теперь именно фронт импульсов с коллектора VT2 лучше соответствует началу синусоиды, так что полярность прерывания Int0 изменена на фронт.
Изображение Изображение
Кроме того, импульсный транс наконец взял МИТ-4Вм. И да, похоже он действительно лучше подходит для управления симисторами: импульс на его управляющем электроде сохраняется практически правильной формы даже при коэффициенте заполнения 50%! (но всё же решил оставить длительность как в оригинале) Кроме того, его индуктивность оказалась на пару порядков выше, чем у МИТ-16В. Но вместе с тем появился и неприятный момент: на стоке VT1 появился короткий выброс амплитудой более 50В, очевидно, из-за более заметной индуктивности рассеяния. Транзистор как-то это терпел, но для подстраховки решил подрезать эти выбросы снаббером VD4.
Ну и по такому случаю повесил симистор потолще, на радиаторе AB8740.2. С такой железякой и с предохранителем на 16А эта "розетка" осилит уже без проблем включать мощный электрочайник, кондиционер или пылесос. 8)
Изображение
Все исходники тут: https://drive.google.com/file/d/1Pziwzu ... sp=sharing

Re: Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Пн июн 01, 2026 23:08:46
ejsanyo
А вот небольшое обновление для прошивки первой конструкции: https://drive.google.com/file/d/1NVDpxc ... sp=sharing Сделал более грамотный алгоритм таймаута в режиме настройки кодов пульта. Для остальных вариантов схемы по аналогии увидите, что нужно изменить.
Если будете делать своё питание, не на классическом 50-герцовом трансформаторе, имейте ввиду, что, как оказалось, паршивенький, т.е. шумный импульсный БП запросто может заглушить приёмный модуль, и ничего работать не будет! :shock:

Re: Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Ср июн 03, 2026 10:50:36
ejsanyo
Ещё такой нюанс заметил: в принципе, уже писал, что современным супер-эффективным импульсным блокам питания для ложных попыток запуска может оказаться достаточно энергии, протекающей через снабберную цепочку. Оказалось, что это справедливо для значительной части светодиодных светильников - они начинают изредка "моргать" в казалось бы выключенном состоянии. В таком случае просто убираем снабберную цепочку, и всё становится хорошо. Для емкостной нагрузки, которой, как правило, являются драйвера светодиодов, она в общем-то и не требуется.

Re: Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Ср июл 01, 2026 21:49:47
ejsanyo
Представляю вашему вниманию, внезапный и нежданный порт "радио-розетки" на другой контроллер. Быть может, заинтересует тех, кто считает, что AVR - это слишком дорого? :P Возьмём на сей раз один из самых дешёвых современных чипов родом с Островного Китая, Padauk PFS154-S16.
Какие особенности, связанные с портированием, можно обозначить? Конечно, сразу бросается в глаза, что Padauk не умеет прошивать сам себя вообще никак, поэтому для запоминания кодов пульта пришлось нахлобучить внешнюю маленькую (и дешёвую) EEPROM 24LC01 и набросать под неё программый I2C мастер. Для формирования импульсов для симистора задействован аппаратный блок PWMG2 контроллера. А вот 16-битный таймер, которым измеряется длительность импульсов пульта, аппаратного захвата отсчётов не имеет, пришлось сделать захват через внешние прерывания, благо хотя бы они имеются. В конце концов, мы не лабораторный частотомер делаем, полученной точности измерений вполне достаточно. Ещё один таймер задейсовован для функции таймаутов. В остальном изделие практически повторяет предыдущую схему.
К пинам XP1, как несложно догадаться, подключается модуль приёмника. XP4 идёт на светодиод индикации. Учитывая непростые особенности зашивки Padauk-ов, сделаны пины XP3 под джампер. На время зашивки вы джампер снимаете (причём питание на схему подавать необязательно), подключаете к XP2 ваш Easy PDK programmer, прошиваете чип, после чего ставите джампер и пользуетесь. :idea:
По ссылке в архиве полный проект в Altium Designer 10 и прошивка, разумеется, под SDCC: https://drive.google.com/file/d/15_TCGk ... sp=sharing Нужно будет подобрать файл Ver1_PFS154.ihx и зашить его в чип.

Re: Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Ср июл 01, 2026 23:39:17
Kapitoska
ejsanyo писал(а): Ср июл 01, 2026 21:49:47Возьмём на сей раз один из самых дешёвых современных чипов родом с Островного Китая
Понимаю так, что всё это не ради розетки, а для освоения разных экзотических мк. Если кому-то что попроще, то вот: https://vrtp.ru/index.php?showtopic=358 ... t&p=996578 Про цену мк не говорим, но у некоторых они валяются без дела.

Re: Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Чт июл 02, 2026 01:09:39
ejsanyo
Kapitoska писал(а): Ср июл 01, 2026 23:39:17 Понимаю так, что всё это не ради розетки, а для освоения разных экзотических мк.
В том числе. Считаю, что всяко лучше, чтобы после того, как поигрался, на выхлопе осталось что-то полезное, или хотя бы условно полезное, чем тупо макетная плата...но об экзотике мы ещё поговорим. :wink:

Re: Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Сб авг 22, 2026 17:11:08
ejsanyo
Так вот, возвращаясь к "экзотике"...а давайте-ка попробуем сделать радио-розетку на основе MDR1215LGI от Миландра, который мы недавно подробнее рассматривали в соответствующем разделе. :idea: В самом деле, раз уж это чудо имеет из более-менее выведенной наружу периферии 32-битный таймер, почему бы не приспособить его для измерения длительности импульсов пульта? Более того, в данном применении этот таймер имеет даже некоторые преимущества, благодаря тому, что в нём один и тот же канал инпут капчи можно одновременно настроить и на захват по фронту, и на захват по срезу импульсов, и получить результаты захвата в раздельных регистрах!
Изображение
Скорее всего, форум картинку зашакалит, поэтому выложим полный проект, включая схему и разводку платы в Altium Designer, а также проект прошивки, сделанный в этой среде. Качать всё это здесь: https://drive.google.com/file/d/140P8cH ... sp=sharing Изготовление платы в домашних условиях под такой мелкий корпус, конечно, требует определённых скиллов по травлению дорог 0,3 мм. Но если очень захочется, можно перепроектировать схему под готовую мини-макетку с этим чипом, делать будет проще.
Как видно, в целом схема повторяет предыдущую самоделку, но с некоторыми нюансами, о которых поговорим. Сразу нужно обратить внимание, что здесь нам приходится комбинировать "зашивочный" разъём JTAG-а с нужными в работе сигналами. Мы филигранно делаем это с помощью подтяжечных резисторов 10 кОм. Если мы на время зашивки не будем подавать сетевое напряжение, а временно подадим в точку Vh что-нибудь в районе 5...9В постоянного тока, то транзистор синхронизации с полупериодами сети останется закрытым и не будет нам мешать. Но если такой возможности нет, конечно, придётся на время зашивки либо PA7 оторвать от VT2, либо вначале не впаивать VD1. С этой же целью модуль приёмника не впаян намертво, а воткнут пинами в цанговые ответки на плате. На время зашивки его, конечно, можно вынуть, чтобы не мешал.
Трансформатор питания, как и в прошлом варианте, имеет 2 вторичные обмотки по 6В переменного напряжения каждая. С такой конфигурацией можно более удобно и чётко фиксировать переходы напряжения через 0.
Ещё обратите внимание, что все выходы контроллера мы, на всякий случай, буферизируем логическими элементами, поскольку, как уже отмечалось, выходы тут имеют непривычно слабый ток нагрузки.
Кстати, мы тут, как и в прошлый раз, используем импульсное управление симистором. Но за счёт чего формировать импульсы? Аппаратный таймер уже ушёл на приём команд пульта, а других наружу в этом контроллере не вывели! Но мы пойдём иным путём и задействуем для этого...выход UART-а! :))) В самом деле, стартовый бит там уже есть. Добьём его нулевыми битами до требуемой длительности и будем посылать постоянно один и тот же байт, заполняя им буфер передачи по прерыванию. Вот вам и импульсы. А их частота будет определяться выставленной скоростью передачи битов. Буфер на логическом элементе проинвертирует нам их, чтобы была правильная полярность.
Кнопки SB1, SB2, как и ранее, служат для "привязки" кодов пульта. Эти коды мы запоминаем в особый раздел флешки контроллера, под названием "информационная память". Что это такое, мы подробнее рассматривали ранее. Чтобы наши коды гарантировано не пересекались с бутлодыром, было принято решение сохранять их в том же секторе, где лежит "производственная информация". В eeprom.c можно увидеть, каким образом мы в процессе перезаписи временно сохраняем, а потом восстанавливаем её с помощью функций FLASH_ReadFactoryData() и FLASH_ProgramFactoryData().

Код: Выделить всё

Не забываем закомменить #define USE_JTAG в MDR32VF0xI_config.h чтобы юзать ноги, занятые JTAG-ом!
А ещё закомменить #define USE_FACTORY_DATA_PROTECTION там же, чтобы сохранять настройки во флэшку!
Таким образом, мы убираем программную блокировку в функциях на выполнение критических действий. Но с этими чипами, когда требуется максимальная функциональность, приходится идти на определённый риск! 8) Тем не менее, схема розетки была успешно сделана и уже вовсю работает.
Из компромиссного: к сожалению, входов внешних прерываний в данном исполнении чипа наружу не вывели, поэтому старт включения симистора синхронно с полупериодом сети приходится делать тупым опросом обычного GPIO входа.

Re: Дистанционно управляемая розетка на К1946ВМ014

Добавлено: Чт окт 29, 2026 21:20:47
ejsanyo
А не пришло ли время нам сделать ещё одну радио-розетку? :)) Сегодня у нас на очереди знаменитый российский контроллер первого уровня локализации К1948ВК018 aka MIK32! С одной стороны он, вроде как, сильно избыточен для такой самоделки. А с другой - объём встроенной флешки EEPROM всего 8 кБ...сам собой располагает делать простые вещи.
Итак, получилось у нас вот что:
Изображение
На этой схеме показан не сам контроллер, а плата-переходник, которая упоминалась тут. Как было сказано, на ней также можно посадить некоторые элементы 0805 поближе к чипу. В данном случае сочетание получилось таким:
Изображение
Здесь, как видно, у нас задействовано:
  • один 32-битный таймер для декодирования сигналов пульта
  • один 16-битный таймер для ШИМ сигнала, включающего симистор
  • одно внешнее прерывание чтобы включать/выключать ШИМ синхронно с полупериодами сетевого напряжения
  • аппаратный I2C чтобы сохранять коды пульта
Да, знаю, некоторые умудряются запихнуть сохранение юзерских данных на этом чипе прямо на родную EEPROM. Но мы, пожалуй, упростим задачу и повесим снаружи банальный 24LC02.
Каналы захвата 32-битного таймера здесь не такие продвинутые, как у Миландра, и за раз умеют срабатывать либо по фронту, либо по срезу. но что нам мешает задействовать пару таких каналов и пару их входов?
У 16-битного таймера каких-то специфических особенностей нет. Но мы всё же попробуем сделать кое-что новое: используем для подачи импульсов на трансформатор не простой транзисторный ключ, а специальный чип усилитель, включенный через разделительный конденсатор. У такого подхода есть плюсы в том, что высоковольтные выбросы самоиндукции здесь не могут повредить ключи, да и просто, если оставить входной сигнал в лог.1, постоянный ток через первичку транса протекать не будет. Да, чип изначально предназначен для раскачки MOSFET-ов и IGBT, но сотню мА даже на постоянном токе он спокойно тянет. А вход хорошо согласуется с 3,3В логикой. Разделительный кондёр C3 кстати взял огромный, плёночный, поскольку опасался, что керамика в таком режиме будет сильно свистеть пьезоэффектом. :P
Со внешними прерываниями у MIK32 всё неплохо - их можно назначить практически на любую его ногу и с разными режимами работы. Единственный выявленный нюанс - оно уж очень шустро ловит фронты/срезы, в том числе в не совсем стабильных состояниях на границе перехода 0/1, что здесь и случается, поскольку детектор перехода нуля, по сути, имеет аналоговый выход. Поэтому пришлось в обработчике прерываний добавить алгоритм дополнительной проверки, что сигнал прерывания стабилизировался. В этом нам помогает интересная фича с возможностью прямого чтения состояния линий прерывания, этакий косвенный опрос GPIO.
Что здесь не задействовано:
  • Входы кварцевых резонаторов. Просто висят на земле.
  • Watchdog
  • Внешняя флешка
Местный RC-генератор молотит на непривычно высокой частоте 32 МГц, но PLL и прочих умножителей частоты в данный чип не завезли, что в наше время смотрится довольно странно. Здесь стабильность тактовой частоты, очевидно, не особо важна. Но из-за отсутствия основного кварца, как ни странно, мы не можем включить Watchdog, об этом баге уже упоминалось. Не уверен, насколько велик шанс контроллеру зависнуть на такой довольно тривиальной прошивке, да так зависнуть, что Watchdog смог бы его отвесить. Но по крайней мере, у меня за время работы сего девайса глюков и зависаний не было.
Ещё одной непривычной деталью MIK32 является, как уже говорилось, неожиданно маленький объём встроенной памяти, в 2 раза меньше, чем ОЗУ! Очевидно, разработчики предполагали её использование лишь для записи базового загрузчика, а основная прошивка должна была храниться во внешней флешке с SPI-интерфейсом. Местный блок "SPIFI" довольно универсален, поддерживает программирование команд флешки и "четверной" обмен данными, что, учитывая невысокую тактовую частоту чипа, неплохо вывозит. Флешку, конечно, придётся брать заморскую (ну или вдруг достанете изделие от GS Nanotech или того же Миландра?!). Представители Микрона на каждой конференции не устают повторять, что "флеша у них как не было, так и нет, и не будет в ближайшей перспективе", что также выглядит странно... :?
Периферийные библиотеки весьма толстые, местная версия RISC-V обилием командных расширений не балует. Так что родные 8 кБ забиваются почти мгновенно. Тем не менее, прошивку удалось упёхать в этот объём, включив в проекте LTO-оптимизацию (опция "-flto"). Но и её возможности не безграничны: стоит вам добавить в ваше изделие индикацию чуть осмысленнее пары светодиодов, и всё, вылет за пределы памяти обеспечен! :twisted:
Что бы ещё добавить? Чип имеет множество выводов для подключения внешних кондёров для стабилизации режима встроенных LDO и прочих аналоговых блоков. (интересно, почему в 21 веке большая часть контроллеров как-то обходится без этого?) По поводу типа и ёмкости этих кондёров в даташите и других аппноутах указания весьма неоднозначные, но практика показала, что с керамикой в несколько мкФ всё работает нормально.
А тем, кто дочитал до конца: как обычно, держите полный проект платы и прошивки. Плата снова разведена под знакомый вам кондовый советский корпус.
Изображение
На фото вы можете разглядеть не самую обычную вещь: старую, немодернизированную версию трансформатора МИТ-16 (без буквы "В") от завода «Изумруд», 1975 года выпуска! 8)