РадиоКот :: Укрощение домофона Цифрал
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Защита и контроль >

Теги статьи: Добавить тег

Укрощение домофона Цифрал

Автор: SSMix
Опубликовано 05.10.2020
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2020!"

В статье описан способ изготовления дешёвого дубликата ключа для домофона Цифрал на микроконтроллере с возможностью прошивки любого кода. Особенностью конструкции является питание ключа от самого домофона.

Как-то, придя домой, я не смог попасть в подъезд, оборудованный домофоном Цифрал. Ключ-таблетка, прослуживший добрый десяток лет, отказался открывать замок. Домофон на него вообще никак не реагировал. Пришлось звонить знакомому, чтобы тот открыл дверь. Взяв дома запасной ключ, я убедился, что сам домофон исправен, после чего приступил к изучению его принципа работы. Внутри ключа Цифрала установлена бескорпусная микросхема К1233КТ1, в которую на заводе зашит персональный код из восьми 4-разрядных слов + стартовое слово 0001. При подключении к источнику питания через ограничительный резистор ключ непрерывно циклически выдаёт этот код в линию, как показано на рисунке из datasheet:

Логические нули и единицы домофоном определяются по перепадам напряжения и длительностям импульсов. Всего выходит 65536 комбинаций кода. В каждом подъезде в домофон прописываются коды ключей всех его жильцов.
После подключения не срабатывающего ключа к напряжению 5В через резистор 1кОм на осциллографе были видны похожие импульсы, поэтому было сделано предположение, что имеет место просто плохой контакт центрального вывода ключа с гнездом домофона, т.к. в результате многолетней эксплуатации на ключе образовалась солидная вмятина. С целью её выравнивания ключ был разобран, но добраться до внутренней металлической поверхности центрального контакта не давала плата с безвыводным чипом. При попытке поддеть плату этот чип был случайно сорван.

Так что причина неработоспособности ключа осталась не до конца выясненной. Возможно, цифральщики просто периодически выписывают из домофона старые ключи, чтобы заработать на продаже новых – не зря в то время висели объявления на подъезде о возможности заказать комплект из 2 новых ключей.
Радиолюбителю всегда интересно собрать что-нибудь своими руками. Он получает удовольствие от самого процесса созидания и от результата своей работы. В данном случае еще добавилось желание показать кукиш цифральщикам и собрать ключ самому на миниатюрном микроконтроллере и в несколько раз дешевле. К тому же, в следующем подобном случае будет возможность быстро отремонтировать неработающий ключ, тем более, что в мастерских по изготовлению ключей мастера утверждали, что прошивка болванок под Цифрал не работает и нужно заказывать родные ключи.
В качестве микроконтроллера для ключа был выбран дешёвенький ATtiny10 в 6-ногом корпусе SOT23-6. Из серии ATtiny4, ATtiny5, ATtiny9 и ATtiny10 он почему-то оказался самым дешёвым (0,6$), и при этом с максимальной периферией. Как видно из таблицы Datasheet, микроконтроллеры данной серии отличаются лишь объёмом flash-памяти и наличием/отсутствием АЦП:

В Интернете есть разработки имитаторов ключей для домофонов, но все они требуют отдельного источника питания. Это довольно неудобно, т.к. батарейка или аккумулятор могут разрядиться в самый неподходящий момент. Поэтому было решено обойтись питанием от самого домофона, тем более, что минимальное гарантируемое рабочее напряжение ATtiny10 по datasheet составляет 1,8В, а реальное ещё меньше. При этом ток потребления на частоте 1МГц всего 200 мкА.
Забегая вперёд, скажу, что одной из задач при разработке схемы питания ключа было определение параметров самого домофона, а именно: напряжения холостого хода, сопротивления внутреннего резистора и необходимых уровней сигнала на ключе. Зная первые 2 параметра параметры генерируемого сигнала уже можно было бы снять осциллографом с рабочего ключа. Рекомендованные в Интернете 5В холостого хода и резистор 1кОм в данном случае оказались весьма далеки от реальности.
Для решения этой задачи можно было, конечно, выйти с тестером к домофону и измерить Uхх и Iкз на гнезде, но этот процесс вызвал бы подозрения у вечно торчащих на лавочке бабулек, и если что, им будет на кого ткнуть пальцем – «Он сломал». Поэтому из лежащих временно без дела платки Arduino-Nano 168 и OLED-дисплея был собран пробник для домофона:

Транзисторы – 2N7000, резисторы в их стоках по 820 Ом (их нужно замерить точнее и внести в текст программы в строки 19-21), резисторы делителя напряжения на 12: 900кОм и 82кОм или 1,1Мом и 100кОм. Собрана схема навесным монтажом прямо на платке Ардуино:

Дисплей зафиксирован с обратной стороны термоклеем:

Пробник измеряет напряжение холостого хода в лузе домофона, напряжение под двумя разными нагрузками 820 Ом и 410 Ом с запоминанием результатов в EEPROM, а затем выдаёт циклический код рабочего ключа в домофон для открытия двери. Со стороны весь процесс выглядит как обычное открывание двери ключом-таблеткой. Результат измеренных напряжений и двух вычисленных сопротивлений внутреннего резистора при разных нагрузках выводится на несколько секунд после подачи питания на OLED дисплей SSD1306 (32х128, I2C), а также в терминал на компьютер. Питание - от Кроны.
Скетч для Arduino 1.8.6 приложен к статье. Плату Arduono можно использовать как с ATmega328, так и более дешёвую с ATmega168 (у неё более удобный разъём microUSB). Библиотеку OLED_I2C необходимо скопировать в папку libraries. В файле OLED_I2C.h значок $ заменён на Ω (Омега) для вывода сопротивлений.
Таким образом, при помощи данного пробника было определено, что напряжение холостого хода на лузе домофона составляет 12В, а сопротивление внутреннего резистора 3,3 кОм.

