Аббревиатуру «сделай сам» переводить не нужно. PLC это Powerline Communication. Как ни странно, но есть еще те, кому не безразлична идея передачи данных по электрической проводке. Да, в мире немало людей, столкнувшихся с этим явлением лицом к лицу, кто-то, возможно, только собирается познакомиться с технологиями, открывающими такие возможности, для кого-то это уже состоявшийся удачный или неудачный опыт, но это никак не вчерашний день.

На настоящий момент существует масса протоколов PLC как программной, так и аппаратной реализации, наиболее популярные — PowerLine HomePlug AV, со скоростью передачи данных до 1500 мбит/сек.
Задача: для умельцев, сделать решение, где сам микроконтроллер помимо функций управления «вещами» будет работать PLC модемом.
Почему все таки PLC? Ответ прост: как минимум 90% устройств, в том числе датчики, устройства управления, питаются от линии ~220V. Встает вопрос: нафига тянуть еще провода, когда в принципе можно использовать те, которые уже проложены? Да, знаю про существование RF технологий, но опять-таки, зачем радио, когда уже есть провода? Да и в концепцию «минимальной обвески» микроконтроллера не вписывается. Не стоит задача «глобальной» сети. Нужно собрать в сеть устройства дома, огорода и пр. «хозяйства».
Итак, приступим. Есть дом с кучей всяких устройств, подключенных в розетку. Что-то вроде этого:

Попытаемся реализовать озвученную выше идею. Вкратце, как выглядит передача информации по проводам ~220V:

В качестве микроконтроллера будет STM32F100C8T6 / STM32F103C8T6. Чтобы не попасть под «раздачу», мощность отдаваемая в провод не должна превышать 70 мВт, иначе наше устройство подлежит обязательной регистрации. Если использовать ШИМ контролера в качестве генератора/смесителя то предельная частота для этого чипа будет 2 мГц. Вспоминаем про любительский диапазон 160м (1.87 мГц). Это чтобы точно никому не мешать. 1.9 мГц как раз почти предельная частота для этого контроллера.
Просканировав диапазон 160м обнаруживаю, что в нем давно никто не работает… Выбираем метод модуляции CW ( телеграфный ключ ), как самое простое и в то же время надежное решение. Для «умных вещей» нам большие скорости не нужны. В общем то более, чем достаточно 20 кбит/сек. Архитектура: мастер-слэйвы. Т.е. один контроллер опрашивает/посылает команды остальным.
Для начала, попытаемся получить «помощь» клуба: пороемся в тыр-нете, может кто-то добрый уже соорудил что-то подобное. Находим только следующее: простая схема для передачи информации по низковольтным силовым линиям
Не совсем подходит, ибо на низковольтное решение и постоянный ток. Ок, адаптируем данное решение для линии ~220V. Сооружаем гальваническую развязку и одновременно фильтр высоких частот. Получается такое:

Тестируем… Работает, но дальше 10 м не «пробивает»:
1. Не хватает мощности передатчика.
2. У приемника нет усилителя.
Ясно, что идея не сработала. Садимся думать… Не забывая о предельно простой «обвязке». Получается такое:

Исследуем, что получилось. Модулированный выход UART на трансформаторе (передатчик перед емкостями):

Что творится в реальной сети ~220V. Жилой, 9-ти этажный дом. Вход после трансформатора приемника. Амплитуда 20-100 mV. Расстояние передатчик-приемник примерно 60-70 м.

Увеличенный фрагмент. Видно, что у кого-то здорово фонит импульсный источник. Примерно 76 кГц. Настоящий китайский :)

Верхняя осциллограмма — выход детектора. Нижняя осциллограмма — Выход компаратора (восстановленный сигнал UART).

Т.е. видим, что решение — работает. Проверил в офисе, на расстоянии примерно 100-120м — решение работает.
Терминатор для сигнала — емкость 10nF включенная параллельно проводам ~220V. После нее сигнала практически нет. Для работы по разным фазам теоретически можно использовать емкости те же 10 nF, но включенные между фазами. Не проверял. Более надежно — на каждую фазу свой модем.
Через один пилот (в них присутствует емкость в качестве фильтра НЧ) сигнал проходит. Через два — уже нет. В принципе, HomePlug AV модемы через два пилота тоже не «пробивают».
Как выглядит прототип (на макетной плате):

«Упаковано» в стандартный корпус на DIN-рейку: (в заголовке статьи).
Спасибо за внимание!
Автор: leocat33