Jump to content

    
Sign in to follow this  
dima34

Megа16 не хочет набирать номер ...

Recommended Posts

Доброе время суток!

 

Вот решил позвонить с помощью АВР, но блин ничего не получилось :-(.

Вкратце ....подключил вывод 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

 

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

 

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

 

Всем желающим помочь заранее благодарен!

Share this post


Link to post
Share on other sites

Еще советую посмотреть что телефон отвечает на эту команду.

т.е. сделать и обратный канал или хотябы терминалом с помощью компа.

 

 

 

Вспомнил тут, помоему надо писать не

"ATD +38098xxxxxxx"

 

а

 

ATD"+38098xxxxxxx"

 

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

Share this post


Link to post
Share on other sites
Еще советую посмотреть что телефон отвечает на эту команду.

т.е. сделать и обратный канал или хотябы терминалом с помощью компа.

Вспомнил тут, помоему надо писать не

"ATD +38098xxxxxxx"

 

а

 

ATD"+38098xxxxxxx"

 

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

Не надо там никаких кавычек.

Пробелы тоже не нужно, хотя с ними обычно все работает.

В конце строки обязательно 0x0D,0x0A.

И самое главное, у большинства телефонов по умолчания уарт работает на 9600. Если хотите другой, и увренны, что телефон это поддерживает, то сначала нужно, чтоб српботал autobading. Можно перед набором номера послать пару раз "AT\r\n" c паузами.

Share this post


Link to post
Share on other sites
В конце строки обязательно 0x0D,0x0A.

А для чего нужны эти команды?

 

 

И самое главное, у большинства телефонов по умолчания уарт работает на 9600.

 

И ещё, помимо скорости есть какие-нибудь дополнительные настройки УАРТА, которые могут отличаться ?

 

Кавычек, как и пробела, не нужно.

 

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

Edited by Kalina

Share this post


Link to post
Share on other sites
А для чего нужны эти команды?

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

 

И ещё, помимо скорости есть какие-нибудь дополнительные настройки УАРТА, которые могут отличаться ?

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

 

Попробуйте сначала сделать все вручную в терминале.

Share this post


Link to post
Share on other sites
Возврат каретки и перевод строки.

Большое спасибо, очень помогло!

Попробуйте сначала сделать все вручную в терминале.

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

 

Правда вот при первой отправке строчки: ATD+38098xxxxxxx

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

 

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

 

1. Настроить юарт

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

 

И напоследок.. после освоения СМСок уже откроются широкие возможности для дистанционного управления по GSM каналу, кстати у меня есть справочник АТ команд для терминала Сименс М20 на русском, я думаю эти командами пользуются практически все сименсы, если кому надо, пишите, скину на мыло.

Share this post


Link to post
Share on other sites
Правда вот при первой отправке строчки: ATD+38098xxxxxxx

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

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

 

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

На асме это вполне реализуемо, я как-то без "C" свободно обходился.

Передать 18-180-1800 символов просто, а вот написать нормальный парсер ответов модема уже гораздо сложнее.

Share this post


Link to post
Share on other sites
Guest @Ark
...

Правда вот при первой отправке строчки: ATD+38098xxxxxxx

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

Вообще-то, перед использованием модема, его положено инициализировать при помощи команды: ATZ. Далее - установить необходимые настройки (если они отличаются от стандартных, по умолчанию). И только после этого работать - звонить и т.д.

Share this post


Link to post
Share on other sites

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

Edited by Amper25

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this