Восстановление калибровочной константы PIC12f629 и PIC12f675 |

Восстановление калибровочной константы PIC12f629 и PIC12f675 | Электронная цифровая подпись

Восстановление калибровочной константы pic12f629 и pic12f675

Собрав ниже приведенную схему и установив в панельку исследуемый микроконтроллер PIC12f629 или PIC12f675 можно с точностью до 1% определить КК.

Для калибровки внутреннего генератора микроконтроллера требуется заведомо известная опорная частота. К счастью, для этого мы не должны собирать отдельно стабильный генератор сигнала. Для этого можно воспользоваться переменным напряжением электросети частотой 50 Гц (в некоторых странах частота может быть 60 Гц). Данный сигнал можно снять со вторичной обмотки сетевого трансформатора.

Частота внутреннего генератора в микроконтроллере PIC12F629 и PIC12F675 может незначительно меняется от изменения температуры и напряжения питания. По мере увеличения напряжения питания, частота его немного уменьшается. Когда переключатель  SB1 не замкнут, напряжение питания 5 вольт, пройдя через два диода, которые создают падение напряжения около 1,6 вольта, поступает на вывод питания ПИКа (3,4 вольт).

Еще раз:

  •  SB1 разомкнут — калибровка происходит при 3,4 вольта.
  •  SB1 замкнут — калибровка происходит при 5 вольт.

Два диода создают падение напряжения, а резистор R1 создает достаточный ток для стабильности напряжения на диодах.

Опорный сигнал подается с вторичной обмотки трансформатора (от 6 до 12 вольт) через диод VD3, резистор R4 и транзистор VT1. Транзистор любой типа NPN.

Внимание. Переменное напряжение на транзистор следует подавать только через трансформатор. Ни в коем случае не напрямую от электросети!

Иммобилайзер на микроконтроллере pic12f629

Иммобилайзер – англ. immobiliser — «обездвиживатель». Противоугонное устройство, блокирующее важные цепи в системе зажигания. Штатные иммобилайзеры не дают завести двигатель, производители иммобилайзеров для дополнительной установки пошли дальше и не просто блокируют работу двигателя, а создают видимость неисправности зажигания.

Ставил я обычные секретки, тумблеры, герконы с релюшками и т.д. В каком-то журнале читал, что любая не стандартная блокировка увеличивает время необходимое злоумышленнику для угона автомобиля примерно на 20%.

Я не эксперт в угонах, но был опыт разблокирования простых сигнализаций с нестандартным подходом, возможно это правда. Недостаток пассивных блокировок в том, что прозванивая цепи можно определить, где питания не хватает, а где сигнал не проходит. Вот активная блокировка уже точно в эти 20% входит. «Плавающая» неисправность сложнее находится, проверено.

Иммобилайзер на микросхеме К561ЛА7 и К561ЛП2.

Здесь нарисованы два варианта иммобилайзера, с реле и без. Когда-то делал и ставил такие, схемы привёл не для обсуждения и повторения, а для сравнения со схемой на микроконтроллере.

Алгоритм: после запуска двигателя даётся 15 секунд, чтобы нажать кнопку, если не нажимать, то включается блокировка и держится до тех пор, пока двигатель не заглохнет. После остановки двигателя блокировка выключается, включается 2-х секундный таймер на отключение блокировки. Если опять завести двигатель, не нажав кнопку, то двигатель блокируется через 2 секунды и снимается только после остановки двигателя.

При включенном зажигании (не заведённом двигателе) все питания в норме, при запуске сигналы, пока нет блокировки, регистрируются. Таким образом ехать невозможно, а найти «неисправность» сложнее.

Есть недостатки в схемах с дискретными элементами – много деталей (уменьшается надёжность), временные задержки реализованы цепочками RC (зависимость от температуры), не изменяемая логика работы.

Иммобилайзер на микроконтроллере PIC12F629 с кнопкой.

ДАДМ – датчик аварийного давления масла

