Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900R проблемы с USART
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Stan88
Добрый день. Возможно проблема, с которой я столкнулся уже ни раз была рассмотрена, но таковой информации (с учетом проделанных ранее манипуляций) - не нашел. Если укажете ссылкой буду благодарен. Если же не сложно повторитесь в этом топике, господа знающие!)

Мною был сделан модем на SIM900R с подключением к миру через MAX3232 (TX,RX,GND). Написана программа для ПК для этапа конфигурирования и отладки устройства. Была написана прошивка для подключаемой к данному модему железки на ATmega8A (ничего сложного - опрос нескольких датчиков и управление релюшками). Железка общается с миром через MAX232 (TX,RX,GND). Подключаю к ПК через переходник КОМ-ЮСБ, написанной программой проверяю связь, настраиваю SIM карту, использую прочие АТ-команды - все работает. Запускаю прошивку в Proteuse, подключаю модем через переходник КОМ-ЮСБ - все замечательно работает. Подключаю железку к модему - молчание. Оставил в прошивке лишь проверку тестового запроса AT+0x0D. Подтверждения опять нет. Смотрю что на выходе железки - та честно отправляет 3 символа 'A','T',0x0D каждые 16 секунд (если нет ответа от модема). Проверил все напряжения, прозвонил все связи - все в порядке. Добавил в прошивке после запроса паузу и вывод того что пришло в ответ на тестовый запрос АТ. И вижу там следующее:

AT$0D}WнAT$0D}Wн}WН}Wн

Что-то приходит, но далеко не ОК. Полагаю что ошибка в связи железки с модемом. SIM900R имеет следующие настройки: включено эхо (в основной прошивке проверяю предыдущую отправленную команду), 9600, 8/0/1, контроля четности нет, (+ICF: 3,3), контроль передачи (+IFC: 0,0). Настройки железки: 9600, 8/0/1, контроля четности нет, асинхронный режим. Ниже приведу настройки USART:

Код
void usart_init(void)
{
   // инициализация выводов
   USART_DDR&=~RX;
   USART_DDR|=TX;
   // запись значения скорости передачи
   UBRRL = LO(bauddivider);
   UBRRH = HI(bauddivider);
   // инициализация регистров управления
   UCSRA = 0;
   UCSRB = 1<<RXEN| // включить прием
   1<<TXEN| // включить передачу
   1<<RXCIE| // включить прерывание по приему
   1<<TXCIE; // включить прерывание по передаче
   UCSRC = 1<<URSEL| // запись в регистр UCSRC
   1<<UCSZ0| // размер данных 8 бит
   1<<UCSZ1;
}


Подскажите пожалуйста, в чем может быть проблема? Буду весьма благодарен!!!
С уважением, Станислав.
Stan88
Подключился сегодня ко второму такому же модему на работе - такой проблемы нет. Может стоит перепрошить SIM900R? Хотя может быть еще проблема в MAX3232, вначале наверное заменю его - посмотрю что изменится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.