пятница, 28 января 2011 г.

Простая GSM-сигнализация на микроконтроллере

Несколько лет назад я собирал устройства исключительно на жёсткой логике - любимые серии к564, к561,к176 и к1533. На них была выполнена и GSM-сигнализация,в ту пору я не составлял схемы с помощью каких-то САПР,но это было устройство на 6-ти корпусах серии К561 и к1561 которое подключалось к мобильному телефону и осуществляло 4 попытки вызова в случае проникновения на объект.
Когда я соорудил программатор и приобрёл начальный опыт (asm,AVR) то захотелось выполнить эту работу на МК.
Однако,был  найден готовый,правда не проверенный в реальных условиях свободный проект такого устройства.Оставалось доработать под реальные условия и требования.

1. Функциональные требования:

а)Известно,что оператор связи да и кто угодно может прислать смс или позвонить.В итоге,если сделать сигнализацию по принципу "звонок по последнему набранному номеру" путём двухкратного нажатия на кнопку вызова это может не сработать,что может иметь тяжёлые последствия для разработчика сигнализации.Например вместо вызова телефон будет отображать поступившие сообщения.
 Поэтому перед вызовом была предусмотрена очистка путём двухкратного нажатия на кнопку сброса/выключения.

б) Необходимо было как можно быстрее произвести вызов а задержку на вход уменьшить до 4,5 секунд. Выключение производится отключением питания,а для этого можно применить потайной тумблер,геркон,реле с управлением от скажем, ИК-пульта.

2.Аппаратные особенности:

Применялись телефоны Motorola моделей 2298 и ещё более древние,просто потому что они были.К дорожкам соответствующих кнопок на клавиатуре были подпаяны тонкие эмалированные провода,питание телефона-от источника на плате сигнализации.Всё устройство питается от ИБП,так уж получилось.При необходимости не проблема прикрутить резервный источник питания.
Коммутация осуществляется с помощью ИМС К1561КТ3. Дело в том,что у Motorola кнопки 3-контактные и поэтому вместо одной кнопки используется два ключа.
Телефон подключается к разъёму XS2  -на него выведено питание и выводы ключей микросхемы DD2.Выбран разъём DB9 из-за широкой распространённости и доступности.

Схема:




 Доработанная прошивка
В архиве hex и asm.
Печатная плата  в виде 3D:


Модели элементов здесь не все соответствуют реальным компонентам,но примерно так.В частности,XS1 и датчик (шлейф) отображены как резисторы.
Сама печатная плата выполнена в KiCAD для одностороннего стеклотектолита.
Конструкция непрерывно изменяется и если прошивка это быстро то версий печатной платы гораздо меньше,все новые идеи на макетной плате. Если кому-то потребуется...
Идёт работа над более продвинутой сигнализацией, всё-таки удобнее настраивать через USB-интерфейс и лучше использовать GSM-модуль...





Немного о AVRDUDE

AVRDUDE- кросплатформенная свободная консольная программа, предназначенная для прошивки микроконтроллеров фирмы Atmel серии AVR
Устанавливается она просто:

 aptitude install avrdude -это для Debian Linux , так же для Ubuntu.

 В других операционных системах всё несколько иначе но это уже выходит за рамки...
Русскую документацию можно посмотреть здесь или скачать в PDF  там же.
Вот так например выглядит запись файла прошивки 5.hex в МК Attiny13:

avrdude -c stk200 -p t13  200 -U flash:w:5.hex 



Для установки конфигурационных битов есть удобные онлайн-калькуляторы,например этот  или вот ещё.Они генерируют параметры которые нужно указать AVRDUDE.
А теперь рассмотрим реальную ситуацию -год назад прошил Attiny и выставил фьюзы соответственно работе внутреннего генератора 128кГц/8.
После этого контроллер перестал определяться.Это происходит потому,что частота ISP должна быть не выше 1/4 частоты процессора.
Именно для таких случаев у AVRDUDE есть ключик -i,после которого нужно указать задержку численно:

avrdude -c stk200 -p t13 -i 200 -U flash:w:прошивка.hex


Для AVRDUDE есть немало графических оболочек,например SinaProg или avr8-burn-o-mat
Я ими почти не пользуюсь,так как в bash есть автодополнение и поиск по истории команд.

Продолжение следует...






Паяльная станция или...

Приобрёл я недавно первую паяльную станцию (и возможно,последнюю).
Надо сказать,до этого не возникало какой-то потребности в паяльной станции, много лет хватало возможностей ЭПСН-40, ЭПСН-25 и МЭПСН(6в/6Вт)
Но захотелось попробовать в деле фен...
Так я стал обладателем  Lukey-852D
В целом-металлический корпус,удобный фен,приятная на мой взгляд псевдоаналоговая регулировка.
Этот фен оказался вполне приемлемым,и даже шланг подачи воздуха не вызывает какого-то неудобства.Первый же опыт по перепайке разъёмов мобильного телефона феном удался.
А вот паяльник не держит температуру совсем.Причём на индикаторе всё спокойно,и это понятно-термопара не на жале находится. Оказалось,между керамическим нагревательным элементом и жалом зазор, причём если по диаметру около 1мм то по длине все 12мм!

 

В интернете рекомендуют перепаять провода нагревательного элемента на другие,находящиеся ниже контактные площадки.Дело двух минут-подумал я и разобрал паяльник.Но не тут-то было:
  
Единственное что оставалось из простых решений--обрезать ограничитель жала.Тот самый,что одевается на керамический нагревательный элемент и упирается в гнездо на ручке паяльника.
Он был сточен на УШМ со стороныэтой самой ручки.

Конечно, я оставил небольшой зазор между элементом и жалом,пару миллиметров,заполнив его порошком от  вышедшего из строя ТЭНа.А то может и жала изготавливаются с той же точностью,при смене риск поломать керамику.
Однако,теперь я доволен-у меня по крайней мере есть корпус из которого в случае чего я сделаю нормальную паяльную станцию,а пока посмотрим сколько протянет...