Программно повторяет алгоритм работы схемы на дискретных элементах, но более сложный, плюс возможность автозапуска, контроль водительской двери для реализации функции «Антихайджек», «плавающая» блокировка (при грамотном подключении создаёт видимость неисправной системы зажигания) и энергонезависимая память состояния. После снятия аккумулятора программа встаёт на предыдущее место.
Специально не ставил индикаторы состояния, просто жмём кнопку (показываем, что в автомобиле хозяин). Служебный режим реализован разъёмом. Температурный режим от -40°С до 85°С. Ток потребления 1мА (даташит микроконтроллера). Место блокировки подбирается под конкретный автомобиль.

Читайте также:  Криптопро рейтинг и настройка

Hex файл:

:020000040000FA
:020000000C28CA
:08000800A0000308A10021087B
:100010008300A00E200E0900640083165630810074
:1000200011309500831283128501073099008316E1
:100030001F3085008312A301A401A501A601A70119
:10004000A202131602309B001C141A08A20083121E
:10005000221522182F2864000F30A7003128023003
:10006000A700221836286400051EF229FC2164002E
:10007000221DE728ED216400851E31286400270831
:10008000A70BE22864000514000000000000D52141
:1000900064000510000000000000D521221DDC28AE
:1000A000D5216400221DDC28640005140000000036
:1000B0000000D521221DCB28D5216400221DCB288C
:1000C000851EBE2864000510000000000000D52138
:1000D0006400221DDC28851EBE28D521221DDC28B7
:1000E0002218BE2864000514000000000000C02192
:1000F0006400FC21221DCB28ED21851EBE280510A1
:10010000000000000000C021221DDC28640005144E
:10011000000000000000D5216400221DCB28ED2145
:10012000851EBE280510000000000000C021221D11
:10013000DC2864000514000000000000D5216400E4
:10014000221DCB28ED21851EBE28051000000000D1
:100150000000C0216400221DDC286400051400009A
:1001600000000000C0216400221DCB28ED21851E67
:10017000BE280510000000000000C0216400051426
:100180000000000000006400D5216400221DCB287F
:100190006400851AC32864000510000000000000F8
:1001A00022188B292214000000000000FC21221DCF
:1001B000DC280330A700B029A20212150510000099
:1001C000000000006400C021FC212219B029640055
:1001D0000F30A700A2021215FC216400221DE72890
:1001E000ED216400851EA029C021A70BEC28640026
:1001F000851EA029ED216400FC21221DE728ED21A8
:1002000064008519F7280530A600D5218519F7283F
:100210006400FC21221DE728A60B05296400851E29
:10022000A029ED216400FC21221DE728ED216400B6
:10023000851D0E290530A600D521851D0E296400D7
:10024000FC21221DE728A60B1C29640003013C3079
:10025000A7006400851EA029ED216400FC21221D59
:10026000E7286400C021A70B2929A21C42286400AA
:100270000514000000000000D521640005100000F6
:1002800000000000D521D521640005140000000005
:100290000000D5216400221DDC28ED21851E602987
:1002A000D521851E602964000510000000000000B3
:1002B000D521851E6029D5216400221DDC28D52189
:1002C00022188B296400051400000000000022148D
:1002D0006400D5216400221DDC286400851A682989
:1002E000640005100000000000000330A700640057
:1002F000FC21221DB029ED2164000301851E752912
:100300006400C021221DB029ED216400A70B7C29C7
:1003100037290C280C280F30A700640005140000B2
:1003200000000000C021221DB029051000000000BF
:100330000000D8216400221DB029A70B8D29D928DF
:10034000831602309B0022089A0083161C158B131B
:1003500055309D00AA309D009C148B1783120C28E9
:10036000831602309B0022089A0083161C158B13FB
:1003700055309D00AA309D009C148B1783123B289A
:100380000A30A5000519C629221108002215593086
:10039000A400C830A300640000000000A30BCB2918
:1003A000A40BC929A50BC22908000530A500DA292C
:1003B0000230A5000519DE29221108002215593046
:1003C000A400C830A300640000000000A30BE329D0
:1003D000A40BE129A50BDA290800A6016400A60BED
:1003E000EE2908000530A6006400C021051A312856
:1003F000A60BF429A214F728051D002A22150800CF
:0404000022110800BD
:02400E00CC0FD5
:00000001FF

