Модуль Bluetooth RS-232 (Wireless Bluetooth RS232 TTL Transceiver Module)
Написал microsin   
18.07.2011

Миниатюрный модуль позволяет подключиться к телефонам, 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 мА.
- рабочий температурный диапазон -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 chipping), его можно легко заказать по предоплате через 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.
2. Общее описание BlueCore4-External device на сайте компании CSR.
3. Документация на модуль (описание модуля, AT-команды, даташит на чип BC417143B).
4. Putty для Windows Mobile.
5. Putty для Windows XP и других платформ.
6. Как покупать на dealextreme.
7. LUFA - бесплатная библиотека USB для микроконтроллеров Atmel AVR.
8. CSR CASIRA BLUELAB SDK v4.1 - здесь есть все необходимое для разработки и отладки firmware для HC-04 (документация, среда разработки xIDE3, примеры кода, библиотеки, утилиты для прошивки и бекапа памяти). 
9Дампы настроек (.psr) и firmware HC-04 (.xdv и .xpv), сделанные программами PSTool и BlueFlash.

Последнее обновление ( 28.07.2011 )