|
Megа16 не хочет набирать номер ..., Правильно ли я делаю??? |
|
|
|
May 18 2008, 17:30
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Доброе время суток!
Вот решил позвонить с помощью АВР, но блин ничего не получилось :-(. Вкратце ....подключил вывод TxD Mega16 к выводу RxD телефона Сименс С55, через делитель (на телефоне 3,2 В) ну и их земли. Следующим шагом была инициализация УАРТА:
clr Temp out UBRRH,Temp ldi Temp,25 ;2.4 kbit при 1 MHz out UBRRL,Temp ldi Temp,(1<<TXEN)|(1<<RXEN) out UCSRB,Temp ldi Temp,(1<<URSEL)|(0<<UMSEL)|(3<<UCSZ0) out UCSRC,Temp
а потом передача строчки "ATD +38098xxxxxxx" ну на свой номер :-) , строчку передавал посимвольно от А до последней цифры телефона (просьба не критиковать за корявость, буду повышать квалификацию, просто прошу выявить ошибку) вот пример передачи первого символа:
USARTTransmit_01 sbis UCSRA, UDRE rjmp USARTTransmit_02 ldi Temp, 'A' out UDR, Temp
Ну, как понятно из темы, телефон молчал, правда проверка в протеусе на терминале дала позитивнй результат, строчка в УАРТЕ состветсвтовала действительности!
Возможно настройки связи модема телефона отличаются от настроек УАРТА контроллера, и вообще можно таким способом позвонить???
Всем желающим помочь заранее благодарен!
|
|
|
|
|
May 19 2008, 05:47
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(Amper25 @ May 18 2008, 23:03)  Еще советую посмотреть что телефон отвечает на эту команду. т.е. сделать и обратный канал или хотябы терминалом с помощью компа. Вспомнил тут, помоему надо писать не "ATD +38098xxxxxxx"
а
ATD"+38098xxxxxxx"
Кавычки, вроде, определяют границы номера хотя могу ошибатся. Не надо там никаких кавычек. Пробелы тоже не нужно, хотя с ними обычно все работает. В конце строки обязательно 0x0D,0x0A. И самое главное, у большинства телефонов по умолчания уарт работает на 9600. Если хотите другой, и увренны, что телефон это поддерживает, то сначала нужно, чтоб српботал autobading. Можно перед набором номера послать пару раз "AT\r\n" c паузами.
|
|
|
|
|
May 19 2008, 06:51
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(Клим @ May 19 2008, 09:47)  В конце строки обязательно 0x0D,0x0A. А для чего нужны эти команды? Цитата(Клим @ May 19 2008, 09:47)  И самое главное, у большинства телефонов по умолчания уарт работает на 9600. И ещё, помимо скорости есть какие-нибудь дополнительные настройки УАРТА, которые могут отличаться ? Цитата(aaarrr @ May 19 2008, 00:10)  Кавычек, как и пробела, не нужно. Никаких кавычек я не ставил, они просто указывали на тот тескт, который я отсылал в телефон, а вот пробел попробую убрать.
Сообщение отредактировал Kalina - May 19 2008, 06:50
|
|
|
|
|
May 19 2008, 06:52
|

Частый гость
 
Группа: Свой
Сообщений: 128
Регистрация: 21-06-07
Из: Омск
Пользователь №: 28 594

|
Цитата(Kalina @ May 19 2008, 13:49)  А для чего нужны эти команды? Это команда перевода каретки и строки, Когда нажимаешь клавишу "Enter", то посылаешь эти команды.
|
|
|
|
|
May 19 2008, 06:54
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Kalina @ May 19 2008, 10:51)  А для чего нужны эти команды? Возврат каретки и перевод строки. Без них телефон ничего делать не будет. Цитата(Kalina @ May 19 2008, 10:51)  И ещё, помимо скорости есть какие-нибудь дополнительные настройки УАРТА, которые могут отличаться ? Плюньте на скорость - на C55 autobaud все отработает. Настройки стандартные 8-N-1. Попробуйте сначала сделать все вручную в терминале.
|
|
|
|
|
May 19 2008, 17:03
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(aaarrr @ May 19 2008, 10:54)  Возврат каретки и перевод строки. Большое спасибо, очень помогло! Цитата(aaarrr @ May 19 2008, 10:54)  Попробуйте сначала сделать все вручную в терминале. Протеус рулит, просто замечательная программка Правда вот при первой отправке строчки: ATD+38098xxxxxxx телефон отвечат 0, это означает команда выполнена ошибок нет, а вот только после повторной отправки ATD+38098xxxxxxx , спустя пол секунды (точно сколько надо ждать не знаю, но если не ждать ничего не выйдет) телефон уже отвечает 0ATD+38098xxxxxxx и начинает звонить!!! Вот ещё что, перед тем как писать прогу, думал что-то найти похожее, но ничего не нашёл. Только встечались фразы, что без Сишки не обойтись, на асме будет геморойно. Мне как начинающему сейчас непонятно, в чём трудность передать 18 символов по юарту?Ведь нужно всего лишь: 1. Настроить юарт 2. Дважды передать 18 символов И напоследок.. после освоения СМСок уже откроются широкие возможности для дистанционного управления по GSM каналу, кстати у меня есть справочник АТ команд для терминала Сименс М20 на русском, я думаю эти командами пользуются практически все сименсы, если кому надо, пишите, скину на мыло.
|
|
|
|
|
May 19 2008, 19:00
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Kalina @ May 19 2008, 21:03)  Правда вот при первой отправке строчки: ATD+38098xxxxxxx телефон отвечат 0, это означает команда выполнена ошибок нет, а вот только после повторной отправки ATD+38098xxxxxxx , спустя пол секунды (точно сколько надо ждать не знаю, но если не ждать ничего не выйдет) телефон уже отвечает 0ATD+38098xxxxxxx и начинает звонить!!!  Не должен так себя вести C55. Для работы с контроллером лучше отключить эхо (ATE0) - станет гораздо удобнее разбирать ответы телефона. Цитата(Kalina @ May 19 2008, 21:03)  Только встечались фразы, что без Сишки не обойтись, на асме будет геморойно. Мне как начинающему сейчас непонятно, в чём трудность передать 18 символов по юарту? На асме это вполне реализуемо, я как-то без "C" свободно обходился. Передать 18-180-1800 символов просто, а вот написать нормальный парсер ответов модема уже гораздо сложнее.
|
|
|
|
Guest_@Ark_*
|
May 20 2008, 08:57
|
Guests

|
Цитата(Kalina @ May 19 2008, 21:03)  ... Правда вот при первой отправке строчки: ATD+38098xxxxxxx телефон отвечат 0, это означает команда выполнена ошибок нет, а вот только после повторной отправки ATD+38098xxxxxxx , спустя пол секунды (точно сколько надо ждать не знаю, но если не ждать ничего не выйдет) телефон уже отвечает 0ATD+38098xxxxxxx и начинает звонить!!!  Вообще-то, перед использованием модема, его положено инициализировать при помощи команды: ATZ. Далее - установить необходимые настройки (если они отличаются от стандартных, по умолчанию). И только после этого работать - звонить и т.д.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|