Подробно алгоритм работы могу написать в личку, если будет желание повторить.
Место установки кнопки произвольное, вместо кнопки можно поставить геркон под обшивку дверей или на торпеду. Магнит спрятать в брелок или печатку.

Иммобилайзер на PIC12F629 с сенсором.

ДАДМ – датчик аварийного давления масла

Hex файл:

:020000040000FA
:020000000C28CA
:08000800A0000308A10021087B
:100010008300A00E200E090064008316D6308100F4
:1000200011309500831283128501073099008316E1
:100030003C3085008312A301A401A501A601A701FC
:10004000AA01A202131602309B001C141A08A20008
:100050008312A2158510831605118312051122182B
:10006000352864000F30A70037280230A700C422CB
:100070006400A21DEE28B1226400851E37286400AA
:100080002708A70BE3286400051400000000000007
:100090007522640005100000000000007522A21DFA
:1000A000DD2875226400A21DDD286400051400000F
:1000B000000000007522A21DCC2875226400A21D3C
:1000C000CC28851EBF286400051000000000000039
:1000D00075226400A21DDD28851EBF287522A21D81
:1000E000DD282218BF28640005140000000000006D
:1000F0004C226400C422A21DCC28B122851EBF2838
:1001000005100000000000004C22A21DDD28640044
:10011000051400000000000075226400A21DCC2818
:10012000B122851EBF2805100000000000004C22EF
:10013000A21DDD28640005140000000000007522E7
:100140006400A21DCC28B122851EBF280510000026
:10015000000000004C226400A21DDD28640005148C
:100160000000000000004C226400A21DCC28B12237
:10017000851EBF2805100000000000004C2264000E
:100180000514000000000000640075226400A21D38
:10019000CC286400851AC428640005100000000003
:1001A000000022189A292214000000000000C42236
:1001B000A21DDD280330A700BF29A201A21505104A
:1001C0000000000000006400A218E9286400051E79
:1001D000B62AB1224C22C422A219BF2964000F30D2
:1001E000A700A201A215C4226400A21DEE28B1221C
:1001F0006400851EAF294C22A70BF3286400851EDE
:10020000AF29B1226400C422A21DEE28B122221E11
:100210000F29051E0F2975227522051A342964003D
:100220008519FE280530A60075228519FE28640070
:10023000C422A21DEE28A60B14296400851EAF2936
:10024000B1226400C422A21DEE28B1226400851DE3
:100250001D290530A6007522851D1D296400C422B4
:10026000A21DEE28A60B2B29640003013C30A70039
:100270006400851EAF29B1226400C422A21DEE28AD
:1002800064004C22A70B3829A21C432864000514E3
:10029000000000000000752264000510000000004E
:1002A00000007522752264000514000000000000A3
:1002B00075226400A21DDD28B122851E6F297522DA
:1002C000851E6F29640005100000000000007522E3
:1002D000851E6F2975226400A21DDD287522221853
:1002E0009A29640005140000000000002214640034
:1002F00075226400A21DDD286400851A7729640038
:1003000005100000000000000330A7006400C422B4
:10031000A21DBF29B12264000301851E8429640047
:100320004C22A21DBF29B1226400A70B8B294629AC
:100330000C280C280F30A7006400051400000000F2
:1003400000004C22A21DBF29051000000000000083
:1003500078226400A21DBF29A70B9C29DA288316E6
:1003600002309B0022089A0083161C158B1355300F
:100370009D00AA309D009C148B1783120C288316B5
:1003800002309B0022089A0083161C158B135530EF
:100390009D00AA309D009C148B1783123C280A30C4
:1003A000C4226400A219EE28B122051ED829DC2936
:1003B000A122AA0BD0290C28051E0C28C422B12288
:1003C0006400A219E729A122AA0BDC290C28C42267
:1003D0006400A21D0C28B122051EF229A122AA0B3D
:1003E000E729EE28B122051EF6290C28B122C422E5
:1003F0006400A21DFF29A122AA0BF2290C282215B4
:10040000831602309B0022089A0083161C158B135A
:1004100055309D00AA309D009C148B178312EE2846
:100420000000000000006400B122051A0F2AB1226A
:10043000C4226400A2190F2A0A30AA00C422640050
:10044000A2190C28051E252A292AA122AA0B1E2A38
:100450000C28051E0C286400C4226400A219342A4A
:10046000A122AA0B292A0C28C4226400A21D0C2850
:100470006400051E3F2AA122AA0B342A0C28051E5F
:10048000422A0C28C4226400A21D4A2AA122AA0BD7
:100490003F2A0C282211EE280A30A50083160515E4
:1004A0008312000085140330A9006400A90B562AAA
:1004B0000519612A85108316051183120511A211F1
:1004C000080085108316051183120511A2155930F5
:1004D000A400C830A300640000000000A30B6B2A36
:1004E000A40B692AA50B4E2A08000530A5007A2A1C
:1004F0000230A50083160515831200008514033011
:10050000A9006400A90B822A05198D2A851083167B
:10051000051183120511A21108008510831605111B
:1005200083120511A2155930A400C830A30064003D
:1005300000000000A30B972AA40B952AA50B7A2A8A
:1005400008000A30A5006430A400C830A30064008D
:1005500000000000A30BA72AA40BA52AA50BA32A21
:100560000800A6016400A60BB22A08002218C22ABD
:100570000530A60064007522051A3728A60BBA2A92
:100580002216FE28A214E9288316051583120000FE
:1005900085140330A9006400A90BCC2A051DD72AB5
:1005A00085108316051183120511A2150800851008
:0C05B0008316051183120511A21108002A
:02400E00CC0FD5
:00000001FF

Алгоритм как в первой схеме, служебный режим реализован программно. Сенсором может служить саморез, вкрученный в торпедо, но не замыкающий на массу. Или какой-нибудь металлический значок, иконка… Провод от прибора до сенсора желательно не более 40 см.

Не удалось программно реализовать надёжный бесконтактный сенсор, на помощь пришёл Алиэкспресс. Сенсор на микросхеме ТТР223. С помощью этой микросхемы можно сделать бесконтактный сенсор, приклеенный, например с обратной стороны панели. Расстояние срабатывания до 1см.

Чувствительность сенсора регулируется с помощью конденсатора С9 ёмкостью до 50pF (чем меньше ёмкость, тем выше чувствительность, я ставил от 22 до 33pF) и размером контактной площадки, если микросхему паять отдельно.
Сама микросхема очень маленькая, трудно распаивать, поэтому лучше использовать готовую плату с сенсорной площадкой.

Необходимо добавить перемычки – 6 контакт на землю, 4 контакт к 5В (на плате перемычка А), это режим без фиксации, активный низкий уровень на выходе (Коснулся сенсора, на выходе – 0, отпустил – 1). Выход можно подключить ко входу 5 микроконтроллера PIC12F629 в первой и во второй схеме иммобилайзера без изменения прошивки.

Детали:
1. PIC12F629 -1; (цена Чип-Дип – 97руб, на Алиэкспресс покупал по 37руб.);
2. 78L05 -1; (Стабилизатор напряжения на 5В);
3. Все резисторы 0,125Вт, номиналы на схеме;
4. Диоды на входах D1, D2, D3, D5 (любые маломощные);
5. Диод по питанию D4 – 1N1404; (помощнее, 1А);
6. Конденсаторы керамические и электролитические указаны на схеме;
7. Транзистор Q1– AO3400 (A09T) полевой N- типа; (цена на Алиэкспресс 96руб/100шт.);
8. Сенсорная плата с ТТР223. (цена от 63руб за 10штук на Алиэкспресс);
9. Термоусадочный кембрик.

Пример изготовления:
Программируем микроконтроллер, для этого нужен программатор, я использую PICKit2.

Сначала подключаем программатор в свободный USB вход, открываем программу PICkit 2 v2.61
(Скачать можно здесь)

Читайте также:  Как использовать сертификаты и шифрование сообщений электронной почты в Outlook — Microsoft Office для женщин

Выставляем 5 вольт, иначе микроконтроллер не включится.

Обращаем внимание и записываем калибровочную константу. После считывания hex файла она не должна измениться, если изменилась, то по этому адресу её заново записываем

