Например TDA7294

Форум РадиоКот • Просмотр темы - Bluetooth модуль HM-11.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб фев 28, 2026 20:10:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Bluetooth модуль HM-11.
СообщениеДобавлено: Сб фев 29, 2020 20:08:53 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1400
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7347
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Требуется помощь экстрасенсов. Стоит задача получить связь с модулем. Проблема в том, что модуль я уже припаял к плате и теперь пытаюсь с микроконтроллера до него достучаться. Микроконтроллер 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());
         }


Код:
#include <stm32f0xx.h>
#define USART   USART1
#define FIFO_BUFFER_SIZE   160

void USART_Init(void) {
   RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
   
   USART->CR1 = USART_CR1_RXNEIE;
//   USART->CR3 = USART_CR3_CTSE | USART_CR3_RTSE;
   USART->BRR = 0x1388; // 9600: oversample 16, Fck=48MHz
   
   USART->CR1 |= USART_CR1_TE | USART_CR1_RE | USART_CR1_UE;
   NVIC_EnableIRQ(USART1_IRQn);
}

unsigned char    RxFIFObuf[FIFO_BUFFER_SIZE],
   *Rx_rd_ptr =  RxFIFObuf,
   *Rx_wr_ptr =    RxFIFObuf;

void USART1_IRQHandler(void) {
   if (USART->ISR & USART_ISR_RXNE) {
      unsigned char * old_rx_ptr;
      old_rx_ptr = Rx_wr_ptr;
      *Rx_wr_ptr++ = USART->RDR;
      if (Rx_wr_ptr > &RxFIFObuf[FIFO_BUFFER_SIZE - 1]) {
         Rx_wr_ptr = RxFIFObuf;
      }
      if (Rx_wr_ptr == Rx_rd_ptr) {
         Rx_wr_ptr = old_rx_ptr; // overflow!
      }
   }
   if (USART->ISR & USART_ISR_TXE) {
   }
}

unsigned int IsRxdata(void) {
   return (Rx_rd_ptr == Rx_wr_ptr) ? 0 : 1;
}

unsigned char USART_receive(void) {
   unsigned char result;
   while (Rx_rd_ptr == Rx_wr_ptr) continue;
   result = *Rx_rd_ptr++;
   if (Rx_rd_ptr > &RxFIFObuf[FIFO_BUFFER_SIZE - 1]) {
      Rx_rd_ptr = RxFIFObuf;
   }
   return result;
}

void USART_send(char * string) {
   while (*string) {
      while (!(USART->ISR & USART_ISR_TXE)) continue;
      USART->TDR = *string++;
   }
}

Изображение

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
 Заголовок сообщения: Re: Bluetooth модуль HM-11.
СообщениеДобавлено: Пн мар 02, 2020 13:41:49 
Опытный кот

Карма: 9
Рейтинг сообщений: 165
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 711
Рейтинг сообщения: 0
Сбрасывать настройки модуля в дефолт пробовали? Для этого нужно GPIO0 (который должен быть подтянут к питанию, вощимта) прижать на землю на некоторое время.


Вернуться наверх
 
 Заголовок сообщения: Re: Bluetooth модуль HM-11.
СообщениеДобавлено: Пн мар 02, 2020 22:09:20 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1400
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7347
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Припаял к 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

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
 Заголовок сообщения: Re: Bluetooth модуль HM-11.
СообщениеДобавлено: Вт мар 03, 2020 20:35:37 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1400
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7347
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Что-то у меня всё еще не получается. Как и раньше получаю только OK+WAKE попытка послать следом командe AT+UART? - никакого эффекта не даёт.
Ага. На AT всё же отвечает OK. Оказалось, что AT+UART это для какой-то sensor version. Проверил версию своего аппарата: "HMSoft V605".

Ага. понял свою ошибку. Меня смутила команда "AT" и я пытался с модулем разговаривать как с обычным старым телефонным модемом. Оказывается, команду нужно посылать просто одним пакетом без символа возврата каретки и без пауз. Но с паузой перед следующей командой.

но RTS/CTS всё еще не работают.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Bluetooth модуль HM-11.
СообщениеДобавлено: Вт мар 03, 2020 21:23:26 
Опытный кот

Карма: 9
Рейтинг сообщений: 165
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 711
Рейтинг сообщения: 0
Припаял к 11 выводу резистор 68 кОм на плюс питания
это зачем? Посмотрите на свою схему, там английским по белому написано PIO0 - 16 нога. Её нужно подтянуть к плюсу, и зажать на землю секунд на 5, если нужно сбросить в дефолт контроллер. Не обязательно занимать на этот вывод ногу управляющего мк, можно обойтись аналоговой конструкцией на полевом транзисторе и RC цепочке, чтобы при включении питания 16 вывод был прижат к земле, а через секунд 5 поднимался бы в 1. Это даст сброс настроек в дефолт при каждом подключении питания. Но Вы можете и не сбрасывать настройки каждый раз, а уповая на милость Божию, настроить модуль однажды, и «использовать так» - рекомендации лучших ардуинщиков страны ;)


Вернуться наверх
 
 Заголовок сообщения: Re: Bluetooth модуль HM-11.
СообщениеДобавлено: Вт мар 03, 2020 21:33:38 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1400
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7347
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я уж написал, что перепутал-не понял итд. Сейчас актуально RTS/CTS и чем к нему подключиться. Мой андроид модуль видит, но не пайрится. Когда на планшете тыкаюсь в найденное устройство появляется OK+CONN OK+LOST и ничего больше. Через программу CySmart я могу соединиться (без авторизации!) и послать что-нибудь на устройство (собственно одна из целей). Вот только вопрос, а есть ли какой софт, который это умеет делать несколько комфортнее?

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
 Заголовок сообщения: Re: Bluetooth модуль HM-11.
СообщениеДобавлено: Ср мар 04, 2020 03:04:27 
Опытный кот

Карма: 9
Рейтинг сообщений: 165
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 711
Рейтинг сообщения: 0
rts/cts совершенно не обязательны для того, чтобы понять, что модуль умеет. Соответственно, нет смысла упираться в аппаратный контроль передачи до тех пор, пока Вы не поймёте, что модуль удовлетворяет Ваши надежды и мечты ;) cts модуля только на "землю" посадите, чтобы он не ждал вечно возможности передать данные. Когда время разбираться с hw flow control придёт - перечитайте мануал про usart, с большой вероятностью сейчас у Вас порт настраивается по auto negotiation, т.к. кучу параметров Вы не указываете явно.
Насчёт приложеньки - есть специально для этих модулей сделанные программки, автор у них "HMSoft", а называются они что-то вроде HMBluetooth и HMNearby scanner... Поищите, я не помню уже наверняка.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y