Подключив рабочий ключ к блоку питания 12 В через резистор 3,3 кОм была снята осциллограмма передаваемого кода. Нижний уровень сигнала составил 1,6В, верхний 2,48В, размах 0,88В. Также были сняты временные интервалы логических нуля и единицы.
Отсюда вырисовалась следующая схема пассивного ключа-таблетки, с питанием от самого домофона:

Питание микроконтроллера DD1 осуществляется через ограничительный резистор R1 и диод VD1. Накопительные конденсаторы C1, C2 сглаживают пульсации, стабилитрон VD2 на 5,6 В выполняет защитную функцию на случай нештатной ситуации. Транзистор VT1 коммутирует нагрузочный резистор R2. Резистор R7 совместно с потребляющим некоторый ток ATtiny10, задаёт верхний уровень сигнала, а добавленный в параллель резистор R2 в момент коммутации – нижний уровень. Резистор R6 не позволяет из-за наводок открываться транзистору VT1, иначе в момент подачи питания микроконтроллеру может не хватить напряжения для запуска. R6 подключен к затвору VT1 через резистор R5 из-за удобства разводки платы. Резисторы R3…R5 – ограничительные для программирования микроконтроллера. Программирование этой серии осуществляется по интерфейсу TPI (Tiny Programming Interface). Для этого используется три вывода микроконтроллера:
RESET - для перехода в режим программирования,
TPICLK (PB1) - для тактового сигнала,
TPIDATA(PB0) - для ввода/вывода данных.
Напряжение при программировании должно составлять 5В! При 3,3В программирование не проходит. Программатор можно использовать AVRISP MKII. Он как раз имеет выходы PDI/TPI_CLK и PDI/TPI_DATA.
Собрана схема на печатной плате из одностороннего фольгированного стеклотекстолита толщиной 0,5 мм в виде круга диаметром 12 мм:

 

На верхней стороне платы расположен миниатюрный разъём для программирования с шагом 1,25 мм, на нижней – SMD-элементы.

Перечень элементов:

C1 = 4,7 (0603)
C2 = 1,0 (0603)

DD1 = ATtiny10 (SOT23-6)

R1 = 22 (0603)
R2 = 750 (0603)
R3 = 470 (0603)
R4 = 470 (0603)
R5 = 470 (0603)
R6 = 1М (0603)
R7 = 1,5к (0603)

VD1 = MBR0540 (SOD-123)

VT1 = IRLML6346 (SOT-23)

X1 = NX 1,25-6 (Шаг 1,25мм)

Программа для микроконтроллера создавалась на Си в среде CodeVisionAVR V2.05.0. Код рабочего ключа необходимо считать либо каким-нибудь считывателем, например «Крутой дубликатор домофонных ключей на Arduino» (https://mexatrondiy.ru/rfiddublicatoroled), либо осциллографом (подключив рабочий ключ к БП через ограничительный резистор), найдя стартовое слово 0001. Этот код необходимо внести в текст программы (строка 27), после чего перекомпилировать проект. Данный код хранится в flash-памяти, т.к. EEPROM у данной серии нет, да и так надёжнее. Прошивка заняла 270 байт, или 26,4% FLASH-памяти, так что можно использовать любой микроконтроллер из серии ATtiny4/5/9/10, тем более что АЦП в данной схеме не используется.
Тактовую частоту микроконтроллера пришлось поднять до 2МГц для более точного формирования временных интервалов сигнала. При этом ток потребления при 3,3В составил 0,3мА, а при 1,8В - 0,15мА. Поэтому и пришлось подгрузить линию дополнительным резистором R7. Верхний уровень сигнала при этом составил 2,6В. При работе на самом микроконтроллере напряжение питания составило 2,35В.
Следует отметить, что домофон довольно чувствителен к уровням сигнала, поэтому, в случае необходимости, нужно будет подобрать сопротивления резисторов R2 и R7 на имитаторе (12В + 3,3кОм) в сравнении с рабочим ключом.
Прошивается микроконтроллер из той же среды CodeVisionAVR при помощи программатора AVRISP MKII, который нужно предварительно выбрать в настройках.

Фьюзы следует оставить по умолчанию:
    CKOUT=1;
    WDTON=1;
    RSTDISBL=1;
   ("0"-галочки установлены).
Боковые стенки корпуса ключа исходно изолированы пластмассой. На металлическое дно перед припаиванием провода необходимо проложить изоляционный круг диаметром 12 мм из плотной бумаги или картона и в середине вывести сам провод.

После прошивки контроллера плата укладывается в корпус и ключ защёлкивается в пластиковый держатель.

По внешнему виду ключ никак не отличим от оригинального. Для прошивки любого другого кода необходимо просто выдвинуть ключ из пластикового корпуса, приподнять плату, подключиться программатором к разъёму, и залить новую прошивку.
Даже при использовании в качестве микроконтроллера ATiny4 или ATiny5 с 512 байт flash-памяти прошивка займет около половины (270 байт). Поэтому, при несложной доработке программы в данный ключ можно записать несколько кодов от разных дверей (подъездов) и выдавать их поочерёдно циклами. Нужно только считать рабочие ключи от других дверей и внести их коды в программу. В итоге получится один универсальный ключ для домофонов Цифрал, не требующий забот об источнике питания.


Файлы:
01.zip
02.zip
DC-2000 (К1233КТ1)
Plata


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

29 3 1
1 0 0