Нажимаем File, и в открывшемся окне выбираем hex файл:

Наш Hex файл загружен в программу. Убеждаемся в том, что

1. калибровочная константа не изменилась;

2. Жмём Write.

Программа загрузится в микроконтроллер, пройдёт верификацию и, если всё нормально, выйдет сообщение Programming Successful и окошки станут зелёными. В противном случае окошки будут красными, надо будет стирать программу в микроконтроллере (Erase) и программировать заново.

Иммобилайзер должен быть незаметным, именно эти я делаю без плат. Этот способ покажу здесь:

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

Откусываю ножки по краям, чтобы между ними было расстояние не меньше 3 мм.

Припаиваю стабилизатор напряжения 78L05, 1-я ножка стабилизатора к 1-ой ноге микроконтроллера, 2-я ножка стабилизатора к 8-й ноге микроконтроллера согласно схеме.

Вид сверху.

Затем согласно схеме припаиваются сопротивления 100кОм ножки 2, 3, 4, 5, 6 микроконтроллера к 5В.

Здесь минусовой контакт надо временно отогнуть.

Затем использую полоску бумаги от двухстороннего скотча как диэлектрик.

Полоску этой бумаги вставляю под минусовой контакт и напаиваю помехоподавляющие конденсаторы на эти же контакты.

Получается вот так.

Контакты конденсаторов не достают до минусового, подтягиваю дополнительным жёстким проводом, например от диода.

Должно получиться вот так.

Не очень хорошо видно, следующим шагом напаиваются конденсаторы по питанию на вход и выход стабилизатора.

Затем припаивается транзистор. Полевой транзистор с ёмкостным затвором, а микроконтроллер на выходе выдаёт не более 5 вольт, поэтому можно использовать без резистора на затворе.

Следующий шаг, подбираем провода разного цвета, чтобы потом не разбираться, куда какой контакт идёт.

Сигнальные провода припаиваем к диодам, чёрная полоса диода в сторону провода.

Затем на провод одеваем термоусадочный кембрик и нагреваем его.

Должно получиться так.

Припаиваем провода к сенсору, и обязательно перемычку А (отметил синим).

Провода с диодами припаиваем к соответствующим выводам.

Одна сторона.

Другая сторона.

Провода загибаем в противоположную от стабилизатора сторону.]

К выходу транзистора (D-сток) припаивается тонкий многожильный провод МГТФ, он более мягкий и не сломает ножку транзистора после укладки провода в жгут.

Провод питания 12В припаивается через диод помощнее, полоса на диоде от провода.

Одеваем термоусадочный кембрик и припаиваем к 3-ей ноге стабилизатора.

После проверки всех соединений схема полностью заливается термоклеем.

Провода жгутуем, схему можно обмотать изолентой или поместить в пустой корпус автомобильного реле.

Для сравнения размер изготовленного иммобилайзера с размером автомобильного реле и реле из сигнализации Пандора.

После проверки работы устройства на столе, дополнительно кладу в морозилку при -18°С минут на 20 и потом опять всё проверяю. Это чтобы не было сюрпризов на машине. На плате сенсора установлен светодиод, его выпаиваю, он теперь не нужен.

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

В Казани и близлежащих городах могу помочь с запрограммированным микроконтроллером или установить.

Модификация прошивки

Некоторые программаторы либо программное обеспечение по причине своей особенности не позволяют показать содержимое EEPROM. И получается, так что калибровка прошла успешно, загорелся зеленый светодиод, но по двум адресам в памяти находится значение 0xFF. В этом случае рекомендуется применить модифицированную прошивку, которая решает данную проблему.

Читайте также:  Версия сервиса электронной подписи устарела - как исправить ошибку

Процесс определения калибровочной константы

  • Программируем PIC12F629 или PIC12F675 прошивкой, которая приведена в конце статьи.
  • Переключатель  SB2 оставляем незамкнутым для сети 50 Гц, и замыкаем если частота в электросети равна 60 Гц. Для успешно проведения работ, данный сигнал должен быть подан до начала калибровки.
  • Вставляем МК в панельку, переключатель  SB1 замыкаем, тем самым подаем питание 5 вольт.

