Требуется помощь экстрасенсов. Стоит задача получить связь с модулем. Проблема в том, что модуль я уже припаял к плате и теперь пытаюсь с микроконтроллера до него достучаться. Микроконтроллер stm32f051.
При поданном питании я планшетом вижу устройство под названием HMSoft. Т.е. сам модуль жив. Подключиться не могу - но это и понятно: по умолчанию оно должно соединяться только с подобным, вроде. Ну вот пытаюсь с микроконтроллера до него достучаться... а вот не выходит.
На микроконтроллере я назначил PA9-PA12 на USART1. Сконфигурировал на 9600,8,1. Шлю AT и ничего не происходит. проблема еще в том, что у порта включен RTS/CTS и эти выводы задействованы и на модуле и на микроконтроллере. Так вот не происходит даже передача. Если в USART выключить RTS/CTS, то передача происходит, но в ответ приёма нет.
Передачу я проверил на платке STM32F0-discovery - закоротил PA9 и PA10 - получил loopback - посланные символы вижу принятыми в кольцевой буфер. Был подключивши переходник на FTDI232R - в компьютере вижу передаваемые символы - т.е. TX/RX навроде работают и даже скорость 9600 есть.
Где мне что еще проверить?
Спойлер
Код:
USART_send("I am iron man, I am iron man, I am iron man, I am iron man, I am iron man, I am iron man\r\n"); USART_send("AT\r\0"); put_string("AT sent\r\n"); while (!kbdread()) { if (IsRxdata()) put_char(USART_receive()); }
Сбрасывать настройки модуля в дефолт пробовали? Для этого нужно GPIO0 (который должен быть подтянут к питанию, вощимта) прижать на землю на некоторое время.
Припаял к 11 выводу резистор 68 кОм на плюс питания (9-й вывод) , коротил пинцетом на 12-й вывод - ничего не поменялось. А... коротнул 16-й вывод на массу - получил OK+WAKE. Но я же ему для пробуждения посылаю строку из более 80 символов? Что делать? У меня нет свободных ног, для манипуляций с PIO0
И это при выключенном RTS/CTS. Если включить, то как и раньше - ничего не идёт.
Насчет "подтянутости к питанию" в интернете вижу примеры, где ничего не подтянуто и используется всего 4 провода TX, RX, Vcc и Gnd
p.s. заметки для меня: установить AT+PWRM в 1 - уже должно быть по-умолчанию AT+UART 0: When module into sleep mode, you can wake up module through UART. 1: When module into sleep mode, shutdown UART too. Default: 0xFFE0
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Что-то у меня всё еще не получается. Как и раньше получаю только OK+WAKE попытка послать следом командe AT+UART? - никакого эффекта не даёт. Ага. На AT всё же отвечает OK. Оказалось, что AT+UART это для какой-то sensor version. Проверил версию своего аппарата: "HMSoft V605".
Ага. понял свою ошибку. Меня смутила команда "AT" и я пытался с модулем разговаривать как с обычным старым телефонным модемом. Оказывается, команду нужно посылать просто одним пакетом без символа возврата каретки и без пауз. Но с паузой перед следующей командой.
но RTS/CTS всё еще не работают.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Припаял к 11 выводу резистор 68 кОм на плюс питания
это зачем? Посмотрите на свою схему, там английским по белому написано PIO0 - 16 нога. Её нужно подтянуть к плюсу, и зажать на землю секунд на 5, если нужно сбросить в дефолт контроллер. Не обязательно занимать на этот вывод ногу управляющего мк, можно обойтись аналоговой конструкцией на полевом транзисторе и RC цепочке, чтобы при включении питания 16 вывод был прижат к земле, а через секунд 5 поднимался бы в 1. Это даст сброс настроек в дефолт при каждом подключении питания. Но Вы можете и не сбрасывать настройки каждый раз, а уповая на милость Божию, настроить модуль однажды, и «использовать так» - рекомендации лучших ардуинщиков страны
Я уж написал, что перепутал-не понял итд. Сейчас актуально RTS/CTS и чем к нему подключиться. Мой андроид модуль видит, но не пайрится. Когда на планшете тыкаюсь в найденное устройство появляется OK+CONN OK+LOST и ничего больше. Через программу CySmart я могу соединиться (без авторизации!) и послать что-нибудь на устройство (собственно одна из целей). Вот только вопрос, а есть ли какой софт, который это умеет делать несколько комфортнее?
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
rts/cts совершенно не обязательны для того, чтобы понять, что модуль умеет. Соответственно, нет смысла упираться в аппаратный контроль передачи до тех пор, пока Вы не поймёте, что модуль удовлетворяет Ваши надежды и мечты cts модуля только на "землю" посадите, чтобы он не ждал вечно возможности передать данные. Когда время разбираться с hw flow control придёт - перечитайте мануал про usart, с большой вероятностью сейчас у Вас порт настраивается по auto negotiation, т.к. кучу параметров Вы не указываете явно. Насчёт приложеньки - есть специально для этих модулей сделанные программки, автор у них "HMSoft", а называются они что-то вроде HMBluetooth и HMNearby scanner... Поищите, я не помню уже наверняка.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения