Перейти к содержанию
    

SIM300C+MEGA16 USART-Problem

Здравствуйте товарищи !

 

Имеется Мега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 работает нормально. Проблемма может быть в другом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Коротить можно только RTS. Выходной сигнал CTS нельзя. Напрягаешь модуль.

Если на 10 просто "АТ" получишь 10 "ОК", UART работает нормально. Проблемма может быть в другом.

Скорее всего - закорочены RTS, CTS между собой.

На 8 МГц точная скорость UART не получается - а какие отклонения допускает SIM300?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. На входы модуля не более 3 вольт - согласовать уровни.

2. Питание модуля не выше 4.2 вольта

3. Для работы с АТ командами достаточно RX, TX - остальное в воздухе.

4. Полный последовательный интерфейс нужен только при режиме FAX или DATA - тогда контролируем CTS.

 

>>>> На 8 МГц точная скорость UART не получается - а какие отклонения допускает SIM300?

мы доходили до 2% - потом начинались сбои в обмене.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде как вплоть до 38400 должен работать, если калькулятор не врет ;) Видать, что-то с уровнями, или помехи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня такая же связка, то только AtMega16L! Все работает превосходно в плане USART. Мега работает от того же питания, что и модуль. Схема такая:

Rx(AtMega)---[470]---Tx(Sim300c)

Tx(AtMega)---[470]---Rx(Sim300c)

Резистор 470 Ом необходим из своих соображений.

Кварц то же 8Мгц. Работаю на 19200. В принципе, работает до 115200 - проблем не замечено.

Вообще, большинство глюков из-за наводок РЧ во время передачи. Либо из-за просадок питания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня такая же связка, то только AtMega16L! Все работает превосходно в плане USART. Мега работает от того же питания, что и модуль. Схема такая:

Rx(AtMega)---[470]---Tx(Sim300c)

Tx(AtMega)---[470]---Rx(Sim300c)

Резистор 470 Ом необходим из своих соображений.

Кварц то же 8Мгц. Работаю на 19200. В принципе, работает до 115200 - проблем не замечено.

Вообще, большинство глюков из-за наводок РЧ во время передачи. Либо из-за просадок питания.

 

1.Как посмотреть просадки питания ?

2.Поделитесь настройками фузов CKOPT, CKSEL, SUT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1.Как посмотреть просадки питания ?

2.Поделитесь настройками фузов CKOPT, CKSEL, SUT.

 

1. Осциллографом.

2. Зависят от обвязки проца. Например, кварц 8МГц: CKOPT=1, CKSEL3..1=1.

(Для PonyProg Галка=0!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3. Для работы с АТ командами достаточно RX, TX - остальное в воздухе.

4. Полный последовательный интерфейс нужен только при режиме FAX или DATA - тогда контролируем CTS.

 

Вы хотите сказать что при работе с АТ командами(например при конфигурировании модуля и т.д.)возможно работать только по 2 линиям RX и TX?а при работе GPRS нужно задействовать полный протокол или какие то линии опустить?Я понял что линии RTS и CTS при передаче по GPRS нужно обрабатывть обязательно,а другие?Значит при стыковке модуля с МК AVR, следует использовать его аппаратный UART + дополнительные порты для линий RTS и CTS и их обрабатывать в ручную?

Спасибо заранее!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все зависит от размера буфера UART и объемов пересылаемых данных. На некоторые AT-команды модуль может высыпать порядка килобайта в ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А при работе с CSD или GPRS выше 9600, обработка RTS CTS просто становится необходимой, иначе начинаем терять байты....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще. Если не использовать DTR модуль долго выходит из соединения. При использовании мгновенно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...