Главная arrow Программирование arrow AVR arrow Модуль Bluetooth RS-232 (Wireless Bluetooth RS232 TTL Transceiver Module) Friday, July 29 2016  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

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

Поделиться:

Модуль 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 )
 

Комментарии  

  1. #40 xor
    2015-07-1810:51:06 Если в проекте USB флешки на ATmega8 поставить vid/pid и строки от программатора то BlueFlash его видит. Команды самого программатора есть тут https://github.com/Frans-Willem/CsrUsbSpiDeviceRE

    Кто может допилить до рабочего устройства?
  2. #39 max809
    2014-03-0904:40:59 Может кому пригодиться: мой модуль (hc-06) принимал AT-команды, но не отвечал. Когда пальцами прижимал чип к плате, то получал ответ. В мастерской по ремонту сотовых прогрели феном - все заработало как положено.
  3. #38 Алекс
    2014-02-1615:35:02 Как установить Bluetooth RS-232 на WABCO интерфейс?
  4. #37 Ed
    2013-12-0402:14:57 Вопрос: вы не пытались добавить в прошивку работу с PIO?

    Информация в копилку: модули HC-04/06 (с четной цифрой) идут запрограммирова нные железно в режим master или slave. На aliexpress продавцы просят указывать, какой именно нужен. В модулях HC-05/07/09 можно задавать режим через AT команды.
  5. #36 Алексей
    2013-11-1516:31:45 Не могу на ebay найти именно HC-04, похоже остались только BC-04. Второе на первое можно заменить?
  6. #35 Андрей
    2013-06-2422:34:28 Как понимаю, с iPad, iPhone, iPod touch законектить HC-04 не получиться ввиду не поддерживаемост и SPP эпплом:
    http://support.apple.com/kb/HT3647?viewlocale=ru_RU
    Я прав?

    microsin: да, наверное Вы правы, хотя это очень странно - возможность иметь на устройстве виртуальный последовательны й порт через Bluetooth весьма полезная возможность. Наверное, можно обойти это ограничение, если скомпилировать для HC-04 устройство USB HID и написать соответствующее программное обеспечение (bridge), конвертирующее поток данных USB HID в поток данных SPP. В продаже есть также готовые аппаратные мосты, которые выполняют похожие функции.
  7. #34 Мазай
    2013-05-0323:01:15 Еще добавлю… Имеющийся у меня модуль отвечает на АТ-команды не как в даташите. При установке имени вместо "OKname" он возвращает "OKsetname". А при установке PIN вместо "OKsetpin" - "OKsetPIN".
  8. #33 Мазай
    2013-04-2921:37:51 Как писалось где-то ниже, модуль НС-04 реагировал только на команду изменения имени: AT+NAMExxxx. Однако если посмотреть на криворукие примеры АТ-команд в даташите, то можно заметить, что они не заканчиваются символами конца строки и перевода каретки - 0×10, 0×13. Впрочем и модуль возвращает свои ответы без оных. Если из команд убрать их, то все работает как надо. Ответ на "АТ" приходит в виде "ОК", скорость меняется. Почему модуль переваривает команду NAME с завершающими 0×10, 0×13 и не переваривает другие - загадка.
  9. #32 RainMan
    2013-02-2523:31:39 Ребята помогите. Вот уже неделю бьюсь ничего не получается. Брал на ByinCoins. Похож на НС-05. Продавец заявил что может работать как мастером так и слейвом. При установне соединения загорается светодиод на PIO9. PIO8 помаргивает. Модуль становится слейвом. Телефон не видит его. Передавать данные получается только в одну сторону - отправляю в СОМ-порт блютуса, который вставлен в ПК, получаю данные с HC-05. В обратном порядке почему-то данные не ходят:( Войти в режим общения АТ-коммандами никак не получается, PIO11 вешал на +. Молчит как рыба. Перебрал все скорости. Какие могут быть еще варианты, хочется пообщаться с ним по АТ…?
  10. #31 Kazuya
    2013-02-1512:05:10 Сергей Ш., подскажите - как Вы поменяли BaudRate в прошивке? Т. к. желающих много и всем нужна разная скорость передачи :), мне например 8192, то может объясните, как это сделать самому?

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

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

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

< Пред.   След. >

Top of Page
 
microsin © 2016