реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Megа16 не хочет набирать номер ..., Правильно ли я делаю???
Kalina
сообщение May 18 2008, 17:30
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 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

Ну, как понятно из темы, телефон молчал, правда проверка в протеусе на терминале дала позитивнй результат, строчка в УАРТЕ состветсвтовала действительности!

Возможно настройки связи модема телефона отличаются от настроек УАРТА контроллера, и вообще можно таким способом позвонить???

Всем желающим помочь заранее благодарен!
Go to the top of the page
 
+Quote Post
vet
сообщение May 18 2008, 18:32
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



ATD вроде бы не принимает пробел перед номером. Пишите слитно.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 18 2008, 19:14
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А 0x0D, 0x0A в конце строки передать не забыли?
Go to the top of the page
 
+Quote Post
Amper25
сообщение May 18 2008, 20:03
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 215
Регистрация: 10-04-07
Пользователь №: 26 929



Еще советую посмотреть что телефон отвечает на эту команду.
т.е. сделать и обратный канал или хотябы терминалом с помощью компа.



Вспомнил тут, помоему надо писать не
"ATD +38098xxxxxxx"

а

ATD"+38098xxxxxxx"

Кавычки, вроде, определяют границы номера хотя могу ошибатся.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 18 2008, 20:10
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Кавычек, как и пробела, не нужно. В конце номера следует добавить ";", если нужно звонить голосом.
Go to the top of the page
 
+Quote Post
Клим
сообщение May 19 2008, 05:47
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(Amper25 @ May 18 2008, 23:03) *
Еще советую посмотреть что телефон отвечает на эту команду.
т.е. сделать и обратный канал или хотябы терминалом с помощью компа.
Вспомнил тут, помоему надо писать не
"ATD +38098xxxxxxx"

а

ATD"+38098xxxxxxx"

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

Не надо там никаких кавычек.
Пробелы тоже не нужно, хотя с ними обычно все работает.
В конце строки обязательно 0x0D,0x0A.
И самое главное, у большинства телефонов по умолчания уарт работает на 9600. Если хотите другой, и увренны, что телефон это поддерживает, то сначала нужно, чтоб српботал autobading. Можно перед набором номера послать пару раз "AT\r\n" c паузами.
Go to the top of the page
 
+Quote Post
Kalina
сообщение May 19 2008, 06:51
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
Ден
сообщение May 19 2008, 06:52
Сообщение #8


Частый гость
**

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



Цитата(Kalina @ May 19 2008, 13:49) *
А для чего нужны эти команды?

Это команда перевода каретки и строки, Когда нажимаешь клавишу "Enter", то посылаешь эти команды.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 19 2008, 06:54
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Kalina @ May 19 2008, 10:51) *
А для чего нужны эти команды?

Возврат каретки и перевод строки. Без них телефон ничего делать не будет.

Цитата(Kalina @ May 19 2008, 10:51) *
И ещё, помимо скорости есть какие-нибудь дополнительные настройки УАРТА, которые могут отличаться ?

Плюньте на скорость - на C55 autobaud все отработает. Настройки стандартные 8-N-1.

Попробуйте сначала сделать все вручную в терминале.
Go to the top of the page
 
+Quote Post
Kalina
сообщение May 19 2008, 17:03
Сообщение #10


Частый гость
**

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



Цитата(aaarrr @ May 19 2008, 10:54) *
Возврат каретки и перевод строки.

Большое спасибо, очень помогло!
Цитата(aaarrr @ May 19 2008, 10:54) *
Попробуйте сначала сделать все вручную в терминале.

Протеус рулит, просто замечательная программка a14.gif

Правда вот при первой отправке строчки: ATD+38098xxxxxxx
телефон отвечат 0, это означает команда выполнена ошибок нет, а вот только после повторной отправки ATD+38098xxxxxxx , спустя пол секунды (точно сколько надо ждать не знаю, но если не ждать ничего не выйдет) телефон уже отвечает 0ATD+38098xxxxxxx и начинает звонить!!! yeah.gif

Вот ещё что, перед тем как писать прогу, думал что-то найти похожее, но ничего не нашёл. Только встечались фразы, что без Сишки не обойтись, на асме будет геморойно. Мне как начинающему сейчас непонятно, в чём трудность передать 18 символов по юарту?Ведь нужно всего лишь:

1. Настроить юарт
2. Дважды передать 18 символов

И напоследок.. после освоения СМСок уже откроются широкие возможности для дистанционного управления по GSM каналу, кстати у меня есть справочник АТ команд для терминала Сименс М20 на русском, я думаю эти командами пользуются практически все сименсы, если кому надо, пишите, скину на мыло.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 19 2008, 17:44
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Вас ожидает еще столько удивительных и фееричных вещей для отправки СМС...smile.gif


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 19 2008, 19:00
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Kalina @ May 19 2008, 21:03) *
Правда вот при первой отправке строчки: ATD+38098xxxxxxx
телефон отвечат 0, это означает команда выполнена ошибок нет, а вот только после повторной отправки ATD+38098xxxxxxx , спустя пол секунды (точно сколько надо ждать не знаю, но если не ждать ничего не выйдет) телефон уже отвечает 0ATD+38098xxxxxxx и начинает звонить!!! yeah.gif

Не должен так себя вести C55. Для работы с контроллером лучше отключить эхо (ATE0) - станет гораздо удобнее разбирать ответы телефона.

Цитата(Kalina @ May 19 2008, 21:03) *
Только встечались фразы, что без Сишки не обойтись, на асме будет геморойно. Мне как начинающему сейчас непонятно, в чём трудность передать 18 символов по юарту?

На асме это вполне реализуемо, я как-то без "C" свободно обходился.
Передать 18-180-1800 символов просто, а вот написать нормальный парсер ответов модема уже гораздо сложнее.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение May 20 2008, 08:57
Сообщение #13





Guests






Цитата(Kalina @ May 19 2008, 21:03) *
...
Правда вот при первой отправке строчки: ATD+38098xxxxxxx
телефон отвечат 0, это означает команда выполнена ошибок нет, а вот только после повторной отправки ATD+38098xxxxxxx , спустя пол секунды (точно сколько надо ждать не знаю, но если не ждать ничего не выйдет) телефон уже отвечает 0ATD+38098xxxxxxx и начинает звонить!!! yeah.gif

Вообще-то, перед использованием модема, его положено инициализировать при помощи команды: ATZ. Далее - установить необходимые настройки (если они отличаются от стандартных, по умолчанию). И только после этого работать - звонить и т.д.
Go to the top of the page
 
+Quote Post
Amper25
сообщение May 20 2008, 09:22
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 215
Регистрация: 10-04-07
Пользователь №: 26 929



Очевидно, что при первой отправке команды, модем подстраивает свой baudrate и, соответственно, не видит полностью команду. Пожтому и не реагирует.

Сообщение отредактировал Amper25 - May 20 2008, 09:23
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 20 2008, 09:25
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Далеко не очевидно. А в начале действительно стоит сбросить модем и добиться ответа просто на "AT".
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016