Расскажу о TimeWeb сижу на нем давно, и вот необходимо обратиться к файлу index.php Для редактирования главной страницы сайта и что вы думаете? Мой ESET NOD 32 сигнализирует о Kryptik.CE и блокирует его.
Это я подумал, что у меня FTP клиент WinSCP заражен и пошел попробовать открыть через их интерфейс на сайте (файловый менеджер).
Если открывать файл на FTP, то он становится становится пустым, и создается файл about.php и оба пустые весом 0 кб.
Если открывать через FTP клиент.
Я не в коем случае не спешил с выводами, я попробовал подключиться к другим серверам на других хостингах проверить может дело в FTP клиенте, и на удивления не каких проблем там не было. Как я писал выше, исключить заражение клиента простыми AB тестами у меня получилось способом использования интерфейса сайта TimeWeb (файловый менеджер). У меня там 10 сайтов и заходя в каждую папку с сайтом public_html файл index.php лежит не тронутым(дата редактирования) ровна дате, когда я последний раз её трогал, допустим примерно 5 мес назад. Но если я пытаюсь его открыть (файл index.php) антивирус меня останавливает и файл на хостинге не меняет размер и не становится пустым. Дата не меняется.
Открытия файла на хостинге через интерфейс файловый менеджер.
И следом создается файл about.php 0кб
После попытки открыть файл index.php
К слову все сайты имеют разный код на index.php и файлы бекапы на моем пк спокойно открываются и нет повода предполагать, что там выполняется какой-то вредоносный код
Троян. Kryptik — это вредоносная компьютерная инфекция, известная как троянский конь. Троян. Kryptik может загружаться при запуске и создавать себя заново, что затрудняет удаление вручную с зараженного компьютера. Троян. Kryptik может поставить под угрозу зараженную систему, позволив удаленному хакеру получить доступ без разрешения или ведома пользователя. Троян. Kryptik также может привести к заражению другими неизвестными вредоносными программами-паразитами.
Осциллограф это один из самых желанных приборов на столе любого радиолюбителя. Этот прибор открывает огромные возможности для отладки или ремонта различной электроники. Но, часто, начинающие электронщики не до конца понимают, как же он работает.
В этой статье я предлагаю вместе разобраться, на каких принципах работает осциллограф. Для этого мы смоделируем электрическую схему простого осциллографа с индикацией на светодиодной матрице из дискретных компонентов в моем любимом симуляторе ISIS Proteus.
❯ Введение
Во время отладки электронных схем иногда нужно понимать, как изменяется форма сигнала (его амплитуда и частота) при прохождении электрических цепей, именно для этого удобно пользоваться осциллографом. Фактически, он позволяет увидеть электрические сигналы своими глазами.
Большинство современных осциллографов цифровые, и, практически, представляют собой специализированный планшет с сильно прокаченной звуковой картой, которая способна оцифровывать входные сигналы далеко за пределами звукового диапазона. Они накапливают информацию о сигнале в памяти, проводят необходимую математическую обработку и строят на дисплее график сигнала. Это позволяет реализовать множество автоматических функций, например измерение частоты, определение амплитуды, или даже преобразование Фурье. С помощью таких приборов можно отлавливать и расшифровывать даже одиночные цифровые посылки.
Но еще в прошлом веке в эпоху аналоговой электроники использовались осциллографы на основе лучевых трубок. Они не имели совсем никакой памяти, и вполне успешно использовались преимущественно потому, что в схемах преобладали аналоговые сигналы. Форма таких сигналов не сильно изменяется в течение достаточно большого количества периодов следования. Горизонтальное отклонение луча на трубке осциллографа синхронизировали с частотой исследуемого сигнала, а отклонение луча по вертикали происходит пропорционально амплитуде измеряемого сигнала. На фоне разметки экрана «отпечаток» в люминофоре формирует график, называемый осциллограммой.
Схема, которой просвещена данная статья, имеет аналогичный принцип работы, с той разницей, что вместо электронно-лучевой трубки будет использоваться динамическая светодиодная матрица.
Интернет почти забыл подобные схемы, и удивляет, что до сих пор находятся энтузиасты, которые собирают аналогичные устройства и в наше время. Мне-то казалось, что я один такой «повернутый»…
На фотографии вы видите осциллограф со светодиодной матрицей, конструкцию которого придумал наш коллега из Бразилии Arthur Zuliani для обучения своих студентов навыкам сборки радиоэлектроники.
Схемы таких осциллографов можно найти в старых журналах, и мне даже удалось найти на ютубе несколько относительно свежих проектов. Одно из таких видео загружено примерно 5 лет назад, но просмотр оставляет впечатление, что снимали его значительно раньше.
Ну что же, самое время разобраться в том, как это работает, погнали дальше!
❯ Структурная схема
Структурная схема осциллографа со светодиодной матрицей показана на рисунке ниже, и в целом она очень похожа на схему осциллографа с электронно-лучевой трубкой.
Пускай светодиодная матрица в нашей схеме будет иметь разрешение 10 на 10 точек. Этого будет достаточно, чтобы условно отличить синусоиду от прямоугольных импульсов или пилы. На рисунке показано, как это примерно будет выглядеть, оттенки красного демонстрируют яркость светодиодов, которая будет не равномерной из-за динамической развертки.
В отличии от люминесцентной маски электронно-лучевой трубки, светодиодная матрица способна показывать изображение только в виде дискретных точек, причем весьма крупных точек. По этому признаку нашу схему нельзя считать полноценным осциллографом, никаких подробностей и деталей на ней не разглядеть. Но оценить форму сигнала вполне можно. Так что это устройство скорее следует называть осциллографическим пробником.
❯ Канал вертикального отклонения
Для включения светодиодов в столбцах матрицы необходимо формировать дискретные сигналы управления, для этого в схеме осциллографа используется детектор уровня аналогового сигнала. Эта схема делит максимальный диапазон входного сигнала на уровни в соответствии с количеством светодиодов в столбце. И каждый светодиод должен гореть, пока входной сигнал находится в границах его диапазона. Технически это может быть реализовано на отдельных компараторах, или с помощью специализированной микросхемы – индикатора уровня LM3914.
В составе микросхемы уже имеется десяток компараторов со светодиодными драйверами и источник опорного напряжения для каждого из них. Получается, что входной сигнал может быть разделен на десять уровней, и в матрице может быть под десять светодиодов в каждом столбце.
❯ Аттенюатор и предварительный усилитель
Для того, чтобы наша схема могла масштабировать амплитуду сигнала по вертикале на светодиодной матрице, и значение амплитуды можно было измерить по клеточкам, в ней используется предварительный усилитель и аттенюатор. Именно они обеспечивают связь между клеточками на экране осциллографа и вольтами, то есть позволяют получить те самые заветные вольты на деление.
Так как мы не претендуем на звание «измерительный прибор года», ограничимся двумя пределами регулировки вертикальной развертки: 1 В на деление и 100 мВ на деление.
Для начала нужно определиться с напряжением питания всей схемы, пускай это будет батарейка типа «Крона» с напряжением 9 В.
Сейчас самое время вспомнить, что измеряемые сигналы могут иметь не только положительное значение амплитуды. Амплитуда сигналов может увеличиваться в отрицательной полярности. Поэтому входной сигнал будет правильным подключать относительно «середины» питания схемы.
Для удобства разработки схемы добавим дополнительные резисторы в цепь опорного напряжения LM3914 относительно плюсового и минусового потенциалов питания так, чтобы опорное напряжение находилось в диапазоне 5 В относительно середины питания. Диапазон переключения для светодиодов получается 0,5 В.
Чтобы получить вертикальную развертку с разрешением «1В/деление» аттенюатор должен иметь соотношение 1:2. Для развертки «100мВ/деление» входной сигнал после аттенюатора потребуется усилить в 10 раз. Таким образом в схему добавим делитель напряжения и усилитель с переключаемым коэффициентом усиления. И не забудем, что входной сигнал должен усиливаться относительно середины питания.
Получилось так, что аттенюатор на резисторах R1, R2 делит измеряемый сигнал пополам, и, в зависимости от положения кнопки, усилитель либо усиливает его в 10 раз, либо передает без усиления. В разомкнутом положении кнопки мы получим значение развертки «100мВ/деление», в замкнутом — «1В/деление».
Усилитель построен на операционном усилителе LM358. По своим параметрам это не самая лучшая микросхема, но для нашего случая пойдет. Благодаря тому, что опорное напряжение для LM3914 уже, чем напряжение питания, нам не важно, что выход LM358 «не дотягивается» до диапазона питания. Микросхема LM3914 рассчитана на звуковой диапазон, поэтому невысокие частотные характеристики LM358 нас тоже не должны беспокоить.
Вентиль А LM358 осуществляет усиление измеряемого сигнала в 10 раз при разомкнутой кнопке и передает сигнал без усиления — при замкнутой. Вентиль В LM358 формирует искусственную среднюю точку, относительно которой нужно подавать входной сигнал. Объединять предварительный усилитель и искусственную среднюю точку в одном корпусе конечно не правильно, т.к. вентиль В будет генерировать по общей подложке микросхемы помехи, но мы можем закрыть на это глаза, они все равно не будут различимы на светодиодной матрице из-за ее низкого разрешения.
❯ Горизонтальная развертка
Горизонтальную развертку изображения сигнала на светодиодной матрице обеспечивает счётчик Джонсона CD4017. На рисунке показан график переключения выходов счетчика при подаче импульсов на его счетный вход.
Выходы счетчика подключены к столбцам светодиодной матрицы и поочередно включают один из них. Если частота этих переключений будет достаточно высокой, зрительно они не будут различимы, и глазу будет казаться, что светодиоды во всех столбцах матрицы светятся одновременно.
Как это примерно будет выглядеть, можете посмотреть на картинке. Из-за особенностей виртуальной модели LM3914 время моделирования на моем компьютере отличается от реального времени раз в десять.
Серия CD тут выбрана не случайно, микросхема имеет широкий диапазон напряжений питания, не требует отдельного стабилизатора напряжения и может напрямую управлять выбором столбца матрицы светодиодов.
Дополнительное усиление на выходе счетчика не потребуется. Декодер уровней аналогового сигнала LM3914 сконфигурирован так, что на его выходе одновременно может светиться только один светодиод, и ток светодиода не превышает 20 мА. Таким образом выходы счетчика не будут перегружены по току.
Каждый новый период измеряемого сигнала, показанного в примере, попадает в те же самые точки, что и предыдущий. Так получается потому, что частота этого сигнала синхронизирована с частотой тактирования схемы горизонтальной развертки. То есть время, за которое последовательно переключаются все десять столбиков матрицы, точно совпадает с длительностью периода входного сигнала. Но, на практике добиться такого результата очень сложно, этому не способствует точность органов управления, различные дрейфы в схеме и нестабильность частоты самого измеряемого сигнала, такое возможно только в симуляторе.
Если же частота синхронизации не совпадает с частотой измеряемого сигнала, то из-за частой смены кадров на экране осциллографа мы увидим либо шум, различить в котором отдельные периоды сигнала будет практически невозможно, либо измеряемый сигнал будет «бежать» по экрану, а это тоже не способствует удобству измерений.
❯ Синхронизация
Чтобы стабилизировать отображение сигнала на экране осциллографа, и оно постоянно не «прыгало», необходима схема запуска развертки. Принцип ее работы очень прост. Схема контролирует уровень входного сигнала, и разрешает формирование сигналов горизонтальной развертки только тогда, когда амплитуда входного сигнала превысит заданный уровень.
Когда входной сигнал превысит порог запуска, схема развертки должна отсчитать десять тактовых импульсов и остановится до следующего запуска. Такой подход позволяет стабилизировать изображение при условии, что входной сигнал имеет периодический характер.
Получается, что масштабирование измеряемого сигнала по ширине экрана будет определяться периодом тактовых импульсов для счетчика, переключающего столбцы светодиодов в матрице. То есть заветное «время на деление» можно настраивать установкой периода тактового сигнала.
Чтобы счетчик Джонсона останавливался при достижении своего максимального значения, проще всего завести его старший выход на вход разрешения тактового сигнала. Такое решение попадалось в нескольких схемах из интернетов.
Но за простоту мы заплатим потерей одного столбца в светодиодной матрице, его придётся отключить от старшего выхода. Если этого не сделать, то десятый столбик все равно будет работать не корректно.
Схему запуска развертки можно реализовать на компараторе LM393. Порог запуска будет определяться положением подстроечного резистора RV1. Конденсатор С1 выполняет функции детектора фронта, с его помощью будет получен короткий положительный импульс для сброса счетчика при переключении компаратора. Это приведет к повторному запуску сигнала развертки.
Эта схема будет иметь один недостаток. Она не сможет показать на экране больше одного периода измеряемого сигнала. Счетчик может быть сброшен до того, как досчитает до своего максимального значения.
Для настоящего осциллографа было бы неплохо использовать высоко стабильный по частоте источник сигнала горизонтальной развертки. Но для нашей схемы вполне сгодиться генератор на основе таймера NE555, а лучше использовать CMOP версию, тогда можно будет иметь более высокую частоту развертки. Импульсы, которые будет формировать таймер, можно использовать для тактирования дешифратора CD4017. Изменение периода импульсов можно реализовать переключением времязадающих конденсаторов, вы можете подобрать их значение в зависимости от необходимых значений времени на деление.
Параметры таймера подобраны так, что тактовый сигнал составит 5 кГц. Это позволит показывать один полный период измеряемого сигнала с частотой 500 Гц. Можно будет подключиться к выходу ФНЧ усилителя звуковой частоты и использовать схему осциллографа для его украшения.
❯ Заключение
На сегодняшний день рассмотренная нами схема осциллографа со светодиодной матрицей не имеет прикладной ценности в качестве измерительного прибора. Но вполне может сгодиться в качестве украшения для самодельного усилителя звуковой частоты. Полная схема осциллографа со светодиодной матрицей показана на рисунке.
Я бы с удовольствием собрал ее в железе, если бы меня не опередили… кто-то придумал ее на 30 лет раньше меня))) Да и я уже собирал нечто подобное по функциональности и схемотехнике. Надеюсь, вам понравилась эта схема и вы получили такое же удовольствие, как и я, от анализа ее работы.
Сколько логических микросхем понадобится для того, чтобы получить полноценный ИК пульт дистанционного управления? Наверняка вам даже в голову не приходил этот вопрос! А в моем воспаленном сознании однажды такой вопрос возник.
Если вам приходилось сталкиваться с моими предыдущими статьями, то вы уже имеете представление о моем специфическом увлечении схемотехникой. Но далеко не все мои идеи находят воплощение в железе, многое так и остается в виде черновиков на виртуальных моделях. Так случилось и с этой схемой, но она кажется мне достаточно интересной, чтобы поделиться ей с вами.
Если вы тоже считаете, что немного схемотехники после новогодних праздников вам не повредит, тогда добро пожаловать под кат.
Одному моему товарищу из Ярославля необходимо было разработать задание для конкурса по электронике. Формат конкурса удивительным образом совпал с форматом моего увлечения. Поэтому товарищ и обратился ко мне.
Конкурс проводился для студентов колледжа, и мне хотелось предложить что-то «умное», а не очередную «свистелку-мигалку» на жесткой логике. И тут в моем архиве попалась схема ИК пульта дистанционного управления в формате RC-5. Почему бы и нет? Тут и модуляция есть, и кодирование и схемотехника занятная. Решено! Я предварительно согласовал идею с товарищем и приступил к проработке.
❯ Формат RC-5
Сам по себе протокол RC-5 стар как этот мир и является хорошим примером функционального минимализма в схемотехнике. Разрабатывался он в те времена, когда инженерам приходилось экономить вычислительные ресурсы в своих схемах. Это сегодня можно взять какую-нибудь Arduino и сделать на ней любой протокол управления без особых хлопот. Наверное, поэтому в современных статья по протоколу RC-5 опускаются некоторые важные моменты.
Протокол RC-5 использует бифазное модулирование, которое в зарубежной литературе именуется кодом «Манчестер». Его основным преимуществом является самосинхронизация. То есть двоичный код можно передавать по одному каналу связи без дополнительного канала синхронизации.
Все биты передаются за одинаковое время 1.778мс. Для передачи логического ноля первую половину периода передается высокий уровень, а вторую — низкий. Для передачи единицы — наоборот.
Такой код получается очень просто путем кодирования данных тактовым сигналом с заполнением 50% с помощью функции «исключающего или». Тактовый сигнал должен иметь высокий уровень первую половину периода, и низкий уровень — во второй. Если вспомнить, как работает логическая функция XOR, то все сразу станет понятно.
К слову, время передачи одного бита данных 1.778мс выбрано не случайно. Для исключения влияния фонового ИК излучения, например от ламп дневного освещения, сигнал пульта модулируется на частоте 36кГц. Таким образом за один период передачи данных помещается ровно 64 заполняющих импульса. Опорная частота обычно имеет скважность 3 или 4, так сигнал потом проще фильтровать.
Сама посылка в формате RC-5 включает в себя 14 бит. Чуть позже мы увидим, что это тоже очень удобно с точки зрения схемотехники. Общее время передачи одной посылки составляет 24,9мс.
В начале посылки всегда передается два стартовых бита, имеющих значение логической «1». При Манчестерском кодировании нам необходимо знать значение первого бита, иначе все последующие могут быть интерпретированы неверно. Также это позволяет синхронизироваться приемникам.
Третий бит триггер (бит управления) меняет своё состояние при каждом следующем нажатии кнопки. Если кнопка удерживается, то посылка должна повторяться каждые 114 мс, а бит — триггер при этом не меняется. Таким образом определяется различие между нажатием одной кнопки несколько раз и ее удерживанием.
Пять битов адреса системы S4 — S0 управления позволяют выбрать одно из 32-х стандартных устройств (телевизор, видеопроигрыватель, CD-плеер и так далее), для которого адресуется команда C5 — C0. Команды были тоже стандартизированы разработчиком протокола — компанией Филипс.
Когда-то это позволяло различать пульты управления для разных устройств. Но потом Китайцы, как всегда, все поломали, в их сверх массовых устройствах частенько коды использовались так, как это было удобно китайским инженерам. Вот сейчас и случается так, что на пульте от люстры появляется секретная кнопка, которая добавляет громкости телевизору и одновременно включает кухонную вытяжку на первой скорости.
❯ Структурная схема пульта
У меня получилась следующая структурная схема пульта управления. Вспоминая, что это задание для конкурса, количество элементов схемы и площадь печатной платы имеют ограничение, функциональность пульта пришлось ограничить десятью кнопками. Функция повторной отправки команды при удержании кнопки тоже не реализована. Но все это достаточно просто можно добавить при необходимости.
На схеме я добавил наименования микросхем, которые используются в каждом конкретном блоке.
Клавиатура и приоритетный шифратор
Обработка командных кнопок реализована с помощью приоритетного шифратора CD4532. Для добавления еще двух кнопок я использовал три вентиля ИЛИ 74НС32. Можно было бы использовать два шифратора включенных последовательно, но один вентиль ИЛИ понадобился в другом блоке схемы, так получилось сократить количество корпусов.
Кнопки обязательно следует подтянуть на землю резисторами, чтобы входы шифратора не болтались в воздухе. В зависимости от качества кнопок, параллельно каждой можно поставить по конденсатору на 0,1мкФ.
Вывод 14 GS микросхемы U6 позволяет определить момент нажатия кнопки, дифференциальная цепочка С7-R9 выступает в роли детектора фронта и формирует короткий импульс запуска схемы write. На выходах d0-d3 формируется двоичный код нажатой кнопки.
Формирователь сообщения
Код нажатой кнопки передается на схему формирования сообщения. Эта схема построена на основе двух сдвиговых регистров 74НС165. Я думаю, что тут все должно быть понятно, RC-5 это же последовательный протокол, вот и регистры использованы параллельно-последовательные.
Один вентиль XOR используется в качестве инвертора, это тоже сделано с целью сокращения количества корпусов логических микросхем, чтобы еще дополнительный корпус не ставить с вентилями НЕ.
Через инвертор сигнал write защелкивает входы сдвигового регистра, чтобы последовательно были переданы данные, установившиеся на входе регистра на момент нажатия кнопки.
Входы D0-D4 сдвигового регистра U1 посажены на землю и формируют нулевой адрес устройства, при необходимости эти линии можно переключить между землей и плюсом питания так, как вам будет удобно. По классификации от Филипс 0h это адрес для телевизоров, кнопками можно будет клацать TV-программы.
Бит-переключатель
Бит управления trig формируется триггером U3:B, включенным по схеме ждущего мультивибратора с увеличенной крутизной фронта. Короткий импульс write со схемы обработки клавиатуры переключает выход триггера на противоположенное значение. Благодаря этому в посылке можно различать отдельные нажатия на кнопки пульта.
Отправка сообщений и тактирование
Также сигнал write переключает выходы второго вентиля триггера U3:A, что активирует работу схемы формирования сообщения на основе счетчика 74HC393.
Задача этой схемы заключается в том, чтобы подать на сдвиговые регистры 14 тактовых импульсов и выдать все 14 бит данных.
Триггер U3:A удерживает счетчик U2:A в состоянии сброса, пока не придёт сигнал write. Благодаря схеме монтажного ИЛИ на диодах D3-D6, счетчик будет вести счет до тех пор, пока хотя бы на одном из его выходов Q0-Q3 будет присутствовать низкий уровень.
По фронту 15-ого тактового импульса все выходы счетчика установятся в высокий уровень, через вентиль ИЛИ U4:A на вход триггера поступит импульс переключения, и работа схемы завершится. То есть пятнадцатый импульс от тактового генератора на сдвиговый регистр не поступит, схема пропустит ровно 14 тактовых импульсов с выхода генератора U8 на NE555, во время которых выходной сигнал схемы формирования сообщения transfer будет в активном уровне.
Бифазный модулятор
Думаю, что объяснять работу модулятора в манчестерский код подробно не нужно. Это должно быть понятно из предыдущего текста.
Заполнение сформированного сообщения частотой 36кГц выполняет генератор U9 на таймере NE555. Современные ИК-приемники часто строятся на модулях типа TSOP, которые на выходе сразу дают низкочастотный сигнал, и поэтому они не так критичны к количеству импульсов заполнения.
Светодиод D7 должен быть инфракрасным с длинной волны 940нм, это самый распространенный диапазон для ИК управления. Если длинна волны светодиода будет отличаться, дальность приема может сильно сократиться.
Немного о питании схемы
Питание схемы можно осуществлять от трех, а лучше четырех последовательно включенных батареек типа ААА. Либо использовать две батарейки с повышающим стабилизатором на 5В. Наличие стабилизатора предпочтительнее, это позволит выжать из батареек максимальную емкость.
❯ Итоги проектирования
Предварительная компоновка схемы на печатную плату показала ее жизнеспособность. Для реализации схемы ИК-пульта в формате RC-5 мне понадобилось всего девять корпусов типа SOIC, два из которых имеют по 8 выводов. Все эти компоненты вполне помещаются в формате классического пульта управления для телевизора.
Вопрос остается только к энергопотреблению схемы. Жрать батарейки конечно же она будет прилично, не сравнить со специализированными микросхемами, которые переходят в сон между нажатиями кнопок.
До воплощения этой схемы в железо так и не дошло, хотя было бы интересно ее спаять. По итогу проектирования схемы, мы с товарищем пришли к другой концепции задания для конкурса. Но из этой схемы получилась хорошая головоломка для дополнительной тренировки студентов на понимание цифровой схемотехники.
Вы любите паять? А я очень! В любом занятии важен инструмент. Вот и пайка не исключение. А если работать с другом, то всё становится гораздо интереснее и веселее. Сегодня познакомимся со станцией «НеоТерм-3Т», заглянем внутрь. Узнаем простое, но эффективное и красивое схемное решение и некоторые забавные, но весьма удобные хитрости пайки.
❯ Что за станции такие – «НеоТерм»?
У саратовской компании «Магистр» целая линейка симпатичных паяльных станций «НеоТерм». Отличаются они составом и количеством инструмента, который можно одновременно к ним подключать.
Ранее я приобрёл трёхканальную станцию «НеоТерм-3Т».
Два паяльника позволяют работать одновременно с другом.
Или паять сразу в две руки, для чего я их и взял. Это очень удобно, особенно для демонтажа:
Тут главное не жалеть флюса и наляпать хорошую колбаску припоя, чтобы он покрыл все выводы сразу и был проводником тепла. Процесс происходит очень быстро и микросхемы не перегреваются.
Кроме того, в паяльники можно вставить разные жала:
В один побольше, в другой поменьше. Для ювелирных работ это может быть полезным. Часто бывают ситуации, когда нужно залудить что-то (например, тоненький проводок), а потом сразу припаять к крохотному разъёму с мелким шагом, который только и ждёт, чтобы засосать соплю между своими маленькими выводами.
Делать это одним паяльником не очень удобно: для лужения хорошо бы взять на жало побольше припоя, а для ювелирной пайки, наоборот, почти полностью убрать припой. У разъёмов обычно много выводов, и эти операции чередуются. Гораздо удобнее лудить и паять отдельными паяльниками.
Если паять вдвоём всё-таки скучно, то можно выбрать станцию с тремя паяльниками («НеоТерм-3С»).
И паять не только в две руки, но и левой ногой.
Вместо двух паяльников можно подключить вот такой термопинцет.
Когда в руки попадает какой-нибудь приборчик, всегда интересно, что там у него внутри. Снимаем переднюю панель.
На передней панели установлена основная плата с микроконтроллером STM32F071RBT6, энергонезависимой памятью 24LC02B-I/SN, пищалкой, экраном, кнопками и прочей мелочёвкой.
Питается станция от тороидального трансформатора ПКФЛ 671113.678ш мощностью 148 ВА, изготовленного белорусским предприятием «Юджэн».
Кроме управляющей платы есть ещё силовая. Все выводы трансформатора подключены к этой плате. На ней интересных деталей уже побольше: беленькие оптопары MOCD207R2M, 3 пары транзисторов (IRF7493 и IRFH6200), разъёмы для термоинструментов, 2 ОУ OP07C и разная мелочь.
❯ Как же работает управление нагрузкой?
Можно заметить, что транзисторы включены попарно и встречно – любопытненько! Вооружившись мультиметром срисовываем схему, приводим её в понятный читаемый вид (показана только одна из вторичных обмоток трансформатора).
Заодно можно помоделировать в Spice симуляторе.
Пусть на выводе 7 обмотки плюс, а на выводе 6 минус (положительная полуволна). Ток через R2, диод VD1 и обратный диод ключа VT2 заряжает конденсатор С1.
По каналам ключей VT1, VT2 ток не течёт, так как они закрыты. Постепенно накопительный конденсатор С1 заряжается до напряжения, равного амплитуде синусоиды минус падение на диоде VD1 и обратном диоде транзистора VT2.
Теперь можно использовать заряд этого конденсатора для открывания полевых транзисторов. Если открыть транзистор оптопары U1B, то ключи VT1, VT2 откроются и ток нагрузки потечёт через них.
Закрыть транзисторы VT1, VT2 можно открыванием оптопары U2B, которая разрядит ёмкости затворов.
Посмотрим на графики SPICE модели. Сверху видим ток нагрузки и напряжение на ней. А также Напряжение на обмотке трансформатора, питающей схему. По центру – короткие прямоугольные импульсы открывания и закрывания (подаются на светодиоды оптопар U1B и U2B соответственно). Снизу приведены напряжения сток-исток VT1 и VT2.
Что здесь происходит?
В обмотке трансформатора положительная полуволна, напряжение нарастает. Напряжение сток-исток ключа VT1 так же нарастает, а вот напряжение на ключе VT2 остаётся низким. Почему так происходит? Дело в том, что диод ключа VT2 при такой полярности открыт, а диод VT1 закрыт. Если поменять полярность полуволны, то состояния их диодов поменяются местами.
Даём короткий импульс на открывающую оптопару, открывая её на время длительности импульса. Этого достаточно, чтобы зарядить ёмкости затвором зарядом из С1 и открыть транзисторы.
Транзисторы VT1, VT2 открыты (напряжения сток-исток на них малы).
Даём короткий импульс на закрывающую оптопару, открывая её на время длительности импульса. Этого достаточно, чтобы разрядить ёмкости затворов и закрыть транзисторы.
Транзисторы закрыты. Диод ключа VT1 закрыт, а VT2 открыт.
Такое управление похоже на фазовое управление тиристорами (симисторами), но здесь мы можем закрыть транзисторы в любой момент, а не ждать, пока напряжение анод-катод уменьшится до нуля и тиристоры (симисторы) закроются сами.
Значительный плюс – малое сопротивление канала полевого транзистора, по сравнению с сопротивлением открытого тиристора или симистора. Посмотрим на график из даташита транзистора IRFH6200.
При 4 В затвор-исток сопротивление канала в районе 1 мОм. При токе 50 А будет падение 50 мВ. У тиристора прямое падение напряжения на участке анод-катод будет более 1 В. Например, у тиристора CLA50E1200HB при 50 А будет падение 1,25 В.
У более низковольтного КУ202Г максимальное напряжение в открытом состоянии указано 1,5 В. 1500 мВ/50 мВ=30 раз. Разница значительная.
Стабилитрон VD2 на 12 В защищает затворы транзисторов от превышения напряжения. Резистор между затвором и истоком препятствует самопроизвольному открыванию и поможет закрыть транзисторы, если контроллер вдруг отвалится.
Зачем диод VD1? Представим, что его нет. Тогда накопленный в С1 при положительной полуволне заряд утёк бы из конденсатора во время отрицательной полуволны.
Вот такая любопытная схема. Очень интересное, простое и красивое схемное решение, на мой взгляд.
Мы рассмотрели схему управления нагрузкой в канале термозачистки. Аналогичным образом управляются паяльники в двух других каналах.
Привет, пикабушники! Хотелось бы рассказать об инциденте, произошедшем при работе с компанией ООО «ТаймВэб», который я безуспешно пытался решить сначала в личной переписке, потом условно-публично в их канале телеграмма. Из телеграмма меня нагло выперли, т.к. задавал неудобные вопросы.
Ничего не остаётся как вынести сор в публичное обсуждение на просторы интернета.
Суть конфликта: Как известно таймвеб (далее ТВ) предоставляет услуги регистрации доменов. На их сайте подобрал себе домен за 2170 р (важно) и оплатил его. В результате мне на почту пришло уведомление об оплате с электронным чеком. В личном кабинете наблюдаю статус регистрации - ошибка Создаю тикет с вопросами и получаю ответ в стиле: Мы не можем предоставить вам домен, т.к. его цена 68526 р (!) доплатите полную сумму или мы вернём вам деньги. Далее начинают рассказывать про внутреннюю кухню, взаимоотношения с партнёрами и т.д. и т.п. Отвечаю, что мне не нужно возвращать деньги, мне нужно получить услугу\домен. На этом переписка по существу заглохла. ТВ морозится. Моя часть сделки\оферты была выполнена в полном объёме, услугу я оплатил. ТВ пишет, что они не в состоянии выполнить свою часть сделки и тупо шлют лесом. Исполнить обязательства не могут они, а проблема, оказывается, моя.
Судя по всему таймвебу плевать на свою репутацию, так же как на своих клиентов. Текущих и будущих. Из чата поддержки выкидывают, как только понимают, что не вывозят.
Имеются все подтверждающие скрины. При необходимости могу приложить к статье.
Мошенничество По сути хороший вариант отслеживать реально нужные домены, потом отшивать покупателя и перепродавать со своей наценкой. Профит.
Вопросы к аудитории Должен ли я, как простой обыватель, вникать во внутренние дела компании, чтобы получить услугу. Не противоречит ли это текущему законодательству? Является ли нежелание организации оказывать услугу причиной в отказе предоставления мне оплаченной услуги?
Иногда, при разработке устройств на микроконтроллерах, возникает потребность в выводе на дисплей большого количества информации или же в выводе информации на крупный дисплей для возможности ее считывания с большого расстояния. К сожалению, готовых решений этой проблемы нет, а те что есть – весьма дороги. Например, графические ЖК-дисплеи с возможностью подключения к микроконтроллеру обычно имеют диагональ не более нескольких дюймов и достаточно существенную цену (причем, даже монохромные, о цветных вообще можно не говорить).
В то же время есть огромный парк старых ЖК мониторов. Модели с диагональю 15-19 дюймов можно приобрести в рабочем состоянии за 200 – 500 руб. Особенно это касается моделей с немодным сейчас соотношением сторон 4:3. Эти модели достаточно надежные. Лампы CCFL, используемые для подсветки, конечно, теряют яркость за годы эксплуатации и их спектр свечения уходит в неприятный красноватый оттенок, но благодаря большому количеству таких мониторов всегда есть возможность выбрать более-менее живой экземпляр. Кроме того, лампы CCFL относительно несложно заменить обычной светодиодной лентой, подключив ее напрямую к источнику питания 12 В монитора. Однако при этом обычно необходимо заблокировать цепи обратной связи от микросхемы управления подсветкой к контроллеру самого монитора, иначе монитор будет думать что подсветка неисправна и просто выключится. Также придется пожертвовать функцией регулировки яркости. Однако, этой функцией мало кто пользуется. Обычно яркость монитора настраивается один раз в жизни, сразу после его покупки и потом никогда не меняется.
Мной таким образом был доработан монитор диагональю 17” фирмы «Самсунг». Результат меня удовлетворил, монитором вполне можно было продолжать пользоваться по его прямому предназначению. Единственное, хочу отметить, что в моем случае причиной переделки стал пробитый повышающий трансформатор, а не вышедшая из строя лампа CCFL, которые, как я уже говорил, достаточно надежны. Также светодиодные ленты я подключил через ключ на мощном транзисторе npn для того, чтобы подсветка отключалась по команде от контроллера монитора, иначе во время инициализации монитора или переключении режимов на экране видны полосы и неприятные мерцания.
Кроме выхода из строя ламп подсветки и схемы их питания, другой наиболее частой проблемой в таких мониторах следует назвать выход из строя конденсаторов в блоке питания. Иных проблемных мест в мониторах обычно не бывает и после указанной доработки и замены конденсаторов на свежие они наверняка еще проработают не менее 10 лет.
Большинство старых мониторов обычно всегда имеют разъем VGA для подачи на него сигнала от компьютера. Часто присутствует только один этот разъем. Иногда в паре с разъемом DVI (чаще на более дорогих моделях). Разъем HDMI больше встречается на относительно современной технике.
Таким образом, разъем, который с почти 100% вероятностью найдется на старом мониторе – это разъем VGA. На него и будем ориентироваться.
Чтобы вывести изображение на монитор достаточно оперировать всего 5-ю сигналами – R, G, B – отвечающие за цвет и яркость, HS, VS – отвечающие за синхронизацию. Как это сделать, подробно рассмотрено в статьях 1, 2, 3, 4, поэтому не буду повторяться.
В вышеперечисленных статьях для вывода видеосигнала чаще всего используется ПЛИС, которая обычно весьма недешевая. В одном из вариантов сигналы генерируются на микроконтроллере и рассыпухе. Хотелось бы попроще и подешевле одновременно. Поэтому было принято решение использовать ПЛИС, но не PGA, а CPLD. Такие ПЛИС имеют существенно меньше доступных логических ячеек, но также и стоят дешевле. Например, макетную плату ПЛИС MAX II Altera EPM240 мне удалось приобрести на Aliexpress всего за 8,57$ (без учета доставки). Причем, в комплект входил также и программатор. Сами чипы можно найти за 1,6 – 2,1$ (не оригинал, разумеется).
Макетная плата MAX II Altera EPM240
Да, для реализации был выбран текстовый режим, как наиболее простой для микроконтроллера, но, в то же время, достаточно информативный. Некоторые простые графические вещи можно реализовать символами псевдографики, как это широко практиковалось во времена DOS. Для реализации графического режима потребуется передавать большой объем данных от микроконтроллера и дополнительно загружать его формированием графики, что не всегда допустимо, особенно для слабых ядер.
Первый шаг — успешный вывод на экран символа «2». Символ получился отзеркаленным. Не беда
У указанной ПЛИС на борту имеется flash ПЗУ, которое весьма заманчиво использовать для хранения ПЗУ знакогенератора. Однако объем его крайне невелик – всего 8 кБит или 1 кБайт. Этого может хватить только для символов с разрешением 5х7, да и то, если пожертвовать неотображаемыми, малозначительными и визуально идентичными символами из таблицы ASCII. Кроме того, использование встроенного ПЗУ потребует расхода логических ячеек, которых и так немного. Как бы ни был привлекателен этот вариант, придется от него отказаться и использовать микросхему внешнего ПЗУ, взятую, например, из старых материнских плат. Если найти микросхему с питанием 3,3 В, то даже не придется ничего думать насчет согласования уровней напряжений с ПЛИС. Объемы таких ПЗУ достаточно велики – 2/4/8 Мбит или 256...1024 кБайт, что позволяет хранить там большое количество различных шрифтов в хорошем разрешении 8х16.
Макетная плата Altera MAX II крупным планом
Для хранения образа экрана также потребуется микросхема ОЗУ. Рассчитаем примерный требуемый объем. Если мы планируем использовать шрифт 8х16, то при разрешении экрана 640х480 мы получим 80 знакомест по горизонтали и 30 строк по вертикали. Значит для хранения образа экрана необходимо 80∙30=2400 байт. Не очень удобное число. Оно лишь ненамного больше чем ближайшая степень двойки – 2048. Поэтому память используется нерационально, всего на 58%, поскольку ближайший объем, кратный степени двойки – 4096. Кстати, именно поэтому получил распространение текстовый режим 80х25, в котором 5 строк были попросту выброшены. В этом случае количество потребной памяти – 2000 байт, что замечательно помещается в объем памяти 2 кБайт. Однако современные микросхемы памяти имеют достаточно большие объемы, экономить ее сейчас смысла особого нет. Более того, можно сознательно пойти на нерациональное использование объема памяти в угоду упрощения логики дешифрации и экономии логических ячеек ПЛИС. Итак, нужен объем 4096 байт (212, 12 бит адреса), который можно разделить следующим образом: 5 бит адреса выделить на адрес строки (будет использовано 30 из 32) и 7 бит на адрес столбца (будет использовано 80 из 128).
Такой же объем памяти потребуется для страницы атрибутов символов. В качестве атрибутов обязательно нужны будут цвет символа, цвет фона, подчеркивание, мигание.
Итого, необходима память размером не менее 8 кБайт. Из вариантов «под рукой» лучше всего подходит статическая память (используемая как кэш-память), также взятая со старых материнок. Единственное, эта память обычно 5-вольтовая. Однако если это память КМОП, она чаще всего без проблем работает и при напряжении 3,3 В, единственное, при этом необходимо закладывать бОльшие тайминги.
Итак, получилась следующая схема.
Первый вариант схемы
Как видно, схема включает в себя только 3 микросхемы и минимум внешних деталей. Если применить в качестве основы вышеупомянутую макетную плату EPM240, то кроме нее потребуются только микросхемы ПЗУ, ОЗУ и разъем VGA с пятью резисторами. Подключение сигналов к ПЛИС показано условно, поскольку почти все ее ножки равнозначны (кроме глобальных тактовых сигналов, на один из которых необходимо подать сигнал с тактового генератора). При программировании микросхемы под конкретное устройство почти все сигналы можно будет переназначить. Пока же устройство собрано на макетной плате и этот вопрос можно отложить.
Устройство общается с микроконтроллером по параллельному 8-битному интерфейсу (сигналы с префиксом HOST), логически почти идентичному широко распространенному интерфейсу дисплеев на контроллере 1602 и им подобных. Единственное отличие – добавлен сигнал BUSY от устройства к микроконтроллеру. Его необходимость обусловлена тем, что доступ к микросхеме ОЗУ предоставляется только в момент обратного хода кадровой развертки. В остальное время микросхема занята логикой ПЛИС. Сигнал BUSY также имеет смысл сигнала запроса прерывания. По его перепаду контроллер может автоматически начинать запись в буфер экрана.
Второй шаг — вывод некоторых символов знакогенератора различным цветом символа и фона
Описание интерфейса:
DATA[7:0] – данные 8 бит, порт однонаправленный, только на запись в устройство.
CS – выбор устройства, 0 – устройство выбрано, 1 – устройство не выбрано. По положительному перепаду CS защелкиваются данные при записи.
AD – адрес/данные, при операции записи: 0 – передаются данные, 1 – передается адрес.
BUSY – занятость устройства, 0 – не занято, 1 – занято. Если устройство занято, операция записи данных в ОЗУ игнорируется. Возможна запись только в регистр адреса.
RESET – сброс устройства. 0 – сбросе, 1 — работа. Аппаратный сброс можно использовать для мгновенного гашения экрана. При активации этого сигнала прекращается выдача сигнала на монитор. Сброс не влияет на содержимое микросхемы ОЗУ.
Запись данных от микроконтроллера в ОЗУ возможна только во время кадрового гасящего импульса, когда микросхема ОЗУ не занята логикой ПЛИС. Это время составляет 1,440 мс. Несмотря на то, что это довольно-таки большой интервал, при использовании медленных микроконтроллеров может не хватить времени чтобы полностью перезаписать всю область памяти. Например, микроконтроллер AVR при работе на частоте 11,0592 МГц успевает записать только 3 полные строки экрана со всеми атрибутами. Если не перезаписывать атрибуты (как это обычно и происходит при реальном использовании – атрибуты записываются один раз при старте программы), то можно за один раз записать 6 строк. Наверное, если оптимизировать код, переписать его на ассемблере, то можно существенно ускорить обновление данных. Иначе для перезаписи всего экрана может потребоваться от 5 циклов (если обновлять только данные) до 15 циклов (если обновлять еще и атрибуты). При частоте развертки 60 кадров в секунду, это займет от 1/12 до 1/4 секунды. Если кто-то из читателей когда-то работал на машинах класса ХТ или АТ с тактовыми частотами процессора в районе 4 – 12 МГц, то ощущения при обновлении экрана будут примерно такие же.
Если же ждать очередной гасящий импульс неохота и хочется записать все за один присест, можно воспользоваться сигналом RESET. При его активации внутренняя логика ПЛИС останавливается и отключается от микросхемы ОЗУ, давая прямой доступ микроконтроллеру к памяти. Регистры для работы с ОЗУ сигнал сброса не затрагивает.
В общем же случае операции при записи такие: нужно дождаться когда сигнал BUSY станет нулевым, затем необходимо выставить на шину данных нужные данные, выставить сигнал типа данных (адрес или данные) – AD и «щелкнуть» сигналом CS, сначала в лог. 0, затем в лог. 1. При переходе этого сигнала из лог. 0 в лог. 1 данные защелкнутся в памяти. Во время гасящего импульса микросхема ОЗУ напрямую подключается к сигналам HOST микроконтроллера, соответственно, соблюдение таймингов при записи является заботой микроконтроллера. Но, чаще всего, статическое ОЗУ — достаточно шустрое устройство и обычно имеет тайминги существенно меньшие того, с какой максимальной скоростью средний микроконтроллер может управлять своими линиями ввода/вывода.
Микросхема ОЗУ D43256BGU-70LL подключается к ножкам ПЛИС сигналами с префиксом RAM. К этим сигналам относится 8-разрядная шина данных (двунаправленная) и 13-разрядная шина адреса. Из управляющих сигналов используется только сигнал WE. Поскольку на шине RAM микросхема одна и обе шины (адреса и данных) в ее полном и безграничном владении, сигналы OE и CS не используются, на них необходимо подать постоянный лог. 0, соединив их с общим проводом.
Примерно так же подключена (сигналы с префиксом ROM) микросхема ПЗУ SST49LF002A, за исключением того, что шина данных однонаправленная. Сигналы OE и WE этой микросхемы также не используются и напрямую подключены к лог. 0 и лог. 1 соответственно.
На свободные ножки ПЛИС подключены джамперы для выбора текущего шрифта. Поскольку объем микросхемы ПЗУ достаточно велик, это позволяет записать в нее несколько различных шрифтов, в т. ч. и с национальными алфавитами и переключать их простой установкой джамперов.
Разъем VGA подключен к ПЛИС с помощью всего 5 резисторов. Причем, резисторы в цепях HS и VS несут больше защитную функцию и их можно безболезненно исключить. Резисторы в цепях R, G, B подобраны таким образом, чтобы совместно с входным сопротивлением монитора (75 Ом) они образовывали делитель напряжения, уменьшающий напряжение на входе монитора до номинального 0,7 В.
Внешний вид макета
Ножки питания зашунтированы керамическими конденсаторами, а на ножку GCLK0 подается тактовый сигнал частотой 50 МГц от кварцевого генератора. Эти детали уже были на макетной плате.
К сигналу RESET подключены резистор, конденсатор и кнопка, собственно, и формирующие этот сигнал. Но если этот сигнал формируется микроконтроллером, то эти детали не нужны.
После написания основной части планируемой логики работы ПЛИС, оказалось что объем использованных логических ячеек ненамного превысил только половину от имеющихся. В связи с этим появилось желание немного усложнить логику работы, добавить больше возможностей. В первую очередь можно увеличить количество цветов до 16. Для этого нужно использовать еще 3 ножки ПЛИС и добавить в схему еще 3 резистора. Это не слишком усложнит схему, зато добавит еще 8 цветов. В этом случае страницу ОЗУ с атрибутами придется полностью отдать под цвет и добавить еще одну страницу с атрибутами, увеличив на 1 разряд шину адреса ОЗУ. В дополнительную страницу атрибутов можно перенести и выбор шрифта, добавить подчеркивание, моргание символа, моргание фона и т. д.
Новая схема имеет следующий вид. Она не сильно отличается от предыдущей.
Второй вариант схемы
При увеличении количества цветов возникает вопрос — какую палитру выбрать? Когда цветов всего 8 такого вопроса нет – все цвета это двоичный перебор трех основных цветов r, g, b (2^3=8). Когда больше – тут возможны варианты. Например, 16-цветная палитра EGA:
Палитра EGA
Как видно, в этой палитре 4-й бит отвечает за яркость. Но половинки таблицы поделены по яркости неодинаково. Первая половина «настроена» на 2/3 яркости (байт ААH = 170 = 2/3*256). Во второй половине добавляется еще 1/3 яркости (байт 55H = 85 = 1/3*256) и цвета называются bright *color*. Интересный момент: из схемы выбивается цвет №6 (yellow/brown), который по логике должен быть АААА00, но специально сделан АА5500 для того, чтобы малопривлекательный грязно-желтый цвет заменить на более востребованный коричневый. Это известная аппаратная фича видеокарт и мониторов EGA. Причем, в некоторых мониторах это было учтено, а в некоторых моделях с целью упрощения схемотехники на это забивали. А в других даже добавляли отдельный регулятор для настройки (назывался «BROWN ADJ.»), которым можно было отрегулировать желаемый оттенок этого цвета. Поэтому цвет в таблице обозначен как желтый/коричневый.
Нелинейное деление по яркости автоматически приводит к появлению в палитре двух оттенков серого – светло-серого и темно-серого цвета, которые весьма востребованы на практике.
Однако, 16-цветная палитра VGA немного другая. Там цвета делятся по яркости ровно пополам (80Н = 128 = 1/2*256):
Палитра VGA
В ней также выбивается из логики один цвет – светло серый (С0С0С0), который должен быть черным и, соответственно, дублировать уже имеющийся. Кроме того, этот цвет поменялся местами с темно-серым цветом (808080). Это сделано специально для совместимости 16-цветных палитр VGA и EGA, которые, таким образом, почти идентичны по восприятию.
В нашем же случае, когда сигналы формируются аппаратно с помощью резисторов представляется более удобным использовать палитру EGA. При этом необходимо добавить в логику дешифрации коррекцию только одного цвета – того самого №6. Все остальные цвета получаются автоматически. Для коррекции палитры VGA только изменением программы дело бы не обошлось — понадобилось бы добавлять еще группу резисторов для формирования светло-серого цвета (С0С0С0).
Резисторы должны быть рассчитаны так, чтобы одна группа давала 1/3 яркости, вторая 2/3 яркости, и вместе, соответственно, давали полную яркость. Нехитрыми вычислениями согласно закону Ома были рассчитаны их сопротивления: 390 Ом и 750 Ом.
Логика для формирования видеосигнала для статичного изображения (например, тестовых цветных полос) довольно простая. Однако если необходимо формировать изображение в зависимости от внешних событий или команд, задача несколько усложняется. Необходимо организовать интерфейс с ОЗУ и ПЗУ. Причем, обмен должен происходить не просто быстро, а очень быстро! Попробуем для начала оценить, будут ли вообще выбранные микросхемы успевать работать.
Итак, у нас режим 640х480. Частота вывода пикселей – 25 МГц (вообще то по стандарту должно быть 25,175 МГц, но можно абсолютно безболезненно округлить до 25, VGA, как и многие другие аналоговые стандарты допускает довольно значительный разбег по параметрам), частота кадровой развертки 60 Гц (реально получается – 59,5 Гц), частота строчной развертки – 31,46875 кГц (реально – 31,25 кГц), то есть, время вывода одного пикселя составляет 40 нс, символа шириной 8 бит – 320 нс. За 320 нс необходимо прочитать ASCII код символа (байт), код цвета (байт) и поле атрибутов (байт) из ОЗУ, затем используя ASCII код в качестве адреса прочитать из ПЗУ битовую маску символа. Только после этого у логики ПЛИС будет вся необходимая информация для начала формирования изображения.
Третий шаг — получение информации от микроконтроллера
Согласно даташиту, для выбранной микросхемы D43256BGU-70LL полный цикл чтения занимает 70 нс. Поскольку мы ее используем при пониженном напряжении, длительность цикла необходимо увеличить. Хотя бы до 100 нс. Таким образом, за 320 нс мы как раз успеем прочитать из ОЗУ 3 байта — ASCII код, код цвета и атрибуты символа. Отлично. С ПЗУ сложнее, в нем адрес записывается в 2 захода – по строкам и столбцам и, согласно описанию, цикл чтения занимает 270 нс. Небыстро, но в 320 нс укладываемся, даже с запасом.
Проблема в том, что мы не можем начать выдавать адрес ПЗУ пока не узнаем как минимум ASCII код, а на это нужно 100 нс. В сумме получается 370 нс. Выручает нас то, что каждый по отдельности цикл чтения ОЗУ и ПЗУ укладывается в допустимый интервал и можно просто потратить на чтение данных не один цикл, а два. На время подготовки данных необходимо сместить область отображения символов, сделав дополнительную область гашения шириной 2 символа в начале строки, и, на те же 2 символа уменьшить область гашения после конца строки. Это сделать несложно – просто смещаем гасящий импульс на 640 нс (соответственно, смещается и синхроимпульс). С точки зрения монитора – никакой разницы.
Для понимания того, что и в какой момент писать и считывать удобно составить циклограмму. Поначалу ее и все тайминги я держал в голове, однако составление ее на бумаге и взгляд на нее со стороны позволил существенно оптимизировать циклы чтения и даже уменьшить количество использованных дефицитных регистров.
Циклограмма обращения к ОЗУ и ПЗУ
Цикл начинается с выставления на шину адреса ОЗУ адреса байта ASCII символа. Через 80 нс на шине данных ОЗУ появляется запрошенный байт, который мы незамедлительно используем для формирования адреса для чтения байта из ПЗУ знакогенератора. На отметке 100 нс выставляем на шину адреса ОЗУ адрес байта атрибутов символа. На 140 нс (через 60 нс после выставления адреса) защелкиваем первую часть адреса ПЗУ. Ждем еще 60 нс и выставляем на шину адреса ПЗУ вторую часть адреса. К этому времени на шине данных ОЗУ уже должен быть байт данных с атрибутами символа, 5 бит которого (подробные описания регистров ниже) отвечают за шрифт и входят во вторую часть адреса ПЗУ. Оставшиеся 3 бита данных сохраняются во временном регистре 2. Еще через 60 нс защелкиваем вторую часть адреса ПЗУ. Данные на шине данных ПЗУ появятся через 120 нс после этого события и это произойдет уже во время второго цикла. Чтобы циклы не пересекались, эти данные запишем во временный регистр 1 (на отметке 80 нс). И, наконец, на отметке 300 нс необходимо переписать все подготовленные данные в рабочие регистры. Битовая маска символа из временного регистра 1 переписывается в регистр rom_reg, применяются ранее сохраненные биты атрибутов к считанному в этот момент байту с цветом.
Таким образом, к концу второго цикла будут готовы все данные для вывода символа.
Четвертый шаг — картинку полностью формирует микроконтроллер. Символы и фон разных цветов, символы разных шрифтов. Некоторые нижние строчки моргают (фото этого не передает, прошу поверить на слово)
Основные регистры:
Запись данных из микроконтроллера в ОЗУ происходит следующим образом. Дожидаемся когда сигнал BUSY станет нулевым, записываем в регистры адреса начальные адреса, куда будут записываться данные (чаще всего это адрес 0 – адрес начала страницы данных, но может быть и произвольный адрес если необходимо изменить только несколько байт). Затем записываем необходимые данные. После записи каждого байта, адрес автоматически увеличивается на 1. При подходе к краю экрана (80-й символ в строке) адрес положения символа в строке автоматически обнуляется, а адрес строки увеличивается на 1. После записи всей страницы данных адрес автоматически переключается на запись страницы атрибутов, а после страницы атрибутов – на запись страницы цвета. После записи всех трех страниц адрес также автоматически обнуляется и начинается запись в страницу с данными. Таким образом, начальный адрес можно выставить только один раз и далее гнать только данные. Это позволяет сэкономить несколько мкс на установку адреса, а также упрощает программирование, когда закинуть все данные можно в одном цикле на 7200 итераций.
sym attribute (3 bit): bit 0 – symbol blinking bit 1 – background blinking bit 2 – underline symbol
На странице атрибутов хранятся шрифты и атрибуты символов. Младшие два бита отвечают за аппаратное моргание символа или фона, третий бит – за формирование подчеркивания. Старшие биты выбирают шрифт. Соответственно, можно выводить на экран символы из разных шрифтов вперемешку в любой комбинации. 5 разрядов для выбора шрифта позволяют хранить 32 разных шрифта, включающие как любые символы национальных алфавитов, так и спрайты для вывода картинки, например.
color page [7 - 4] [3 - 0] background color (4 bit) symbol color (4 bit)
Страница цвета содержит, соответственно цвет символа и цвет фона. Цвета могут быть любые из 16-цветной палитры.
Регистров адреса — 3. Выбор, в какой конкретно из них идет запись осуществляется старшими битами. Если старший бит [7] равен лог. 0, то записывается регистр позиции в строке (столбец). Если он равен лог. 1, то записывается регистр номера строки (строка) и номера страницы ОЗУ (данные или атрибуты или цвет). Если три старших бит равны лог. 1 то записывается специальный управляющий регистр, биты 4, 3 которого определяют положение аппаратно формируемой черты при включении бита подчеркивания, биты 2 – 0 зарезервированы для будущих настроек.
page: 00 – data page, 01 – attribute page, 10 – color page
Регистр хранит номер строки и выбор страницы.
[7 - 5] [4 - 0] 1 1 1 control reg (5 bit)
control reg: bit 4,3 – adjust underline 00 – 11 and 12 lines 01 – 12 and 13 lines 10 – 13 and 14 lines 11 – 14 and 15 lines
bit 2,1,0 – for future use
Специальный управляющий регистр.
Если задать адрес вне диапазона 0-79 по столбцу и 0-29 по строке, то данные начнут записываться в теневую область памяти, которая не отображается на экране. Ничего страшного в этом нет, после прохождения адреса 128 данные снова запишутся в видимую область. Была идея использовать теневую область данных как дополнительное ОЗУ для микроконтроллера. При этом, шину данных необходимо сделать двунаправленной и добавить сигнал чтения/записи. Однако от этого было решено отказаться с целью упрощения интерфейса. Тем более, что современные микроконтроллеры не испытывают настолько сильного недостатка в ОЗУ, как это было раньше. Кроме того, доступ к этому ОЗУ происходит не в любое время по желанию микроконтроллера, а также только во время гасящего импульса.
Пятый шаг — попытка вывести графическое изображение (неудачно)
Внутренние регистры ПЛИС (некоторые):
hreg[10:0] min-0, max-1599 [10 - 4] [3 - 1] [ 0 ] sym col pos (7 bit) sym col (3 bit) tact bit
Регистр содержит текущее положение развертки по горизонтали. Тактируется от частоты 50 МГц, что в 2 раза больше необходимых 25 МГц, поэтому младший бит (tact bit) не используется. Соответственно, биты с 1 по 3 обозначают позицию внутри символа, биты с 4 по 10 – позицию символа в строке. При достижении значения 1600 регистр обнуляется и на 1 увеличивается регистр vreg.
Регистр содержит текущее положение развертки по вертикали. Тактируется от регистра hreg. Соответственно, биты с 0 по 3 обозначают строку внутри символа, биты с 4 по 8 – строку символов. Бит 9 попадает уже в область гашения, поэтому не используется. При достижении значения 525 регистр обнуляется.
page: 00 – data page 01 – color page, 10- attr page
Регистры содержат текущее значение адреса для доступа к ОЗУ (всего 16 кБайт). Младшие 7 бит – адрес символа в строке (столбец), затем 5 бит – адрес строки и 2 бита – адрес страницы (данные, атрибуты или цвет). Этих регистров 2 – один для внутреннего использования логикой ПЛИС, второй управляется извне, микроконтроллером и может быть изменен только им.
rom_addr[10:0] col [10 - 6] [5 - 1] [0] 0 0 0 0 0 font (5 bit) ASCII code[7]
Регистр адреса ПЗУ, записывается в два приема. Содержит адрес строки символа, ASCII код символа и адрес шрифта. Эти адреса расположены таким образом, что в ПЗУ можно прошивать стандартные файлы шрифтов *.fnt без какой-либо дополнительной обработки, просто подряд. Объединить несколько шрифтов в один файл для прошивки можно, например, программой редактирования файлов WinHex. Главное, чтобы шрифты были с разрешением 8х16.
rgb[5:0] [5 - 3] [2 - 0] rgb color 1/3 rgb color 2/3
Регистр вывода цвета. Этот регистр подключен непосредственно к ножкам ПЛИС, подающие сигналы R, G, B на монитор. Младшие 3 бита подают сигнал уровнем 2/3 яркости (должны подключаться к резисторам 390 Ом), старшие подают сигнал уровнем 1/3 яркости (их необходимо подключить к резисторам 750 Ом).
Поскольку объем данных ПЗУ достаточен, на монитор также можно выводить и графические изображения. При этом, изображение необходимо разбить на спрайты размером 8х16 и зашить в ПЗУ знакогенератора. Изображение только должно удовлетворять двум требованиям: чтобы в пределах одного спрайта было использовано не более двух цветов из палитры и количество спрайтов не превышало 256. Как, например, на изображении ниже. За специально подготовленное изображение спасибо художнику A_Foxli.
К слову сказать, уложиться в 256 спрайтов — задача не из легких, именно поэтому изображение выглядит больше как детский рисунок. В процессе подгонки его приходилось несколько раз упрощать. Рисование спрайтами отлично подходит, например, при выводе на экран логотипа фирмы.
Следующим шагом эволюции компьютеров (который уже буквально на пороге) может стать постоянная энергонезависимая память большой ёмкости. Твёрдотельные накопители на несколько терабайт обеспечивают одновременно и длительное хранение данных, и функции оперативной памяти.
Это идеальный путь для развития компьютерных систем, так как он устраняет одно из фундаментальных противоречий современной компьютерной архитектуры. Но он вполне может хорошенько перемешать фигуры на доске существующей компьютерной индустрии, поскольку придётся изменить не только компьютеры, но и софт.
❯ Независимость — это свобода
Общий принцип организации перекрёстной матрицы памяти RRAM
Всем хорошо известны отличия энергозависимой памяти от энергонезависимой. Данные, хранящиеся в энергозависимой памяти живы только до тех пор, пока система работает. Как только подача энергии прекращается, данные становятся недоступными. Именно так работает оперативная память компьютера (ОЗУ) и кэш-память процессора.
Энергонезависимая память сохраняет информацию при отключении питания и хранит значительно бóльшие объёмы данных. Но работает она, на сегодняшний день неэкономично и гораздо медленнее, хотя именно в ней и содержится основная часть данных. Именно поэтому оперативная память остаётся первичной и применяется для хранения данных, необходимых ЦП для работы ОС и программ.
Сегодня существуют несколько видов быстрой энергозависимой памяти. Это динамическая, например, широко распространённая DRAM, разные версии которой используются в качестве ОЗУ, в ячейках она имеет транзистор и конденсатор, статическая (SRAM, применяется в качестве кэш-памяти ядра процессора), с шестью транзисторами в ячейке.
Но главная проблема состоит с том, что энергозависимая память, сколь быстра бы она ни была, отключаясь, теряет всю информацию. Это неудобно, но так работают сегодня большинство компьютерных систем. Пока.
Матрица RRAM под микроскопом
Поэтому и появились новые разработки быстрой, но уже энергонезависимой памяти. Это, например, резистивная память с произвольным доступом (RRAM, ReRAM, Resistive random-access memory). В её основе лежит свойство диэлектриков создавать внутри себя проводящие каналы при приложении высокого напряжения. Причём, изменив уровень напряжения проводящий канал можно разрушить, а затем создать снова. Получается так называемый мемристор, из которых и собираются матрицы памяти ReRAM.
❯ Сдвиг по фазе? Нет, фазовый переход!
Эскизная схема двухслойной памяти 3D XPoint. На пересечении линий (серый) показаны запоминающие ячейки (зелёный) и селектор (жёлтый)
В качестве ещё одного примера энергонезависимой памяти, претендующей на место ОЗУ, часто приводят 3D XPoint от Intel (торговая марка Optane). Она использует уже другой эффект — phase-change memory (PCM), изменение фазового состояния материала ячейки (кристалла халькогенида) при нагреве электрическим током. Халькогениды — бинарные химические соединения халькогенов (к которым относятся кислород, сера, селен, теллур, полоний, ливерморий) с металлами. В случае 3D XPoint используется халькогенидное стекло на основе сплава антимонида и теллурида германия Ge-Sb-Te). Память состоит из селектора и, собственно, ячейки, которые находятся в точках пересечения перпендикулярно друг к другу проложенных проводников (wordline и bitline). Селектор (ключ) включается при подаче на него напряжения и меняет состояние ячейки либо позволяет считать информацию. Память имеет многослойную структуру (она построена на базе вертикально интегрированных ячеек PCMS), что позволяет масштабировать плотность её размещения на кристаллах.
Phase-change memory на сегодняшний день считается наиболее перспективной технологией, которая может прийти на замену энергозависимой оперативной памяти. Она наиболее полно сочетает преимущества, которые присущи NAND, NOR, EEPROM и DRAM. При этом наиболее серьёзные недостатки всех этих видов памяти у PCM отсутствуют. Зато, преимущества очевидны. Изменение фазы вещества исключает возможные сбои в виде электрических помех, как это бывает в DRAM. Минимальные размеры стабильных ячеек — до 5 нм, что обеспечивает глубокую масштабируемость технологии. Phase-change memory позволяет выполнять побитное изменение данных, что возможно в DRAM, но нельзя сделать в NAND (там приходится оперировать крупными блоками).
Поскольку PCM обеспечивает высокую скорость чтения и произвольный доступ к ячейкам памяти, код можно запускать оттуда, без дополнительного сохранения его ещё куда-либо. К сожалению, пока скорость записи Phase-change memory не столь высока, как хотелось бы (она сравнима с этим показателем у NAND) но время начальной задержки у PCM, примерно в сто раз ниже. Кроме того, отсутствует цикл стирания.
Впрочем, у существующих разработок Phase-change memory на халькогенидах есть недостатки. Активный нагретый материал влияет на связанные с ним диэлектрик и электрод, что неизбежно вызывает постепенную их деградацию. Значительное изменение температуры извне может провоцировать утечку заряда и тем самым негативно влиять на длительность хранения данных. Для смены фазы ячейки требуется обеспечить высокую плотность тока, что непросто при нанометровых размерах матрицы и сокращает активную зону воздействия. Но часть этих недостатков может быть устранена благодаря недавним исследованиям учёных.
❯ Чудеса в слоистых никелатах
Рендер phase-change memory
В недавнем исследовании, опубликованном в журнале Advanced Science, сообщается об экспериментах с термически обратимым изменением электрического сопротивления при комнатной температуре в слоистых никелатах. Слоистые никелаты представляют собой класс сложных оксидных материалов, состоящих из ионов никеля. Они имеют сложную структуру, в которой слои атомов никеля и водорода перемежаются слоями, содержащими другие элементы, часто щёлочноземельные или редкоземельные. Именно эта уникальная слоистая структура привлекла интерес исследователей из-за свойств электронов, которые сулят слоистым никелатам применение в таких областях, как сверхпроводимость и электроника.
Свойства никелатов исследуются уже давно. В 2020 году учёные из Женевского университета (UNIGE) в сотрудничестве со швейцарским федеральным технологическим институтом в Лозанне EPFL), Цюрихским университетом и Льежским университетами, а также Нью-Йоркским институтом Флэтайрон выяснили, что слоистые никелаты по энергоэффективности могут превзойти кремний, причём с более низким энергопотреблением, обеспечив снижение дополнительных выбросов CO2 при производстве.
Схематическое изображение гетероструктур со сверхрешёткой, включая слои никелата самария поверх слоёв никелата неодима
Такие никелаты образуются из оксида никеля и атома редкоземельного элемента. В соответствии с тем, какой элемент использован, меняется и температура порога проводимости. Для самария она составит 130° C, для неодима −73° C. Столь значительная разница возникает из-за редкоземельных элементов, которые по-разному деформируют кристаллическую решётку никелата.
Команда учёных проанализировала поведение материала из нескольких слоёв никелата самария, поверх слоёв никелата неодима. Выяснилось, что если слои относительно толстые, то они работают на стандартной для составляющих их материалов температуре, но если сделать их тонкими, то образец становится «сэндвичем», в котором возникает эффект «скачка» проводимости в одном определённом промежуточном диапазоне температур. Причём всё это происходит без искажения кристаллической структуры материала, что предполагает надёжность, термическую и химическую стабильность процесса (никаких фазовых переходов и аморфных состояний, как в случае с халькогенидами, никакого перегрева и высоких температур), а значит — беспрецедентные перспективы для использования никелатов в электронике.
На схеме отражён процесс переключения электрического сопротивления в Sr2,5Bi0,5NiO5. Два объекта вверху — это кристаллические структуры Sr2,5Bi0,5NiO5 с различным расположением Sr/Bi. Внизу приведена кристаллическая структура двойного перовскита Sr2BiNiO4,5. Синее значение показывает электрическое сопротивление каждого слоя
Но вернёмся к недавнему исследованию, опубликованному Advanced Science. Созданный учёными никелат состоит из слоёв образований атомов стронция, висмута и кислорода, по структуре напоминающих каменную соль, чередующихся со слоями образований из атомов стронция, никеля и кислорода, по структуре напоминающих перовскит (псевдокубическая форма из геологии, иссечённая короткими штрихами). Эта специфичная кристаллическая структура формируется из двух положительно заряжённых атомов и одного с отрицательным зарядом, обладая свойствами сверхпроводимости и сегнетоэлектричества (явление спонтанной электрической поляризации в кристалле при определённой температуре даже в отсутствии внешнего электрического поля). Термически реентерабельное изменение полярности в слоистых никелатах (которое достигается подачей определённого напряжения) обеспечивает обратимое переключение электрического сопротивления при комнатной температуре, что позволяет разработать многоуровневую энергонезависимую память.
Если удастся довести исследования до логического завершения, слоистые никелаты могут привести к революции в компьютерной технике. Оксиды переходных металлов (более широкое понятие, включающее никелаты) в природе встречаются чаще, чем халькогениды, что потенциально может привести к снижению затрат на производство электроники и сделать процесс более экологичным.
❯ ReRAM+PCM — взболтать, но не смешивать!
Гибридные мемристоры с фазовым переходом открывают новые вычислительные возможности
Новые технологии, способные заменить энергозависимую память, продолжают появляться. Недавно команда учёных из университета Рочестера разработала новый материал для создания энергонезависимой памяти. По словам разработчиков, этот гибрид технологии, основанной на мемристорах (о ней шла речь выше) и памяти с фазовым переходом сочетает в себе лучшие свойства обоих видов резистивных переключателей. Разработчики технологии анонсируют низкое энергопотребление такой памяти и высокую плотность упаковки матрицы в кристалле. Технология основана на материале толщиной всего в один слой атомов.
В оригинальных технологиях не устранён целый ряд недостатков. Мемристоры, которые имеют ничтожный размер и постоянно разогреваются до высоких температур, не так надёжны, как хотелось бы. В свою очередь, материалы, обеспечивающие запоминание, при помощи фазового перехода вещества (фактически, его расплавления), требуют для работы больших токов, что, как уже говорилось выше, не так просто обеспечить при плотной упаковке ячеек в кристалле. Гибридная разработка состоит в том, что на кристалл воздействует небольшой ток, который не плавит его, а переводит в состояние, когда его сопротивление меняется.
Чтобы обеспечить неустойчивое состояние кристалла, которое легко изменить небольшим током, потребовалось создать специальный материал, растянутый до состояния тончайшей плёнки в одном направлении и сжатый в другом. В экспериментах использовался дителлурид молибдена (MoTe2). Напряжение, необходимое для переключения ячейки составило 90 мВ, а время переключения — 5 нс. Все параметры такой памяти можно регулировать путём изменения технологии производства и подаваемого на ячейки напряжения. Сейчас исследователи заняты повышением надёжности своей разработки.
❯ Операционные системы — на свалку истории
Начиная с эпохи мейнфреймов компьютеры использовали жёсткие диски и два уровня хранения данных: оперативную память и дисковое хранилище, доступ к которому осуществлялся через дисковый контроллер с использованием файловой системы для индексации и последующего извлечения содержимого. Если постоянное хранилище будет на карте памяти процессора, необходимость в дисковых контроллерах, файлах и файловой системе исчезнет. Трудно представить, что разработчикам удастся адаптировать к новым условиям существующие сегодня Unix-подобные операционные системы, с самого первого дня своего создания ориентированные на работу с файлами, каталогами и метаданными, которые являются их фундаментальной основой. Они тоже могут исчезнуть. Потребуются ОС и программное обеспечение с совершенно иной компьютерной архитектурой.
Содержимое оперативной памяти будет сохраняться от выключения до следующего включения компьютера. Причём храниться можно будет не только «снимок» оперативной памяти, регистры, но и состояние программ перед выключением, которое уже и не станет «шатдауном», в полном смысле этого слова.
Если создать ОС, которая обеспечит независимость сохранённых данных за счёт некой спецификации, то наличие самого компьютера и его физическая конфигурация могут оказаться не таким уж важным элементом системы. Это вполне может привести к ещё одной, пока неочевидной революции в компьютерной отрасли. Например, блок памяти может быть у каждого свой, его станет возможным носить в кармане, как сейчас карту SSD и при подключении начинать работу с того места, где она была завершена, со своими, привычными только вам настройками. Некоторые серверы необязательно должны будут всегда находиться во включённом состоянии. Может сильно упростится жизнь и для программистов, которым во многих случаях уже не потребуется производить сериализацию состояния программы. Пока это звучит как фантастика, но персистентная память и персистентные ОС уже существуют и постоянно совершенствуются, так что изменения однажды произойдут.
❯ ОС нового типа есть, но это не точно
Пока одни разработчики только строят планы и подбирают технологии для создания персистентной ОС, другие уже работают над подобными проектами.
Одна из операционных систем, опирающихся на новые принципы — ОС «Фантом» от известного разработчика Дмитрия Завалишина. Концепция ориентации на файлы, стандартная для Unix-подобных систем в ней изменена на концепцию, главным элементом которой является объект. ОС представляет собой виртуальную машину, обеспечивающую восстановление системы с момента последнего выключения за счёт того, что периодически делает и сохраняет снимки своего состояния. Новые принципы, заложенные в проекте, позволяют ОС не замечать перезагрузок и сохранять состояние компьютера, в том числе и при аварийном завершении работы. Все приложения работают в едином адресном пространстве и обмениваются данными через ссылки, а разделение доступа обеспечивается тем, что любые данные обрабатываются, как отдельные объекты и получить объект, принадлежащий другому процессу нельзя. В системе много интересных «фишек». Проект ещё в стадии разработки.
Существуют и другие ОС, включающие отдельные элементы и идеи, использованные в ОС «Фантом». Это IBM i, EROS, Singularity, и PalmOS. Из них, наиболее полно критериям персистентной ОС отвечает проект IBM i, наследник OS/400. Эта операционная система является объектно-ориентированной, содержит одноуровневую память, управляемую среду и поддерживает, собственно, персистентность. Но на сегодняшний день это не ОС для домашних компьютеров, а довольно дорогое платное серверное решение для бизнеса.
❯ Будущее
Вполне вероятно, что грядёт эра энергонезависимого ОЗУ, совмещающего ещё и функции хранилища данных. И возможно, что встретим мы её не только с другими компьютерами, но и с иными операционными системами и другими программами, так как существующий софт не совсем подходит под новую концепцию.
А знаете, я считаю голосовое управление умным домом эффектным, но не эффективным. Это когда молод, и делать нечего - можно поиграться - поуправлять светом голосом.
В свое время были простые решения типа управления светом хлопаньем рук, и где это все? Это не практично. В семье из нескольких человек, особенно если есть маленькие дети, всегда стоит шум, голосове управление при шуме - это еще тот геморрой.
Более того, если приходится часто включать/выключать свет, то ничего нет удобнее и практичнее простого выключателя на стене, просто поверьте. Проще пройти миммо нажав кнопку, чем произнести фразу. Да и фраза будет не краткой, если у вас больше одного светильника кооторым Вы управляете.
Я вообще не представляю дествительно умный дом с голосовым управлением, потому что в действительно умном доме огромное количество устройств управления и датчиков.
И если это действительно умный дом, значит его прозрачность должна быть максимальная.
Т.е. Вы не должны ощущать его присутствие. И тем более не должны больтать безумолку.
Просто должны выполняться сценарии без вашего участия. Все что вне сценариев должно управляться привычными, простыми органами управления типа выключателя. В том числе, удаление 'умного дома' не должно никак сказаться на основных функциях дома - свет как могли включить выключателем, так и включаем.
Умный дом - это прозрачное дополнение, которое информирует в случае проблем и выполняет элементарные действия, которые не могут быть негативны, типа выклчения всех не основных приборов после ухода всех из дома.
А иначе - весь этот рынок просто пиар бесполезных решений, с которыми интересно поиграться и не более того.
Я еще не говорю о вопросах безопасности, надежности и прочего устройств на базе WIFI и других безпроводных решений, особенно которые завязаны на заруюежные сервисы(в том числе на сервисы не дружественных стран).