Проблема с RS232 - сбиваются CTS/RTS

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Родился
Сообщения: 6
Зарегистрирован: Пн дек 27, 2010 13:19:50

Сообщение Symkin »

Здравствуйте.
Возникла такая проблема: есть микроконтроллер PIC33, который связан с GSM-модемом с по RS232 с использованием CTS/RTS. Всё работает нормально, но время от времени одно из устройств (бывает как модем, так и PIC) выводит на линию квитирования запрещающий сигнал, и соответственно, другое устройство прекращает передачу. Система зависает в таком состояний и лечится только перезапуском.

Сама по себе передача небольшая - периодически по нескольку байт (как в одну сторону, так и в другую). UART и CTS/RTS на микроконтроллере управляются аппаратно. Скорость 9600.

У меня возникло предположение, что в модуле UART на МК (а может быть и на модеме) иногда возникают ошибки принятия (сбивки скорости, или ещё чего-нибудь), и приёмный буфер заполняется не полностью и зависает в таком подвешенном состоянии, и поэтому устройство запрещает дальнейший приём, высылая соовтетствующий сигнал на линию квитирования.
Может быть кто-нибудь уже сталкивался с подобным?
Реклама
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт сен 21, 2007 17:53:23
Откуда: Зарайск

Сообщение mrFox »

А ошибки приема/передачи обрабатываешь ?
Из-за помех в приемном буфере вполне может оказаться ерунда,
обычно перед началом обмена посылают 0xFF, чтоб это ушло по frame error
Из вариантов :
можно подтянуть линии USART резисторами на землю;
можно отключить аппаратное управление CTS/RTS и дергать их из программы
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Есть такой косяк у модемов. Всмысле сталкивался не с именно ошибками квитирования, а с зависанием долго работающих модемов. Причем этой болезнью страдают многие изделия из поднебесной и не только.
Я сигналы квитирования не использовал т.к. пакеты данных были редкие и не большого размера. Просто коротнул RTS-CTS и оно само работает.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

Этот случАй всех злее (С) вот мультик не помню....
Хотелось бы увидеть программную обработку пропуска стопового бита и переполнения 2 байтового буфера...
Согласитесь, ничего сверх чего-то не прошу.
Просто как бы обмен падает не просто так, а по причине (с) капитан очевидность
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 6
Зарегистрирован: Пн дек 27, 2010 13:19:50

Сообщение Symkin »

Интересный момент - модем прижимает CTS по время вызова (обмен данными по CSD), при этом если на другом конце модем выключить (разорвать вызов) первый модем через какое-то время приходит в себя и отпускает CTS.
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Если проблема еще осталась, то как вариант перейти на XON-XOFF. Заодно по активности канала можно узнать когда модем повис и дернуть ключиком питание.
Реклама
Ответить

Вернуться в «Периферия»