Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: проблема с отправкой AT+IPR=9600
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
n.bresh
пользуюсь MicroC Pro 5.61
шлю "AT+IPR=9600" но в терминале вижу что пик отправляет "AT+APR=9600" то есть I заменяется на А че за лажа
попробовал отправить следующую после I букву "AT+JPR=9600" - в терминале вижу "AT+BPR=9600"
шлю "at+ipr=9600" - пик шлет "aT+Apr=9600"
шлю "AT+IPR?" - все в норме, пик шлет "AT+IPR?"
vassabi
Какая расчетная ошибка бодрейта у вас получилась?
n.bresh
[quote name='vassabi' date='Jun 1 2013, 23:55' post='1166808']
Какая расчетная ошибка бодрейта у вас получилась?

Generated baud rate is 9615 bps (error = 0.16 percent)
vassabi
Скорость пробовали менять? Что-то меняется?
А в терминалке вы видите именно то что шлет пик или это уже эхо модуля?
n.bresh
в терминале могу видеть и то что шлю и то что отвечает модуль
соответственно на "AT+APR=9600" приходит ответ "AT+APR=9600 ERROR"
переключение скорости на "AT+IPR=19200" не дало никаких изменений
попробовал отсылать не строку а отдельно каждый символ в ASCII функцией UART1Write(0x22) (для ковычек)
контроллер шлет все корректно
vassabi
Функции UARTa ваши или библиотечные?
Код
void _UART1_Send_String(const char *string){
      while(*string)
      {
        U1TXREG = *string++;
        while(!U1STAbits.TRMT);
      }
}
Falkon_99
а как с другими командами???
например
AT+CLIP=1
n.bresh
до других команд еще и не дошел
первой после Uart1_init(9600) шлю Uart1_Write_Text("AAAAAAAAAAAAAAAAAAAAA") для настройки автоопределения скорости
и потом после паузы сбрасываю флаг прерывания RCIF разрешаю .GIE и шлю Uart1_Write_Text("AT+IPR=9600")
ArtemKAD
Тактовая с кварцем или на RC-генераторе?
n.bresh
стоит кварц 8 МГц
SergOv
Цитата(n.bresh @ Jun 2 2013, 18:25) *
стоит кварц 8 МГц

Процессор какой ?
Используется фифо уарта, или нет ??
Falkon_99
попробуете другой кварц например на 7.3728 MHz. тогда error будет равна 0
ArtemKAD
Возможные варианты - вместо кварца выбран RC-генератор, неправильно посчитан делитель скорости, неправильно выбрано число стоп-бит, чем-то затягиваются фронты при передаче, ошибка в программе.
vassabi
Цитата(Falkon_99)
попробуете другой кварц например на 7.3728 MHz.
Я работал с ошибкой и 1,5% на скорости 115200 проблем небыло, думаю это не в кварце дело.
Цитата(SergOv)
Используется фифо уарта, или нет ??
Мне кажется, что дело не в фифо, т.к. при OERR прием блокируется до сброса флага, к томуже при глюках с фифо теряется обычно 5-ый символ...
Не понятно какой модуль у ТСа, например у sim900 при автободрейте после первого AT нужно выждать паузу 3 сек (по памяти).
ArtemKAD
Цитата
Не понятно какой модуль у ТСа, например у sim900 при автободрейте после первого AT нужно выждать паузу 3 сек (по памяти).

У него одну и ту же ошибку видит и терминал и модуль.
n.bresh
ребят чой то какая то фигня
мож я меня problem with крякнутой microC Pro 5.61 ? и PIC18F25K20
до этого работал с проектом на PIC16F1826 все было в норме, и UART и все прочее

вообще то конечно красота отправлять "AT+IPR=9600" и видеть в Hterm отправленный "AT+APR=9600"



супер - фокус
строю проект на SIM900 и PIC18F25K20 и тут же на первой команде такой косяк

Falkon_99
если с кварцем и скоростью все в норме, то проблема в СИшной функции, в программе.
Попробуйте тупо в уарт кидать байты с задержкой, типа:
while(1)
{
UDR="A";
delay();
UDR="T";
delay();
UDR="+";
delay();
UDR="I";
delay();
UDR="P";
delay();
UDR="R";
delay();
}
и тд
n.bresh
так я ж писал что отправляя все знаки по очереди в ввиде ASCII кодов функцией Uart1_Write(0x22) ( 0x22 для кавычек)
я получаю в терминале корректно "AT+IPR=9600"
vassabi
Цитата(n.bresh)
так я ж писал что отправляя все знаки по очереди в ввиде ASCII кодов ....

Возможно проблема с библиотечной функцией, я вам выше привел код, попробуйте.
n.bresh
PIR1.RCIF = 0;
INTCON.GIE = 1;
UART1_Write(0x41);
UART1_Write(0x54);
UART1_Write(0x2B);
UART1_Write(0x49);
UART1_Write(0x50); I
UART1_Write(0x52);
UART1_Write(0x3d);
UART1_Write(0x39);
UART1_Write(0x36);
UART1_Write(0x30);
UART1_Write(0x30);

// UART1_Write_Text("AT+IPR=9600");

вверху рабочий код , внизу закоментированный нерабочий
проблема в том что я не знаю насколько правильно в этом случае будет
if ( PIR1.RCIF == 1) Uart1_Read_text( antwort, "OK", 50)
у меня не определяется




хотя я вижу что модуль отвечает "OK"

SergOv
Цитата(n.bresh @ Jun 2 2013, 21:22) *
супер - фокус
строю проект на SIM900 и PIC18F25K20 и тут же на первой команде такой косяк

