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

Здравствуйте! Подскажите как грамотно отослать данные по UART , используется только RX и TX, в самом даташите сказано, что надо отправить любой байт данных и после 100мс отправлять данные. А в appnote сказано , что надо отправлять данные непрерывно, пока не придет ответ от модуля. Чему верить?
Использую AT+CSCLK = 2 .

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


Ссылка на сообщение
Поделиться на другие сайты
Отправить AT несколько раз.
Когда получили ОК - перевести модуль на фиксированную скорость.
AT+IPR=9600
AT&W
Перегружаем модуль и далее уже работаем на фиксированной скорости без всяких задержек.

Если модуль усыпляем - то лучше использовать DTR для просыпания.
Игра на задержках это баловство для студентов - сделать абы сдать.

И если предполагается передача больших объемов данных, или работа на скорости выше чем 9600, то использование RTS/CTS очень рекомендуемо чтобы не терять данные.


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


Ссылка на сообщение
Поделиться на другие сайты
Да нормально и без DTR можно работать, чуть дольше только выход из сна
AT\r
пауза 200 мс
AT\r
OK
затем сразу
AT+SLEEP=0\r
OK
..... //делаем неспеша, что нужно и опять засыпаем
AT+SLEEP=2

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


Ссылка на сообщение
Поделиться на другие сайты
Понял, спасибо большое, а зачем перезагружать модуль если можно просто включить режим AT+CSCLK = 0 ?
Скорость у меня 230400 , пока проблем с передачами не было без RTS/CTS, объемы данных до 200килобайт за минуту

vit496

У меня так и реализовано, но сделаю для надежности через DTR как велят старожилы
Изменено пользователем Mysteo

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


Ссылка на сообщение
Поделиться на другие сайты
Если использовать DTR , то тогда придется применять AT+CSCLK=1 , в таком случае при входящем событии на модуль (звонок либо смс ) в таком случае необходимо отслеждивать вывод UART_RI и пробуждать SIM800 через DTR ?
Или при AT+CSCLK = 1 уровень на RI не будет меняться?

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


Ссылка на сообщение
Поделиться на другие сайты
Если для вас важно входящее событие, то да.
Если инициатор само устройство, то игнорируйте.

Вам что жалко пару линий портов для большей функциональности????

It’s recommended connect the RI to an interrupt port of MCU. It can be used for waking up from power saving mode. That means the MCU will receive an interrupt while a falling edge coming on RI.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата
Вам что жалко пару линий портов для большей функциональности????


Линий портов всегда жалко. Особенно когда функциональности как таковой не добавляется. Прерывание по приему символа в UART при входящем событии ничуть не хуже прерывания по ноге RI.

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


Ссылка на сообщение
Поделиться на другие сайты
В режиме сна при clk = 1 уарт вроде как молчит даже при входящем событии, поэтому надо RI использовать

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Mysteo @ Oct 19 2017, 01:22) <{POST_SNAPBACK}>
В режиме сна при clk = 1 уарт вроде как молчит даже при входящем событии, поэтому надо RI использовать

Не молчит. +CRING: VOICE, +CLIP: "+7906211... Все как обычно.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Mysteo @ Oct 19 2017, 00:22) <{POST_SNAPBACK}>
В режиме сна при clk = 1 уарт вроде как молчит даже при входящем событии, поэтому надо RI использовать

Ничего не молчит - все асинхронные сообщения приходят как и должны приходить. Особенность лишь в том, что для того, что-бы что-то ответить на эти сообщения(отослать что-то в модуль) надо по-любому дернуть DTR и подождать 80мс.

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


Ссылка на сообщение
Поделиться на другие сайты
Спасибо! потребление около 6 мА в данном режиме, что на 5 мА больше чем в даташите, в чем может быть косяк?
Напряжение подавал напрямую, подключение SIM как в даташите, светодиоды все выпаял, согласование UART на транзисторах сделано, но там столько жрать не должно
Изменено пользователем Mysteo

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


Ссылка на сообщение
Поделиться на другие сайты
Подпитка по портам где-то осталась.
Мы 0.7 мА получали переводя выход UART контроллера в Z состояние.
И потом только контролировали RI для просыпания.

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


Ссылка на сообщение
Поделиться на другие сайты
Буду разбираться, что то в платке с модулем жрёт, сейчас попробую выпаять транзисторы, согласующие уарт, при clk = 2 и cfun = 0 кушает 3 - 4 мА, ножки которые с МК соединены разорвал толку нет
Изменено пользователем Mysteo

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация