|
SIM900. Проблемы со стартом, При старте модуль настроен на "странный" бодрейт |
|
|
|
Jun 27 2012, 12:55
|
Группа: Новичок
Сообщений: 7
Регистрация: 27-06-12
Пользователь №: 72 533

|
Хело. Модуль после дергания поверкея стартует, отсылает парочку байт, что-то вроде 0х49 0хFF, на скорости (померянной по стартовому биту осцилографом) ~470 кбод. На комманды не отвечает. Светодиод сети подмигивает. Питание 3,5В, интерфейс развязан ключами, фантомного питания нет. Бьюсь целый день, понять не могу, в чем беда...
Сообщение отредактировал Johnny_G - Jun 27 2012, 12:55
|
|
|
|
|
Jun 27 2012, 17:23
|
Группа: Новичок
Сообщений: 7
Регистрация: 27-06-12
Пользователь №: 72 533

|
Ну осциллографу не верить, кому ж тогда верить  Там точно не 115200. Но все таки. Первую комманду "АТ" в таком случае на 115200 передавать? Но нет же, вроде, он должен по этой комманде сам подстраиваться. Пробовал по всякому - упрямо не работает. Терминалка в порядке. Отладочный кит работает нормально. Плата - нет. Может ли быть проблема в модуле?
Сообщение отредактировал Johnny_G - Jun 27 2012, 17:23
|
|
|
|
|
Jun 28 2012, 18:19
|
Группа: Новичок
Сообщений: 7
Регистрация: 27-06-12
Пользователь №: 72 533

|
Собрал еще одну плату, на другом модуле - с тем же результатом. Где-то я ошибаюсь, но где? Модуль должен отвечать RDY
+CFUN: 1
+CPIN
и так дальше только после настройки бодрейта? Если этого не посылает, значит еще настроен, я так понимаю?
|
|
|
|
|
Jun 30 2012, 00:57
|
Группа: Новичок
Сообщений: 7
Регистрация: 27-06-12
Пользователь №: 72 533

|
Цитата(ArtemKAD @ Jun 29 2012, 00:46)  А че означает "питание 3,5В"? Ну... то и означает....
|
|
|
|
|
Jun 30 2012, 07:03
|
Местный
  
Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856

|
Цитата(Johnny_G @ Jun 30 2012, 03:57)  Ну... то и означает....  Если у Вас это напряжение питания SIM900 ("питание 3,5В") , то весьма странный выбор уровня напряжения питания, при напряжении 3,5В, очень маленький запас на "провалы", после которых модуль может посчитать что напряжение низкое и выключится. А по вопросу почему Вам модуль не отвечает, Вам ответил CADiLO. Я скажу то же самое, но другими словами. Чтоб модуль ответил тем что Вы ожидаете, он должен быть включен на один из фиксированных борейтов. Для того чтоб переключить на фиксированный бодрейт, сначала нужно подать комманду AT а затем комманду установки скорости. Скорость этой манипуляции должна быть не выше 57600. По AT он определит бодрейт. Вот строки которые нужно посылать. "AT\r" а затем "AT+IPR=19200\r" (настройка на скорость 19200). Затем модуль перегружаете.
Сообщение отредактировал alexdos - Jun 30 2012, 07:04
|
|
|
|
|
Jun 30 2012, 20:50
|
Группа: Новичок
Сообщений: 7
Регистрация: 27-06-12
Пользователь №: 72 533

|
Цитата(ArtemKAD @ Jun 30 2012, 10:26)  Значит велика вероятность того, что модуль пытается включиться, видит хреновый источник (провал под нагрузкой ниже 3,3В) и тут-же отключается. Провалов нет. Проверено. А проблема-то в том что не отвечает он на комманду "AT\n"!!! В том-то и вопрос.
|
|
|
|
|
Jun 30 2012, 21:19
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(Johnny_G @ Jun 30 2012, 23:50)  Провалов нет. Проверено. А проблема-то в том что не отвечает он на комманду "AT\n"!!! В том-то и вопрос. Может скорость не та... Можно посылать ему команду настройки скорости и ждать пока ответить, если не ответит слать следующую. Вариантов скоростей немного - все перебрать недолго. Код __flash unsigned char ATIPR_19200[]="AT+IPR=19200\r";
unsigned long DefineBaudrate() { uart_init_115200(); send_ipr_115200(); if (OkReceived()) return 115200;
delay_some_second();
uart_init_57600(); send_ipr_57600(); if (OkReceived()) return 57600;
// и так далее
return 0; // не отвечает
}
|
|
|
|
|
Jul 1 2012, 07:35
|
Местный
  
Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856

|
Цитата(Johnny_G @ Jun 30 2012, 23:50)  Провалов нет. Проверено. А проблема-то в том что не отвечает он на комманду "AT\n"!!! В том-то и вопрос. А с какого ему отвечать на "AT\n" ? он не обязан на неё отвечать. А вот на "AT\r" должен отвечать (задача на тему найдите одно отличие). P.S. выдержка с документа "To terminate a Command line enter <CR>."
|
|
|
|
|
Jul 2 2012, 11:53
|
Группа: Новичок
Сообщений: 7
Регистрация: 27-06-12
Пользователь №: 72 533

|
Схема. Через терминал посылаю команду "АТ" и жму enter, что передает 0x0D, а это <CR>, так что все по правилам...
Эскизы прикрепленных изображений
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|