Aurochs 0 31 октября, 2007 Опубликовано 31 октября, 2007 · Жалоба Очень нужна помощь специалиста. Помогите пожалуйста! Подключаю GSM модем на USART1 AT91SAM7X256 в режиме full-modem (прописываю 3 в поле USART_MODE регистра US_MR). Все работает прекрасно до того момента, когда устанавливается CSD-соединение (соединение с другим модемом через GSM-сеть). С этого момента AT91SAM начинает игнорировать все поступающие с модема данные и так продолжается до тех пор, пока связь не будет прервана. Схема подключения: Модем ARM RX <--> TX TX <--> RX DTR <--> DTR DCD <--> DCD DCD <--> DSR (у модема нет выхода DSR) RTS <--> RTS CTS <--> CTS RI <--> RI Выходные для ARM сигналы DTR и RTS все время установлены в активное состояние (0). Если же запрограммировать USART1 на нормальный режим (прописать 0 в поле USART_MODE регистра US_MR), вышеописанный эффект исчезает. Но обязательно нужна аппаратная поддержка управления потоком, поэтому такой режим не подходит... Заранее благодарен за любую помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_dem 0 31 октября, 2007 Опубликовано 31 октября, 2007 · Жалоба Уточните, какой именно модем и что происходит при установке соединения на линиях USART (в частности, CTS) ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 31 октября, 2007 Опубликовано 31 октября, 2007 · Жалоба Уточните, какой именно модем и что происходит при установке соединения на линиях USART (в частности, CTS) ? Модем - SIM300C CTS=0 DCD=0 DTR=0 RTS=0 Из ARMa в модем при этом данные идут нормально и тот их передает в эфир. С другого конца модем тоже принимает данные и передает их в ARM, но тот их почему-то игнорирует... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_dem 0 31 октября, 2007 Опубликовано 31 октября, 2007 · Жалоба т.е. на RXD АРМ-а данные есть, а он их не видит ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 31 октября, 2007 Опубликовано 31 октября, 2007 · Жалоба т.е. на RXD АРМ-а данные есть, а он их не видит ? Да, именно так. Я только прописываю режим NORMAL в US_MR и ARM начинает читать данные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 1 ноября, 2007 Опубликовано 1 ноября, 2007 · Жалоба Незнаю что за модем может я и ошибаюсь но схема подключения Схема подключения: Модем ARM RX <--> TX TX <--> RX DTR <--> DTR DCD <--> DCD DCD <--> DSR (у модема нет выхода DSR) RTS <--> RTS CTS <--> CTS RI <--> RI неправельня должно быть Схема подключения: Модем ARM RX <--> TX TX <--> RX DTR <--> DSR RTS <--> CTS CTS <--> RTS С остальными надо доку на модем Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amw 0 1 ноября, 2007 Опубликовано 1 ноября, 2007 · Жалоба Незнаю что за модем может я и ошибаюсь но схема подключения Схема подключения: Модем ARM RX <--> TX TX <--> RX DTR <--> DTR DCD <--> DCD DCD <--> DSR (у модема нет выхода DSR) RTS <--> RTS CTS <--> CTS RI <--> RI неправельня должно быть Схема подключения: Модем ARM RX <--> TX TX <--> RX DTR <--> DSR RTS <--> CTS CTS <--> RTS С остальными надо доку на модем Ну теоретически может быть и так. Надо доку на модем читать. Однако я не встречал модемов у которых RTS выход, а CTS вход. Обычно пины управления последовательного интерфейса напрямую подключаются к хост машине. И, как я понимаю, у SAM эти пины такие-же как и в компьютере. Так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_dem 0 1 ноября, 2007 Опубликовано 1 ноября, 2007 · Жалоба 1. какие-то сигналы UART меняются при переходе в дата-режим ? 2. про схему MALLOY2 правильно подметил скорее всего, при переходе в режим данных модем как-то меняет режим работы (сам переходит в режим "полного" уарта и сбрасывает какую-то из линий) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 1 ноября, 2007 Опубликовано 1 ноября, 2007 · Жалоба 1. какие-то сигналы UART меняются при переходе в дата-режим ? Из зафиксированных изменений - переход DCD из 1 в 0. Но парадокс в том, что даже если просто посадить DCD на землю без установки коннекта, то идет нормальный обмен в обе стороны скорее всего, при переходе в режим данных модем как-то меняет режим работы (сам переходит в режим "полного" уарта и сбрасывает какую-то из линий) Не исключено, что при установке связи имеют место какие-то аналоговые эффекты, т.к. для платы в этот момент существенно меняется режим работы - модем жрет по полной программе. Но в таком случае все равно непонятно, почему это проявляется только в режиме full modem. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_dem 0 2 ноября, 2007 Опубликовано 2 ноября, 2007 · Жалоба попробуйте после установления соединения переинициализировать USART в "полном" режиме Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 5 ноября, 2007 Опубликовано 5 ноября, 2007 · Жалоба попробуйте после установления соединения переинициализировать USART в "полном" режиме Прошу меня извинить за длительную паузу, не было возможности проверить... К сожалению результат тот же: как только перепрограммирую US_MR, данные перестают читаься. Мистика какая-то. В документации про режим full-modem всего пол-страницы, которые я уже до дыр зачитал... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_dem 0 6 ноября, 2007 Опубликовано 6 ноября, 2007 · Жалоба ну тогда код в студию - будем смотреть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Master 0 8 ноября, 2007 Опубликовано 8 ноября, 2007 · Жалоба Ну теоретически может быть и так. Надо доку на модем читать. Однако я не встречал модемов у которых RTS выход, а CTS вход. Обычно пины управления последовательного интерфейса напрямую подключаются к хост машине. И, как я понимаю, у SAM эти пины такие-же как и в компьютере. Так? Теоретически?? Почитайте про RS-232, внимательно проверьте направление на пинах модема, а потом уже пробуйте настраивать разные режимы. И нет здесь никакой мистики Вы не первый, вы не последний, кто подключает модем к последовательному порту. А ещё почитайте соответствующий форум здесь. Там по SIMCOM полно инфы. Удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 15 мая, 2008 Опубликовано 15 мая, 2008 · Жалоба Уважаемые! Хочу хоть как-то вразумительно закончить эту ветку по пошествии полугода. Для тех, кто ее еще будет смотреть, имею честь сообщить следующее. Мистики здесь действительно никакой нет. А дело все в том, что м/к семейств AT91SAM7S и AT91SAM7X очень проблематично использовать в режимах full-modem и hardware handshake. Если же вам все-таки придется когда-либо это делать, то внимательно изучите Errata для этих семейств! Причем самой последней версии. На данный момент это можно сделать здесь http://www.atmel.com/dyn/resources/prod_do...nts/doc6120.pdf Мне удалось добиться относительно безошибочной работы только путем понижения скорости обмена между м/к и модемом до значения скорости эфирной передачи. Всем удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
etoja 0 16 мая, 2008 Опубликовано 16 мая, 2008 · Жалоба Переход сигнала DCD в ноль говорит о том, что модем обнаружил несущую. При работе в эфире модем может потреблять до 8 Ватт в импульсе. Посмотрите осциллографом на сигнал CTS (выход модема), который используется модемом для притормаживания процессора в смысле выдачи байт в RS232. Проверьте число стоповых бит в настройках RS232. Обычно модем хочет 1 стоповый бит, а процессор может быть настроен на 2, тогда обмен будет зависать при большом потоке байт в режиме CSD, а при обмене AT-командами - нет. PS: используйте процессоры Philips/NXP и компилятор GreenHills. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться