Программирование AVR Модуль Bluetooth RS-232 (Wireless Bluetooth RS232 TTL Transceiver Module) Tue, October 08 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Модуль Bluetooth RS-232 (Wireless Bluetooth RS232 TTL Transceiver Module) Печать
Добавил(а) microsin   

Миниатюрный модуль позволяет подключиться к телефонам, PDA, наладонникам, смартфонам, ноутбукам, к любым устройствам, имеющим на борту модуль Bluetooth в режиме master, и передавать данные через стандартный RS-232.

Bluetooth-HC-04-top-IMG_1295.JPG Bluetooth-HC-04-bottom-IMG_1297.JPG

Модуль HC-04 (так коротко он называется в даташите) питается от 3.3 вольт, снабжен малогабаритной антенной, имеет TTL сигналы приема и передачи RXD и TXD стандартного RS-232, а также выход на светодиод, отображающий статус радиоканала.

Bluetooth-HC-04-pinout1.png Bluetooth-HC-04-pinout2.png

Процедура подключения выглядит следующим образом: сразу после включения питания модуль отвечает на нехитрый набор AT-команд (см. далее). Настройки порта по умолчанию 9600 бод, 8 бит данных, 1 стоп-бит, без бита четности (скорость можно менять AT-командой в широких пределах). При отсутствии связи по радиоканалу индикационный светодиод часто мигает. После того, как master Bluetooth установил соединение, светодиод переходит на постоянное свечение, модуль перестает отвечать на AT-команды, и начинает просто передавать данные. Образуется следующий канал связи:

Bluetooth-connection-scheme.png

Таким образом, можно по радиоканалу Bluetooth передавать данные на стандартный UART, имеющийся в большинстве встраиваемых систем (этот порт имеется почти во всех микроконтроллерах, либо легко организуется программно). На стороне master-устройства BlueTooth (телефон, PDA, ноутбук с Linux или Windows и проч.) появляется виртуальный COM-порт, с которым можно легко работать программно.

Модуль построен на чипе BC417143B-IQN-E4 (BlueCore4-External device) компании CSR (Cambridge Silicon Radio), см. [2], и 8-мегабитном чипе FLASH-памяти ES29LV800DB, в котором записано firmware BC417143B.

[Технические параметры модуля HC-04]

- используемые радиочастоты 2.40 .. 2.48 ГГц, диапазон ISM (регистрация и лицензирование частот не требуется), уровень мощности Class2 (+6 dBm), чувствительность приемника -85 dBm.
- протокол BlueTooth V2.0.
- возможные скорости передачи данных 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1382400 бод. Скорость может быть выбрана пользователем с помощью AT-команд, по умолчанию скорость 9600 бод, 8 бит данных, 1 стоп-бит, без бита четности
- напряжение питания 3.3 вольт, ток потребления 35 мА в режиме поиска радиосоединения, и около 8 мА, когда радиоканал установлен и функционирует, ток в режиме сна <1 br=""> - рабочий температурный диапазон -40 .. +105 oC.
- размеры 28 x 15 x 2.35 мм.

[Система AT-команд модуля HC-04]

Модуль отвечает на команды AT, когда радиоканал не установлен.

AT проверка RS-232 (в ответ на эту команду модуль выдает OK).
AT+BAUDx установка скорости, где x шестнадцатеричное число от 1 до C (1 соответствует 1200 бод, C соответствует 1382400 бод), подробности см. в даташите (пакет [3]). Измененная настройка скорости сохраняется при выключении питания.
AT+NAMEname изменение имени устройства (в нашем примере linvor) на другое имя name.
AT+PINpppp изменение пароля (PIN-кода), где pppp новый пароль. Пароль по умолчанию 1234.

[Тестирование модуля HC-04]

1. Нужно подключить светодиод и подать 3.3 вольта на модуль. Получается следующая простая схема:

Bluetooth-HC-04-simple-connection.png

Bluetooth-simple-conn-IMG_1314.JPG

2. После подачи питания светодиод на модуле начинает часто мигать, сигнализируя о готовности к подключению радиоканала. В качестве master BlueTooth я использовал телефон HTC TOUCH pro2 T7373 (Windows Mobile 6.1 Professional, OS CE 5.2.21048). Чтобы установит канал связи, нужно сначала через меню настроек включить радиоинтерфейс Bluetooth.

Bluetooth-T7373-01.PNG Bluetooth-T7373-02.PNG  

3. После того, как интерфейс BlueTooth включен, нужно запустить поиск новых устройств Bluetooth через Меню -> Добавить устройство.... После поиска телефон обнаружит новое Bluetooth-устройство linvor, это и есть наш радиомодуль. Для соединения с устройством щелкните на имя linvor, появится запрос пароля. В качестве пароля (PIN-код) нужно ввести 1234. После успешного подключения будет предложено выбрать имя COM-порта, с которым будет связано Bluetooth-подключение (например COM2). 

Bluetooth-T7373-03.PNG Bluetooth-T7373-04.PNG Bluetooth-T7373-05.PNG

4. Чтобы соединиться с устройством, нужно выбрать его в списке и щелкнуть на надписи "Соединить". Как только соединение установлено, светодиод на модуле HC-04 переключится на постоянное свечение, и через COM2 можно передавать и принимать данные.

5. Для проверки передачи данных я использовал putty (на телефоне putty Windows Mobile, см. [4], а на компьютере putty для Windows XP, см. [5]). К TTL-сигналам порта RS-232 модуля я подключил микроконтроллер Atmel AVR AT90USB162MU (установленный на макетной плате AVR-USB162MU). При таком подключении питание +3.3 вольта подается на модуль Bluetooth от внутреннего стабилизатора напряжения микроконтроллера AT90USB162MU (перемычка SJ1 должна стоять в положении 2-3).

Bluetooth-HC-04-witch-AVR-USB162MU.png Bluetooth-HC-04-AVR-USB162MU-IMG_1288.JPG

Передачу данных я контролировал через виртуальный COM-порт USB CDC, скомпилированный из примеров библиотеки LUFA. Получилась такая тестовая цепочка:

Bluetooth-testing-scheme.png

К сожалению, связь между двумя модулями HC-04 не поддерживается, связь возможна только с master-устройством Bluetooth (любой телефон, смартфон, наладонник или ноутбук, у которого есть интерфейс Bluetooth). Однако есть возможность написать для модуля HC-04 своё firmware с любым функционалом, в том числе и с поддержкой режима master Bluetooth (см. [2] и [8]).

Резюме: радиомодуль Bluetooth HC-04 очень удобен для быстрой и недорогой реализации двухсторонней беспроводной связи с различными embedded-системами - различными датчиками, роботами, бытовыми приборами. Модуль стоит на dealextreme.com всего лишь 7.2 доллара (бесплатная доставка free shipping), его можно легко заказать по предоплате через PayPal или картой VISA, MasterCard, получите прямо на почте. Мои модули я получил через 22 дня после заказа.

[Программатор для HC-04

Компания CSR предлагает довольно дорогие программаторы, самый простой и дешевый из них стоит около $300 (USB SPI Converter, Product ID: DEV-SYS-1808-1A), и его в России нигде не купить. К счастью, можно собрать самому довольно простой программатор, подключающийся через порт LPT компьютера. Этот же программатор позволяет делать полноценную отладку по исходному коду программы и по дизассемблированному коду, просматривать значения регистров процессора и ячеек памяти. 

CSR-LPT-flasher.PNG

Внешний вид собранного программатора:

Bluetooth-LPT-programmer.jpg

С программатором работают GUI-программы PSTool и BlueFlash, которые позволяют скачивать данные настроек и firmware из чипа FLASH, а также стирать и перезаписывать настройки и firmware. Утилиты PSTool и BlueFlash находятся в пакете по ссылке [8]. Кроме того, этот LPT-флешер работает как полноценный аппаратный отладчик в среде разработки xIDE фирмы CSR (находится в том же пакете).

Программа PSTool позволяет считывать, сохранять, редактировать, сливать вместе (merge), записывать в память FLASH чипа настройки модуля и настройки firmware. Настройки сохраняются в виде текстового файла с расширением *.psr. Внешний вид интерфейса программы PSTool:

Bluetooth-PSTool-choose-transport.PNG Bluetooth-PSTool-main-window.PNG

Для сохранения всей FLASH-памяти целиком и для её перезаписи служит программа BlueFlash.

Bluetooth-BlueFlash03.PNG Bluetooth-BlueFlash01.PNG Bluetooth-BlueFlash04.PNG
Bluetooth-BlueFlash02.PNG Bluetooth-BlueFlash05.PNG  

[Ссылки]

1. Wireless Bluetooth RS232 TTL Transceiver Module site:dx.com.
2. BlueCore4-Ext™ site:csr.com - общее описание BlueCore4-External device на сайте компании CSR.
3. Документация на модуль (описание модуля, AT-команды, даташит на чип BC417143B).
4. PocketPuTTY download site:pocketputty.net - Putty для Windows Mobile.
5. PuTTY Download Page site:chiark.greenend.org.uk - putty для Windows XP и других платформ.
6. Как покупать на dealextreme site:dealextreme.spb.ru.
7. LUFA - бесплатная библиотека USB для микроконтроллеров Atmel AVR.
8. 180318CSR_CASIRA_BLUELAB_SDK_v4.1.zip - CSR CASIRA BLUELAB SDK v4.1, пароль на архив casira (пароль установлен потому, что иначе Deposit удаляет файл). Здесь есть все необходимое для разработки и отладки firmware для HC-04 (документация, среда разработки xIDE3, примеры кода, библиотеки, утилиты для прошивки и бекапа памяти).
9. Дампы настроек (.psr) и firmware HC-04 (.xdv и .xpv), сделанные программами PSTool и BlueFlash.

 

Комментарии  

 
+1 #12 Pol 29.01.2016 14:35
Имею модуль HC-05. Пробовал прошить его примером HID_Keyboard. Устройство видно с Андроида, но подключиться не может. Потом сделал полный ERASE на HC-05 и снова залив прошивку - Андроид перестал видеть клавиатуру. Стандартная прошивка работает (скачал с Интернета, она немного отличается от стандартной, что была у меня). Вообще эти модули можно прошить чем то иным, кроме ком-порта?
Цитировать
 
 
0 #11 Александр 29.10.2015 10:00
Добрый день. имеет место проблема подключения модуля к телефону (Android 4.2.1)
сам модуль телефон видит, сопряжение проходит и дальше всё... модуль есть в сопряженных устройствах, но подключиться к нему невозможно (нажатие на сам модуль в списке сопр. устройств ни к чему не приводит)... подскажите где копать.
по UART комп его видит так же, команды выполняет, но не все (master-slave не хочет переключать, но мне оно не нужно). имя и пин код меняет.
Заранее благодарю
Цитировать
 
 
+1 #10 Арвид 05.08.2015 13:18
У меня вопрос такого рода. Есть устройство с пультом на проводе, по - которому передается информация посредством RS232. Устройство самодельное. Хочу избавиться от провода, заменив на °bluetooth. Можно ли использовать эти модули в работе друг на друга и что для этого надо.

microsin: со стандартной прошивкой "друг на друга" использовать эти модули нельзя. Единственное, что можно сделать, это подключить один такой модуль Bluetooth к Вашему самодельному устройству (через TTL RS232), и связываться с ним на хосте на основе обычного PC/ноутбука (Windows, Linux) или планшета/телефона (Android, Windows Mobile, Windows 8).
Цитировать
 
 
0 #9 Денис 02.04.2015 18:20
Есть проблема с прошивкой. Китайцы обновили железо, и после этого перестали работать мои прошивки. В модулях, которые с обратной стороны не имеют белой маски, прошивка проходит на ура. Но вот недавно получил другую партию (обратная сторона покрыта белой маской) и ничего не получается - прошивка заливается но комп не находит устройство!!! Заливаю стоковую прошивку и все работает. Есть спецы? помогите за вознаграждение! !! motor2036(собака)ya.ru
Цитировать
 
 
0 #8 Мейрамбек 31.01.2015 10:09
Интересует вопрос: собираю датчики протечки воды, и хотел узнать о возможности передавать сигналы тревоги по BlueTooth! Можно ли организовать такую систему и связь с модулем НС-05?

microsin: можно конечно. Модули НС-05 и аналогичные специально для таких целей и предназначены.
Цитировать
 
 
+2 #7 Андрей 26.07.2014 18:47
Скажите, с помощью такого модуля возможно реализовать подключение с Android к различному оборудованию? То есть имеется ноутбук с Windows и COM-портом, есть необходимость по консоли (rs232) подключаться к различному сетевому оборудованию для прошивки/настройки. Возможно ноутбук заменить устройством с Android, и через BlueTooth с помощью такого модуля подключаться к оборудованию по rs232?

microsin: на Android не пробовал, но уверен что можно.
Цитировать
 
 
+1 #6 Александр 12.06.2012 16:26
Я купил таких, но jy-mcu hc-06. Поздно понял, что эта прошивка сильно отличается от HC-05 и сильно урезана! Мне необходимо перепрошивать. Раз уж можно их программировать , возможно ли написать такую программу, чтобы модуль принимал команды по блютусу и сам управлял выводами IO? зашить её в модуль, чтобы обойтись без внешнего контроллера... Возможно ли одновременно оставить и функционал прошивки HC-05 и добавить управление ножками ввода-вывода? Как это сделать и кто сможет помочь возмездно, откликнитесь (alex_forz[соба ка]mail.ru).
Цитировать
 
 
+1 #5 Дмитрий 09.10.2011 23:13
А чем отличаются модули HC-4 и HC-5 (HC-6)?
Можно ли на HC-5 залить настройки и прошивку от HC-4?

microsin: за паспортными данными обращайтесь к производителю модулей. Если процессоры одинаковые, то некоторые прошивки могут заработать.
Цитировать
 
 
+1 #4 mr-x 14.09.2011 17:52
Приобрел такой модуль на dealextreme. Отличная штука. Но по началу пришлось повозиться, пока не разобрался с AT командами. Дело в том, что эти AT команды принимаются к исполнению спустя примерно секунду после получения, и за эту секунду ничего другого посылать нельзя.

Т.е. надо послать команду и ждать. Если требуется определить, на какую скорость настроен последовательны й порт HC-04, придется перебирать все скорости по очереди, выдерживая паузу в 1 секунду между попытками. Глупо как-то.

microsin: ничего не глупо. Очень удобно, что скорость работы порта запоминается при выключении питания. Вы же сами скорость настраиваете, и должны сами помнить, на какую скорость настроили модуль. Тогда не нужна процедура автоскана для определения скорости.

Запоминание настроенной скорости жизненно необходимо, когда нужно соединить модуль HC-04 с "черным ящиком", на выходе которого только RS-232 с фиксированной, неизменяемой скоростью. Живой пример - контроллер управления газовым оборудованием автомобиля. Без модуля HC-O4 пришлось бы искать переходник USB-COM, да еще с нестандартным 5-вольтовым интерфейсом. А с модулем HC-O4 проблема подключения решилась на лету, и функция запоминания скорости пришлась очень кстати.
Цитировать
 
 
+2 #3 Олег 30.08.2011 16:13
Основная причина отключения это (как сказано выше) отсутствие обмена данными между устройствами по каналу Bluetooth.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page