Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
04.07.2007, 18:05
|
#1
|
Прописка
Регистрация: 15.10.2006
Сообщений: 130
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Кто делал GSM-pager на PIC? колитесь
Удалось ли кому адаптировать GSM-pager для PIC?
(хотелось бы услышать конкретные мнения, а не советы "где купить")
Я пока наткнулся на ряд проблем.
Правда я кое что от себя добавил -
хочу включать/отключать сигнализацию при
дозвоне на телефон, не используя SMS
(слава богу за дозвон пока денег не берут):
в PIC16F628A, который я использую,
установлено прерывание RDA.
Когда производится дозвон на телефон,
тот посылает в МК команду "RING". В МК все это дело
фиксируется и вся система переходит в ждущий/дежурный режим.
- вроде все просто, но работает прямо скажем - по настроению.
Первый косяк:
телефон (Siemens C55) категорически отказывается работать с уроявнями МК,
питающегося от кренки на 5 вольт. Для этого напряжение после
кренки дополнительно гасится баластом на 680 Ом.
(Может есть лучшее решение?
пробовал гасить уровни непосредственно на линиях TX-RX как рекомендуется:
телефон все равно вырубается,
а если увеличивать сопротивления - сигнал не проходит)
НО ЧТО БОЛЬШЕ ВСЕГО НЕПОНЯТНО:
Даже после отключения питания от МК, телефон удерживает
его в каком то непонятном состоянии и не дает сбросится.
Сброс происходит только после отключения телефона от МК.
Видимо стоит отказаться от гальванической связи телефон-МК?
Однако в статьях умельцев, делающих подобные системы,
телефон и МК связаны непосредственно,
и похоже никаких проблем у них не возникает(???)
|
|
|
|
04.07.2007, 18:22
|
#2
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
В каком то журнале радио читал про сигнализацию на телефоне завязаную на пике.
|
|
|
|
04.07.2007, 18:30
|
#3
|
Прописка
Регистрация: 15.10.2006
Сообщений: 130
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
исчерпывающая информация...
|
|
|
|
04.07.2007, 19:00
|
#4
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Сообщение от double_dash
|
исчерпывающая информация...
|
завтра скажу в каком,на работе журналы
|
|
|
|
04.07.2007, 19:20
|
#5
|
Гражданин KAZUS.RU
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
|
Re: Кто делал GSM-pager на PIC? колитесь
Сообщение от double_dash
|
НО ЧТО БОЛЬШЕ ВСЕГО НЕПОНЯТНО:
Даже после отключения питания от МК, телефон удерживает
его в каком то непонятном состоянии и не дает сбросится.
Сброс происходит только после отключения телефона от МК.
Видимо стоит отказаться от гальванической связи телефон-МК?
|
В ПИКе, да и в других МК на выводах стоят защитные диоды, через них он и питается(точнее подпитывается, т. к. нормальным питанием это не назовешь, для работы напряжения может не хватить, но и сброса тоже может не произойти
Цитата:
|
Однако в статьях умельцев, делающих подобные системы,
телефон и МК связаны непосредственно,
и похоже никаких проблем у них не возникает(???)
|
Наверняка возникают, только помалкивают, а выясняется это при повторениях конструкции.
Вообще, связка телефон-мк довольно ненадежная конструкция, особенно для охранных систем. Телефон может заглючить, выключится в неподходящий момент, а включить его с МК проблематично и т. д. и т. п.
Поэтому ИМХО сейчас удобнее использовать GSM модули, во первых цены на них за последнее время существенно упали,а во вторых встраивать их в свою конструкцию ЗНАЧИТЕЛЬНО удобнее, чем пытаться как то прилепить телефон.
__________________
Если ты читаешь это - значит тебе нечем заняться...
|
|
|
|
04.07.2007, 21:32
|
#6
|
Прописка
Регистрация: 15.10.2006
Сообщений: 130
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Re: Кто делал GSM-pager на PIC? колитесь
Сообщение от vdlab
|
сейчас удобнее использовать GSM модули, во первых цены на них за последнее время существенно упали,а во вторых встраивать их в свою конструкцию ЗНАЧИТЕЛЬНО удобнее, чем пытаться как то прилепить телефон.
|
ой че то не знаю...
С телефоном я мучаюсь уже полгода.
А если перейду на GSM-модули
к моменту когда все будет закончено
от моего сарайчика уже наверно и стен не останется
А сигнализация мне нужна СЕЙЧАС,
и при этом существующие варианты не устраивают:
везде предлагают активировать систему через
"потайную кнопку"
- ну это ж не удобно дико
А вообще хотелось бы узнать об этих GSM-модулях:
есть ли у них декодер AT-команд?
или управление в корне отличается?
|
|
|
|
04.07.2007, 22:11
|
#7
|
Гражданин KAZUS.RU
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
|
управляются они как раз АТ командами, в принципе, переход с мобильника на модуль программно осуществляется практически безболезненно, практически все команды те же, разница небольшая.
Сейчас пользую SIM 300D, у меня запустился с полпинка, работает вполне удовлетворительно, особо радуют размеры-33х33х3 мм. Цена в ГАММЕ 158 грн(~33$),ИМХО вполне нормально.
Вообще, работу этих и других модулей довольно активно обсуждают здесь
__________________
Если ты читаешь это - значит тебе нечем заняться...
|
|
|
|
04.07.2007, 22:15
|
#8
|
Почётный гражданин KAZUS.RU
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
|
Я пару лет назад практиковался в применении сименсов (телефонов) именно в дозвоне а не СМС.
Полезными будут несколько АТ команд:
AT+CSQ
В ответ приходит типа +CSQ: 10,99
где 10-уровень сигнала базовой станции от 0 до 31 (расчет процентов 10/31=30%)
Применял когда нужно было определить будет ли надежной работа именно в этом месте установки.
Состояние батареи AT+CBC
В ответе +CBC: 0,75
где 75 это 75% емкости
Когда в режиме зарядки то может быть больше 100.
Применял когда замитывал микросистему от телефонной батареи.
Еще телефон использовался как часы.
По команде AT+CCLK?
телефон выдавал текущее время и дату.
Формат ответов уже не помню (посмотреть в терминалке).
Но самая интересная связка команд эта:
При входящем звонке модем телефона выдает
.RING
После этого микросистема опрашивает наличие входящего звонка
AT+CPAS
Модем отвечает +CPAS:0 (нет входящего) или +CPAS:3
если есть входящий звонок и он активен.
Сразу после этого можно определить НОМЕР входящего вызывающего абонента
AT+CLCC
В ответ приходит длинная строка, где кроме прочего есть номер с которого происходит дозвон.
Применял для постановки и снятия с охраны
Просто подъезжал хозяин склада к воротам, там мигает светодиод. Хозяин набирает номер, система определяет номер вызывающего как хозяина и снимает с синализации. Также и ставит (набрал после выхода с помещения номер - светодион начал медленно мигать - система поставлена под охрану).
|
|
|
|
05.07.2007, 00:33
|
#9
|
Прописка
Регистрация: 15.10.2006
Сообщений: 130
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Сообщение от lsa
|
Применял для постановки и снятия с охраны
Просто подъезжал хозяин склада к воротам, там мигает светодиод. Хозяин набирает номер, система определяет номер вызывающего как хозяина и снимает с синализации. Также и ставит (набрал после выхода с помещения номер - светодион начал медленно мигать - система поставлена под охрану).
|
О!
это ведь то что мне нужно!
Не могли бы вы поподробней описать свою конструкцию?
Я уже писал что у меня возникли проблемы при соединении телефона и МК,
но честно говоря и в коде я не очень уверен
Код:
|
char buf[10];
char* hangup = "AT+CHUP\r";
char* init2= "AT+CNMI=1,1,0,0,1\r";
void Tx_String(char* buf)
{
int i = -1;
do
{
i++;
putchar(buf[i]);
}
while( buf[i]!='\r');
}
#int_RDA
RDA_isr()
{
disable_interrupts(GLOBAL); // на всякий случай (?)
gets(buf);
/* ждем прихода RING,
если придет - ставим/снимаем с охраны*/
if(strchr(buf,0x52)) //или if(buf[0]=='R') // RING идентифицируем по одной букве
{ // думаю этого вполне достаточно(?)
Tx_String(hangup); // бросаем трубку, а то придет повторный RING
if(input(ind_yellow)) output_low(ind_yellow);
else output_high(ind_yellow);
}
enable_interrupts(GLOBAL);
}
void main()
{
char* init = "ATE0\r";
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RDA);
setup_oscillator(False);
port_b_pullups(false);
Tx_String(init);
Tx_String(init2);
enable_interrupts(GLOBAL);
for(;;);
} |
- ну что можно сказать,
срабатывает как правило один раз(самый первый),
иногда два - если уж очень повезет
|
|
|
|
05.07.2007, 10:01
|
#10
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Ну что сказать ? Где чистится буфер после приема ринг ?
С какого расчета он выбран 10 байт ? А переполнения нет ?Может, второй ринг Вы не можете принять из-за того, что буфер зашкалило ?Я бы на Вашем месте не доверил бы компилятору -не использовал этот самый гетс и переписал прерывание по приему ручками - с побайтовым приемом и точным значением индекса, куда и чего. Если Вы хотите видеть номер телефона - от этого никуда не деться.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:03.
|
|