Если все нормально светодиоды мигнут один раз.

Если опорный сигнал не будет обнаружен на выводе 5 МК, то загорится красный светодиод, а зеленый будет мигать до появления сигнала. Если это произойдет, то выключите питание и включите снова.

В процессе калибровки оба светодиода выключены. Калибровка по времени занимает не более 5 секунд.

Если калибровка не удалась — загорится красный светодиод.

Если калибровка прошла успешно загорится зеленый светодиод, и на выводе 6 МК появится тестовый сигнал с частотой 5 кГц. Замерив, данный сигнал частотомером, можно убедиться в корректной калибровке внутреннего генератора микроконтроллера.

Следующим этап – необходимо прочитать программатором EEPROM микроконтроллера.

Возможны три варианта данных по адресам 0x00 и 0x01 в EEPROM:

  1. Если в обоих адресах 0xFF – калибровка не удалась.
  2. Если в обоих адресах 0x00, необходимо убедиться, что опорная частота выбрана правильно.
  3. В адресе 0x00 содержится 0x34 и в адресе 0x01 содержит 0xNN, где NN и является наша новая константа калибровки. 

Электронный замок с ключом ibutton (ds1990a) на микроконтроллере |

Вашему вниманию представлена схема электронного замка с ключом таблеткой iButton модели DS1990A (Touch Memory). Ключ представляет собой устройство, которое имеет в своей памяти уникальный серийный номер. Уникальность состоит в том, что серийный номер состоит из 48 бит и как следствие этому, количество возможных вариантов составляет  281474976710656.

Замок собран на микроконтроллере фирмы Microchip PIC16F628A (627A, 648A). После подачи питания, микроконтроллер посылает импульс сброса длительностью 500 мкс и через 70 мкс проверяет ответ от DS1990A. Если ответа нет, то микроконтроллер ждёт еще примерно 80 мс  и снова передаёт импульс сброса. По такому алгоритму проверяется подключение ключа к замку.

Электронный замок с ключом iButton DS1990A - схема 1

Если ответ есть, значит DS1990A подключен к замку. Затем посылается команда «читать ROM» (33h), после чего микроконтроллер переходит на приём и записывает в ОЗУ переданный таблеткой DS1990A номер, где сравнивает его с записанным номером в EEPROM. Если он совпадает с одним из них, то подается звуковой сигнал, и  устанавливается высокий уровень на выводе RA1 в течение 1,5 секунд. Оптопара DA1 (АОТ122А) откроет транзистор VT1 (КТ972, BD677, BD679, BD681), который управляет электромагнитным реле на 12 вольт.

Процесс записи номера ключа в EEPROM: приложить ключ к замку и после звукового сигнала нажать кнопку SA1. Эта кнопка должна быть расположена в скрытом,  недоступном для посторонних людей месте.

Для очистки всех номеров из EEPROM необходимо при выключенном питании нажать кнопку SA1, подать питание и удерживать кнопку  в течение 5 секунд. После очищения памяти EEPROM замок подаст звуковой сигнал. Общее количество серийных номеров, которые можно записать в память не более 21.

Чтобы микроконтроллер не пострадал от статического разряда, в схеме применен стабилитрон VD1 (КС156А, 1N4733A, BZX55C5V1)  на 5В.  В данном замке можно использовать любой из микроконтроллеров PIC16F627A, PIC16F628A, PIC16F648A. Для микроконтроллера PIC12F629/PIC12F675 имеется своя прошивка. Запитать схему можно от стабилизатора на  микросхеме LM317.

Электронный замок с ключом iButton DS1990A - схема 2

При программировании PIC программатором, следует выставить следующие биты:

  • Тип генератора IntRC,
  • WDT включен,
  • PWRT включен,
  • MCLR выключен.

Схемы проверены в Proteus:

Эмуляция работы схемы в Proteus

Восстановление калибровочной константы PIC12f629 и PIC12f675 |Скачать прошивку, модель в Proteus(17,0 KiB, скачано: 4 563)

Оцените статью
ЭЦП Эксперт
Добавить комментарий