А скомпиленный код в ассемблерных командах посмотреть не ??
Кстати, при чем тут SimCom ?
)))
alexdos
Цитата(n.bresh @ Jun 2 2013, 21:53) *
if ( PIR1.RCIF == 1) Uart1_Read_text( antwort, "OK", 50)
у меня не определяется

хотя я вижу что модуль отвечает "OK"


Как говорится, а видите ли Вы все что видите. Вы щас суслика видите?, уверен что не видите, а он есть. Так и с "OK", у Вас получается. Видите Вы OK а на самом деле там \r\nOK\r\n
vassabi
Цитата
строю проект на SIM900....

Стоп! Раньше вы не упоминали, что модуль sim900.
Тогда вопрос - вывообще доку на него открывали?
Для инициализации в режиме автободрейт слать нужно не ААААА.... (или что там вы шлете), а выдержать тамаут 3-5 секунд после подачи питания, затем послать исключительно АТ (с учетом регистра), и только потом слать ему команды!
n.bresh
все правильно в терминалке я вижу \r\nOK\r\n
но до интерпретации ответов мне еще далеко
вопрос то в том что при отсутствии соединения между контроллером и модулем контроллер в порт отдает совсем не то что ему передано
функцией
alexdos
Цитата(n.bresh @ Jun 3 2013, 04:47) *
вопрос то в том что при отсутствии соединения между контроллером и модулем контроллер в порт отдает совсем не то что ему передано
функцией


Если без модуля видите всякую чуш, а с подключеным модулем нормально, то на моё мнение нужно смотреть железо, через которое Вы смотрите. Согласование уровней сигналов, длину проводов.
vassabi
n.bresh, что все таки говорит скомпилированный асм?
n.bresh
всем спасибо
проблему решил теперь появилась новая
отправляю в программном коде звонок на номер в формате ATD+49XXXXXXXX;
все проходит нормально
вариант 2 :
в симке прописываю тот же номер с именем Alarm
в модуль PICом отсылаю:

AT+CPBS="SM"
ATD>"Alarm";
не хочет работать
перебор вариантов "FD" "ME" "LD" и прочее не помогает. Переключение AT+CSCS=GSM и IRA тоже не помогает.
че делаю то неправильно?
n.bresh
ни у кого нет идей?
ssokol
Цитата(n.bresh @ Jun 20 2013, 20:24) *
ни у кого нет идей?

По-моему это было реализовано только в последних версиях ветки JD_DTMF_MMS... может обновиться до последней.
n.bresh
вроде бы все стандартно описано в AT Commands SIM900
2.2.5 ATD><str> Originate Call to Phone Number in Memory Which Corresponds to Field
<str>
SergOv
Цитата(n.bresh @ Jun 20 2013, 19:24) *
ни у кого нет идей?

Какие идеи ?
Оно так и сказало, дескать, работать не хочу ??
sobr
Цитата(SergOv @ Jun 21 2013, 02:30) *
Какие идеи ?
Оно так и сказало, дескать, работать не хочу ??
Ну конечно же нет. Это же не Российский модуль, он сказал:
+CME ERROR: "I don't want to work"\r\n biggrin.gif
CADiLO
И еще неплохо бы указать с какой версией прошивки модуль.
n.bresh
S2-1040S-Z091U
FCC ID: UDV-0912142009007
n.bresh
ну хорошо хрен с ним с ATD"Alarm";
как сообщить модулю с каким номером телефона он должен общаться?
только через AT+CAUTORUN=1,"номер телефона" ?
CADiLO
S2-1040S-Z091U = 1137B09SIM900M64_ST

Обычная европрошивка, там AT+CAUTORUN и остальных расширенных команд нет, не было и не будет.
Ну и достаточно древняя - последняя европейская уже 12 версии.

Обновляйтесь до xUSSR версии прошивок
1137B09SIM900M64_ST_DTMF_JD_MMS или 1137B01SIM900M64_ST_ENHANCE
n.bresh
спасибо за ответ
но может есть какой способ заставить модуль работать с заранее запрограммированным на симке номером?
ArtemKAD
Да в чем проблема? Найдите абонента по имени, вытащите из него номер и воспользуйтесь обычным ATD.
ЗЫ. Кстати, надеюсь Вы дожидаетесь активации карты...
n.bresh
всем спасибо
проблемка решена
оказалось при записи номера телефона на симку
в конце имени телефон добавляет еще и индекс
то есть я писал имя "Alarm" а фактически имя было "Alarm/1"
сейчас ATD>"Alarm/1" нормально отрабатывает
n.bresh
есть ли возможность получить актуальную или названные Вами прошивки на n.bresh <собака> web.de ?
CADiLO
Возможность конечно есть - емейлом запрос своему дистрибьютору.

n.bresh
брал я модули на TME и мой вопрос по новой прошивке загнал их в тупик
отсылают меня напрямую в SIMCOM
Relax
Цитата(n.bresh @ Aug 7 2013, 12:11) *
брал я модули на TME и мой вопрос по новой прошивке загнал их в тупик
отсылают меня напрямую в SIMCOM


А ТМЕ оф. дистрибьютор? http://wm.sim.com/en/marketen.aspx
n.bresh
ребята, я живу в Германии ( как выразился по моему GADILO в "гевропействе") и дистрррибутор EBV конечно же напрягает покупать модули у них
конечно же все дороже и прошивку с именем xUSSR мне ну ни как здесь не поймать
поэтому и вопрос на форуме
если возможность есть - помогите, если же нет - ну буду иметь дальше то что имею
заранее всем спасибо
CADiLO
Есть в Эстонии официал который возит модули с xUSSR прошивками
http://www.vis-plus.ee/?leng=rus&m=1

Запросите у них.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.