Полная версия этой страницы:
SIM300C+MEGA16 USART-Problem
svkostik
Mar 19 2007, 20:49
Здравствуйте товарищи !
Имеется Мега16 (8MHz, 5В через LM7805 от ATX 12B).
К Меге, по USART, подключен SIM300C GSM-модем. (9600, 8-N-1).
Сигналы CTS-RTS на модеме закорочены.
Проблема соостоит в нестабильной работе USART.
Уверенность в том, что виною именно USART дает то обстоятельство,
что поотдельности и модем и Мега работают отлично (с компом,
через преобразователь уровней на MAX232, 9600, 8-N-1).
Имеет также место FrameError на Меге при работе с модемом.
В чем, собственно, состоит нестабильность ? Из 10-ти звонков (ATDxxxxxxxxxxx;) может прити 1-2.
Иногда не приходит вообще.
Кроме-как подвесить pool-up-резисторы на RX, TX в голову ничего не приходит.
Буду благодарен за любой дельный совет.
Заранее благодарен!
Цитата
Имеется Мега16 (8MHz, 5В через LM7805 от ATX 12B).
5В для SIM300 много. Нужно хотя бы 3.3В не больше.
Цитата
Сигналы CTS-RTS на модеме закорочены.
Коротить можно только RTS. Выходной сигнал CTS нельзя. Напрягаешь модуль.
Цитата
В чем, собственно, состоит нестабильность ? Из 10-ти звонков (ATDxxxxxxxxxxx;) может прити 1-2.
Если на 10 просто "АТ" получишь 10 "ОК", UART работает нормально. Проблемма может быть в другом.
Harbinger
Mar 20 2007, 11:40
Цитата(shb @ Mar 19 2007, 20:10)

Коротить можно только RTS. Выходной сигнал CTS нельзя. Напрягаешь модуль.
Если на 10 просто "АТ" получишь 10 "ОК", UART работает нормально. Проблемма может быть в другом.
Скорее всего - закорочены RTS, CTS между собой.
На 8 МГц точная скорость UART не получается - а какие отклонения допускает SIM300?
CADiLO
Mar 20 2007, 13:00
1. На входы модуля не более 3 вольт - согласовать уровни.
2. Питание модуля не выше 4.2 вольта
3. Для работы с АТ командами достаточно RX, TX - остальное в воздухе.
4. Полный последовательный интерфейс нужен только при режиме FAX или DATA - тогда контролируем CTS.
>>>> На 8 МГц точная скорость UART не получается - а какие отклонения допускает SIM300?
мы доходили до 2% - потом начинались сбои в обмене.
Harbinger
Mar 20 2007, 19:28
Вроде как вплоть до 38400 должен работать, если калькулятор не врет

Видать, что-то с уровнями, или помехи.
lewchenko
Mar 21 2007, 11:13
У меня такая же связка, то только AtMega16L! Все работает превосходно в плане USART. Мега работает от того же питания, что и модуль. Схема такая:
Rx(AtMega)---[470]---Tx(Sim300c)
Tx(AtMega)---[470]---Rx(Sim300c)
Резистор 470 Ом необходим из своих соображений.
Кварц то же 8Мгц. Работаю на 19200. В принципе, работает до 115200 - проблем не замечено.
Вообще, большинство глюков из-за наводок РЧ во время передачи. Либо из-за просадок питания.
svkostik
Mar 22 2007, 11:22
Цитата(lewchenko @ Mar 21 2007, 10:13)

У меня такая же связка, то только AtMega16L! Все работает превосходно в плане USART. Мега работает от того же питания, что и модуль. Схема такая:
Rx(AtMega)---[470]---Tx(Sim300c)
Tx(AtMega)---[470]---Rx(Sim300c)
Резистор 470 Ом необходим из своих соображений.
Кварц то же 8Мгц. Работаю на 19200. В принципе, работает до 115200 - проблем не замечено.
Вообще, большинство глюков из-за наводок РЧ во время передачи. Либо из-за просадок питания.
1.Как посмотреть просадки питания ?
2.Поделитесь настройками фузов CKOPT, CKSEL, SUT.
lewchenko
Mar 30 2007, 01:39
Цитата(svkostik @ Mar 22 2007, 12:22)

1.Как посмотреть просадки питания ?
2.Поделитесь настройками фузов CKOPT, CKSEL, SUT.
1. Осциллографом.
2. Зависят от обвязки проца. Например, кварц 8МГц: CKOPT=1, CKSEL3..1=1.
(Для PonyProg Галка=0!)
Цитата(CADiLO @ Mar 20 2007, 18:00)

3. Для работы с АТ командами достаточно RX, TX - остальное в воздухе.
4. Полный последовательный интерфейс нужен только при режиме FAX или DATA - тогда контролируем CTS.
Вы хотите сказать что при работе с АТ командами(например при конфигурировании модуля и т.д.)возможно работать только по 2 линиям RX и TX?а при работе GPRS нужно задействовать полный протокол или какие то линии опустить?Я понял что линии RTS и CTS при передаче по GPRS нужно обрабатывть обязательно,а другие?Значит при стыковке модуля с МК AVR, следует использовать его аппаратный UART + дополнительные порты для линий RTS и CTS и их обрабатывать в ручную?
Спасибо заранее!!!
Harbinger
Feb 7 2008, 11:55
Все зависит от размера буфера UART и объемов пересылаемых данных. На некоторые AT-команды модуль может высыпать порядка килобайта в ответ.
А при работе с CSD или GPRS выше 9600, обработка RTS CTS просто становится необходимой, иначе начинаем терять байты....
И еще. Если не использовать DTR модуль долго выходит из соединения. При использовании мгновенно.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.