BlueTooth-модуль HC-04/HC-05

UART интерфейс наряду со стандартными механизмами типа JTAG и SWD является является одним из основных методов отладки микропрограмм для микроконтроллеров. Обычно используется COM-порт, хотя последнее время все чаще мосты на USB-шину и драйверы виртуального COM-порта на PC, так как USB есть повсеместно, а вот COM-порт встречается все реже и реже.

Еще один способ использования UART, ставший доступным и дешевым относительно недавно - это UART-Bluetooth мост, позволяющий производить обмен с микроконтроллерами по беспроводному интерфейсу BlueTooth. При этом с софтовой стороны на PC все точно так же как и при работе по обычному физическому COM-порту, да и со стороны контроллера не нужны никакие дополнительные модификации. Мало того, Bluetooth-UART - это практически идеальный способ состыковки своего устройства с современным планшетом-кпк-телефоном на Android, WinCE и, скорее всего, iOS. Купить модули можно, к примеру, на DealExtreme, там цена за модуль около 200 рублей с доставкой.

Вообще, имеется информация о модулях HC-04 (на сколько я понимаю, полноценный) и HC-05 (видимо урезанный, только с функционалом UART). Какой модуль продается на DX не разбирался. В настоящий момент мне требуется только функционал UART.

Добавление: как выясняется, зоопарк модулей растет, попался модуль HC-05, видимо, "истинный". Определился не как linvor, а как HC-05. Распиновка оказалась у него несколько другая (светодиод не загорался):

Невысокая цена и подтолкнуло попробовать внедрить беспроводной интерфейс и опробовать его для целей отладки. Для своих целей я обернул модуль в оболочку и вывел основные линии на обычный удобный PBD-разъем с возможностью установки на плату управления LPC134x:

Для конфигурирования модуля используются сделующие команды:

  1. AT - команда проверки модуля и доступности конфигурирования через AT-команды. В ответ модуль должен вернуть OK.
  2. AT+BAUDx - установка скорости, где x - код скорости из таблицы:
    ЗначениеСкорость (бод)
    11200
    22400
    34800
    49600
    519200
    638400
    757600
    8115200
    9230400
  3. AT+NAMEname - изменение имени устройства, где name - новое имя. Имя по умолчанию linvor.
  4. AT+PINpass - изменение пароля (PIN-кода), где pass - новый пароль. Пароль по умолчанию 1234.

Команды требуется посылать по интерфейсу UART, когда Bluetooth не активен, иначе модуль не воспримет команды и передаст их по воздуху хосту. Скорость по-умолчанию 9600, хотя должен работать Autobaund (автоподстройка скорости), но это не проверял. Время выполнения команды до 1 секунды, пока не придет ответа, лучше ничего посылать нельзя. Что не маловажно, эти настройки энергонезависимы.

Так же есть статьи о программировании непосредственно самих модулей, это очень интересная опция, в отдельных случаях можно вообще построить целую систему на таком модуле, не прибегая к помощи отдельного микроконтроллера.

А вот и сам модуль на хост-компьютере:

Вариант использования

Сброс на компьютер полетной информации:

Ссылки

Original: http://igorkov.org/hw-bthc05,
Author: igorkov