Пользователь
0,0
рейтинг
29 июля 2011 в 14:48

Модуль Bluetooth HC-04 на чипе BC417143B компании CSR

Компания CSR (Cambridge Silicon Radio) выпускает специальные чипы для устройств BlueTooth. Чипы судя по всему довольно недорогие, потому что господа китайцы предлагают миниатюрные (размером несколько больше симкарты) платки Bluetooth HC-04 на основе чипа BC417143B (семейство BlueCore4, см. [1]), которые в России можно купить всего лишь за 6.6 доллара (через dealextreme.com, см. [2] и [3]).

image

По умолчанию в память FLASH платки HC-04 записано ПО, которое позволяет связать по радио Bluetooth любой наладонник (или телефон, ноутбук и т. п.) со встраиваемой системой на основе микроконтроллера (робот, плата Arduino, любое устройство на микроконтроллере, имеющее TTL-порт UART RS-232). С помощью пакета CSR CASIRA BLUELAB SDK (в котором есть рабочие примеры программ Bluetooth) можно самому перепрограммировать модуль HC-04 и создавать свои собственные устройства Bluetooth. Программатор и полноценный аппаратный отладчик для модуля можно легко сделать самому, подключается к компьютеру он через порт LPT (см. [4]). В предлагаемой статье краткое описание инструментария разработки для чипов семейства BlueCore компании CSR, которое можно использовать для быстрого начала написания своих программ для модуля HC-04.

Подробно описывать технические характеристики модуля HC-04 не буду, так как все можно узнать по ссылкам с сайта dealextreme [2]. Напишу только о самом интересном. На борту у модуля стоит чип памяти на 1 мегабайт. Там записано управляющее firmware и все настройки (подробнее далее). На внешние 34 контакта модуля выведены:
— аппаратный UART, сигналы TXD, RXD, CTS и RTS.
— последовательный порт PCM (для цифрового ввода/вывода звука).
— два аналоговых входа/выхода AIO.
— ножка сброса RESET (её можно никуда не подключать).
— вход напряжения питания +3.3 вольта, ток потребления максимум 35 мА.
— интерфейс USB.
— интерфейс SPI, через который прошивается firmware и происходит отладка.
— 12 цифровых порта ввода/вывода PIO.

После подачи питания на модуль (3.3 вольта, максимум 35 мА) его можно обнаружить как беспроводное Bluetooth-устройство с профилем последовательного COM-порта. Т. е. на вашем наладоннике (телефоне, ноутбуке и проч.) появится последовательный порт, через который можно напрямую обмениваться данными через TTL-сигналы TX и RX стандартного порта RS-232. Firmware HC-04 позволяет AT-командами менять скорость передачи данных в широких пределах (от 1200 до 1382400 бод), причем изменения настройки скорости энергонезависимы, и сохраняются между выключениями питания. Таким образом, благодаря своим малым размерам и низкой цене (в России можно купить за $6.6) модуль HC-04 уже интересен как удобное готовое устройство для беспроводной связи.

Однако, как выяснилось, для модуля HC-04 можно самому писать программы, и записывать их в память чипа. Обзору этих возможностей посвящена основная часть статьи.

Инструментарий для разработки


Программатор придется делать самому, так как в России его купить невозможно, никто не продает. Радостно, что схема совсем простая, нет проблем собрать самому. Программатор представляет собой простейший интерфейс LPT SPI.

image

Через этот нехитрый программатор можно слить всю память FLASH модуля HC-04 в двоичные файлы (с помощью утилиты BlueFlash), посмотреть и отредактировать настройки модуля и программы (с помощью утилиты PSTool). Писать программы firmware и отлаживать (с помощью того же LPT SPI) можно в среде разработки xIDE. Имеются многочисленные примеры исходного кода различных устройств Bluetooth, необходимая документация на английском языке. Все эти возможности открываются на операционной системе Windows, если установить CSR CASIRA BLUELAB SDK (инсталляционный пакет занимает примерно 55 мегабайт, после установки занимает 310 мегабайт).

Примеры позволяют создавать устройства Bluetooth роли A (что-то типа мастера Bluetooth, которые сами находят устройства Bluetooth и подключаются к ним. Устройство роли A найти поиском беспроводных устройств невозможно) и роли B (slave устройства Bluetooth, которые можно найти поиском беспроводных устройств). С помощью примеров из CSR CASIRA BLUELAB SDK можно организовать обмен данными между двумя модулями HC-04, в этом случае одно должно реализовать роль A, а другое роль B (штатное firmware, которое записано в HC-04 на заводе, этого делать не позволяет, в нем реализована только роль B).

Хранилище настроек, Persistent Store


В память модуля HC-04 вместе с firmware записано множество различных параметров (такие, как адрес Bluetooth, имя устройства, выходная мощность передатчика и проч.), так называемых ключей. Это не просто особенность именно модуля HC-04, так принято в архитектуре BlueCore при программировании приложений. Все ключи могут быть просмотрены утилитой PSTool, при необходимости изменены (если Вы, конечно, понимаете, что делаете) и сохранены в файл *.psr, имеющий удобный текстовый формат. Дамп ключей делается довольно долго (у меня процесс занимал около 2 минут), при этом работа firmware не останавливается. Все ключи, хранящиеся в чипе, разделены по уровням хранения. Уровни привязаны к месту хранения настроек (FLASH, RAM, ROM), а также по времени создания (Implementation, Factory). Ключи каких уровней отображать, выбирают в меню Store (All (TIFR), Implementation Only (I), ROM Only ®, RAM Only (T), Factory Only (F), Not RAM (IFR)). Если один и тот же ключ одновременно определен на разных уровнях и с разными значениями, и выбрано показывать все уровни (All (TIFR)), то будет показано значение ключа, сохраненного на самом верхнем уровне. Значения ключей по умолчанию сохранены в ROM, самый низкий уровень. Ключи времени выполнения сохраняются на самом высоком уровне, Transient (RAM). Несколько уровней сразу обозначаются аббревиатурами из первых букв уровней, например IFR, TIFR. Подробнее об уровнях Persistent Store написано в документе blab-ug-008Pb_PSTool_User_Guide.pdf.

Библиотеки BlueCore и SDK компании CSR


В проектах примеров xIDE все тонкости скрыты далеко от глаз пользователя в библиотеках. Библиотеки делятся на 3 класса:
  • Foundation Libraries
  • Support Libraries
  • Profile Libraries
Foundation Libraries — основной функционал, низкоуровневая работа с аппаратурой. Поставляется только в бинарном виде, без исходного кода. Заголовочный файл для использования функций Foundation библиотеки — csr.h.

Support Libraries — обеспечивают поддержку соединений (RFCOMM, L2CAP и SCO). Заголовочные файлы, и файлы исходного кода находятся в папке C:\BlueLab\src\lib.

Profile Libraries — относятся к профилям BlueTooth. Профили – это что-то типа предназначения устройства Bluetooth (например, последовательный порт, аудиоустройство, источник и приемник файлов, интерфейс USB и т. д.). Заголовочные файлы, и файлы исходного кода находятся в папке C:\BlueLab\src\lib.

В чипе BlueCore имеется много разных интерфейсов, источников и приемников данных (Kalimba, PCM, SCO, RFCOMM, L2CAP, UART, Host, USB, HID, Region, File, Audio Notes), которые с помощью библиотек могут достаточно просто соединяться друг стругом и обмениваться данными через потоки (streams). Некоторые источники и приемники данных (Kalimba) относятся к ядрам BlueCore, имеющим на борту DSP. Чип BC417143B, установленный на платке HC-04, относится к семейству BlueCore4 и DSP у него нет. Подробности см. в документе CS-110275-UGP1_Implementing_Streams_in_BlueLab.pdf.

Для того, чтобы начать использовать библиотеку, нужно подключить директивой #include нужный .h файл и добавить в настройки проекта имя нужной библиотеки Project Properties -> Configuration Properties -> Build System -> Libraries — в поле ввода через запятую указаны имена нужных библиотек (без расширения файла). Библитеки можно пересобрать (процесс довольно долгий!) путем запуска ярлычков BlueLab 41 -> Rebuild -> VM libraries и DSP libraries.

Краткое описание xIDE и простейшего приложения


Проекты устройств BlueTooth, которые может найти хост через поиск, имеют суффикс _b (например spp_dev_b). Проекты, которые сами работают как хост, т. е. могут подключить к себе другие устройства BlueTooth, имеют суффикс _a (например spp_dev_a). Устройства с суффиксом _a нельзя найти хостом через поиск BlueTooth устройств.

Чтобы запустить проект через xIDE, нужно зайти в папку проекта (все проекты демонстрационных примеров находятся в папке C:\BlueLab41\apps\examples) и двойным щелчком запустить файл *.xiw (здесь хранятся настройки Workspace, настройки проекта хранятся в файле *.xip). Автоматически запустится среда разработки xIDE, в которой можно просматривать исходный код проекта и запустить код на компиляцию и отладку. При запуске отладки через LPT SPI автоматически считывается тип чипа, и проект компилируется под него. После компиляции программа автоматически заливается во внешнюю FLASH-память, подключенную к процессору CSR (напомню, что для модулей BlueTooth HC-04 это процессор BC417143B-IQN-E4 (BlueCore4-External device)), и программа запускается на выполнение. После останова отладки, если выключить и снова включить питание, то чип окажется перезаписанным новой скомпилированной программой, которая запустится и начнет работу. Грузится обычный проект а память чипа около минуты (а что Вы хотели от порта LPT?).

Можно самому с нуля написать для HC-04 простейшее приложение, мигающее светодиодом. Для этого нужно запустить xIDE, выбрать Project -> New..., указать тип проекта Bluelab –> Blank VM Project, ввести любое имя проекта (например MyFirstBluelab), выбрать папку для месторасположения проекта (все сделано по аналогии, как в Visual Studio) и нажать OK. Затем нужно создать файл модуля main.c, и ввести туда текст:

#include <message.h><br>#include <pio.h><br><br>#define LED_1 (1<<1)<br><br>typedef struct<br>{<br>    TaskData task;<br>    uint16 change;<br>} ToggleTask;<br><br>static void MyHandler (Task t, MessageId id, Message payload)<br>{<br>    uint16 change = ((ToggleTask *) t)-> change;<br>    PioSet(change, PioGet() ^ change);<br>    MessageSendLater (t, 0, 0, 500);<br>}<br><br>static ToggleTask toggle = { { MyHandler }, LED_1 };<br><br>int main (void)<br>{<br>    PioSetDir (LED_1, ~0);<br>    MessageSend(&toggle.task, 0, 0);<br>    MessageLoop();<br>    return 0;<br>}
Коротко описание листинга (подробности см. в файле CS-110344-UGP2_WritingBlueCoreApplication.pdf):
— в блоке include подключаются заголовки для поддержки сообщений и портов ввода/вывода.
— оператор define задает ножку светодиода, которой будем управлять.
— структура ToggleTask задает тип для хранилища данных задачи приложения toggle.
— подпрограмма MyHandler – обработчик сообщения, который выполняет управление светодиодом. Алгоритм очень простой. Из переданной структуры задачи t считывается значение параметра change. Там находится маска светодиода LED_1, и параметр change здесь применен просто как демонстрация хранения и передачи данных запущенной задачи. Вызовы процедур PioSet и PioGet обеспечивают установку светодиода в противоположное состояние (если он был выключен, то включается, и наоборот), значение переменной change используется как маска. Процедура MessageSendLater отправляет новое сообщение задаче t через 500 мс.
— декларация статической переменной toggle выделяет память под переменную структуры ToggleTask и присваивает значения её полям task и change.
— в коде процедуры main PioSetDir настраивает PIO1 (LED_1) как выход.
— MessageSend отправляет первоначальное сообщение, которое получит обработчик MyHandler.
— вызов процедуры MessageLoop запускает доставку сообщений между задачами. В MessageLoop выполнение зацикливается, и до оператора return 0 управление никогда не доходит.

Теперь если нажать F7, то проект скомпилируется. Если нажать F5, то программа автоматически зальется в память чипа и запустится на выполнение (при условии, что у Вас подключены модуль LPT SPI и к нему подключен модуль HC-04), и светодиод на ножке PIO1 начнет мигать с частотой 1 Гц. При этом доступна полноценная отладка – по шагам, с точками останова, с просмотром переменных, памяти и регистров процессора. Точки останова ставятся в коде как обычно, щелчком мыши слева от текста кода (появляется коричневый кружок напротив строки, где задана точка останова) – также, как в Visual Studio. Подробнее про отладку можно прочитать в документе CS-101500-UGP5_BlueLab xIDEuser guide.pdf.

image

Общая структура приложения BlueLab


Приложение firmware основывается на задачах (task). Каждая задача выполняет определенную, возложенную на неё функцию. Все задачи выполняются как отдельные логические потоки, которые не блокируют друг друга. Планировщик задач не вытесняющий (not preemptive), поэтому важно, чтобы все обработчики сообщений выполнялись до завершения, и не зацикливались навсегда, иначе работа остальных задач нарушится. Задачи обмениваются друг с другом информацией через сообщения (message). Во все задачи, которые создает приложение, входит также особая задача верхнего уровня, так называемая задача приложения (application task). Эта задача отвечает на сообщения и управляет общим поведением приложения. Сложные приложения могут содержать несколько application task.

Сообщения (messages) создаются и передаются в следующей форме:
Task t, MessageId id, Message payload

Task t указывает на получателя сообщения, это указатель на принимающую задачу, например &AppTask.
MessageId id идентифицирует сообщение. Принята следующая система нумерации сообщений:
— сообщение, которое задача отправляет сама себе, начинается с 0x00.
— системные сообщения начинаются с 0x8000.
— сообщения, отправленные задаче отдельной библиотекой профиля, начинается с базы 0x7000, и соощения библиотеки SPP начинаются с 0x6f00.

Message payload — полезная нагрузка (данные), передаваемая в сообщении. Иногда в сообщении нет полезной нагрузки, когда достаточно только идентификатора сообщения. В этом случае Message payload равна NULL.

Имеется набор функций для упрощения отправки сообщений, см. message.h и соответствующую документацию. Обработчик сообщений для каждой задачи должен обработать все адресованные ему сообщения. Обычной практикой разработчика является разработка кода обработки сообщений, которые принимает задача приложения (application task). Не нужно писать обработчики для задач профиля (profile tasks) и задач поддержки (support tasks), инициализированных из библиотек BlueLab или SDK. Обработчики этих задач уже встроены в библиотеки и выбираются после вызова соответствующей функции Init. Приложение application task должно обработать сообщения, поступившие из библиотек, которые оно инициализировало. Таблица системных сообщений приведена в файле CS-110344-UGP2_WritingBlueCoreApplication.pdf, Appendix A System Messages. Таблица баз (первый байт значения ID сообщения) сообщений библиотек приведена в том же файле, Appendix B Library Message Bases. Во время отладки через дебаггер (LPT SPI или USB SPI) сообщения появляются в окне Output, закладка Messages.

Задачи и сообщения позволяют разработчику приложения разбить весь нужный функционал на отдельные модули, работающие как разные задачи, при этом нужно обеспечить обмен сообщениями между задачами. Все сообщения ставятся в очередь и обрабатываются (передаются) в порядке поступления. Планировщик смотрит на первое сообщение в очереди и по если это нужно, то передает это сообщение как параметры соответствующему обработчику задачи. После того, как сообщение передано обработчику, функция MessageLoop освобождает payload переданного сообщения и переходит к обработке следующего сообщения в очереди, или ждет появления в очереди нового сообщения.

Можно выводить отладочные сообщения из кода программы оператором printf. В этом случае в окне Output открывается закладка Print Channel 0, и туда впечатывается вывод printf. Вывод printf работает в реальном времени во время работы firmware через дебаггер на LPT SPI. В реальном приложении все операторы printf должны быть убраны, иначе приложение без отладчика повиснет и не будет работать (из-за переполнения стека). Для удаления отладочного вывода применяют специальный токен времени компиляции DEBUG_PRINT_ENABLED и операторы условной компиляции #ifdef.
#define DEBUG_PRINT_ENABLED 1 //разрешение вывода printf

DEBUG_PRINT_ENABLED можно также определить в свойствах проекта, Build System -> Define symbols. Пример использования DEBUG_PRINT_ENABLED имеется в проектах примеров приложений C:\BlueLab41\apps\examples\.

Есть несколько проблем, с которыми пришлось столкнуться при экспериментировании с xIDE. Если программа в чип прошивается, но отладка запускаться не хочет с ошибкой «The app file read from disk appears to be invalid.», то это может произойти, когда до папки проекта сложный путь, имеющий в составе пробелы и/или русские буквы. Например, Ваш проект размещается в папке c:\Documents and Settings\User\Admin\Мои документы\LEDFlashing\. Поменяйте размещение проекта на более простое, например c:\temp\LEDFlashing, и отладчик запустится нормально. С русификацией у xIDE есть определенные проблемы — текст, сохраненный в коде на русском языке, при повторном открытии отображается с кракозябрами, поэтому писать комментарии на русском языке в коде не получится. Иногда сильно мешает компиляции антивирус Касперского (процесс проходит очень медленно). Целесообразно настроить исключение проверки объектов на путь C:\BlueLab41\tools\*.exe. Настройки вступят в силу почему-то только после перезагрузки Windows.

image

Словарик


HCI Host Controller Interface
LC Link Controller
xIDE среда программирования для процессоров BlueCore от компании CSR
VM Virtual Machine — насколько я понял, это выполнение функций процессора хоста на встроенном RISC-микропроцессоре. Есть Classic VM, и есть Native VM, различающиеся архитектурой и скоростью выполнения. См. CS-122636-AN-1classicvsNative.pdf.
VM API программный интерфейс приложений, не относящийся к DSP.
BlueCore название линейки чипов Bluetooth компании CSR. В платке HC-04 применяется чип BlueCore4.
payload полезная нагрузка. В контексте передачи сообщений — данные, переданные в сообщении.
application task задача приложения — обязательный элемент любой программы firmware BlueCore.
preemptive, pre-emptive в данном контексте вытесняющая многозадачность. Для каждой задачи выделяется лимитирванный промежуток времени выполнения, что гарантирует невозможность блокировки выполнения всех задач, если одна из задач заблокируется (например, войдет в бесконечный цикл).
not preemptive в данном контексте означает многозадачность, когда задачи выполняются друг за другом, и каждая задача выполняется по порядку от начала до конца. В этом случае блокировка в одной задаче может остановить выполнение всех задач. Именно такой сценарий выполнения задач используется в библиотеках BlueCore и SDK компании CSR.
L2CAP Logical Link Control and Adaptation Protocol
Persistent Store хранилище данных установок в виде записей (ключей)
TIFR Transient (RAM), Implementation, Factory, ROM — места размещения Persistent Store, означающие все возможные варианты размещения. Ключи, установленные во время производства изделия, находятся в областях Factory и Implementation, ключи, которые образуются при работе изделия, размещаются в Transient (RAM).
IFR Implementation, Factory, ROM — места размещения Persistent Store, не использующие RAM.
BCSP BlueCore Serial Protocol — протокол, через который общаются с чипом BlueCore все средства отладки (на физическом уровне это происходит через интерфейс SPI чипа BlueCore).
Kalimba DSP — в некоторых чипах BlueCore (BlueCore3 и BlueCore5) имеется DSP. К сожалению, в процессоре BC417143B модуля HC-04 отсутствует DSP. Для работы с Kalimba DSP имеются специальное API и соответствующая библиотека.

Ссылки


1. Общее описание чипа BlueCore4-External device на сайте компании CSR.
2. Модуль Bluetooth HC-04 на сайте Dealextreme.
3. Как покупать на dealextreme.
4. Описание программатора и отладчика LPT SPI, ссылки на документацию, пакет CSR CASIRA BLUELAB SDK, прошивки программного обеспечения модуля HC-04.
5. Исходный код проекта xIDE для модуля HC-04, мигающего светодиодом на порте PIO1.
@Aleshach
карма
46,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (28)

  • +1
    Вкусная железка, как раз искал подобные модули.
    Спасибо!
  • 0
    Радует динамика цен у китаез. Две недели назад эти модули стоили 7.2 бакса.
    • 0
      Если заказывать 3+, то выходит по 5,7 бакса, правда трек номера не дают. Как раз два дня назад заказал, а тут и статья на Хабре подоспела.
      Правда там пишут, что партии разные бывают — могут попасться плохие, без АТ команд — с кривой по умолчанию прошивкой.
      • 0
        Кривая прошивка — пустяки, можно ведь легко перезалить. Главное — чтобы спаяно было хорошо.
      • 0
        трек номер можно купить за буквально $2-3
        • 0
          За 1,7 если быть точным — при заказе 3+ — экономия от опции «булкрейт» как раз покрывается расходом на докупку трек номера. Хитрые китайцы. Вот при заказе десяточка — тогда да, уже есть смысл.
  • 0
    Кстати вопрос — будет ли работать отладка через конвертеры USB — LPT, PCI — LPT и тому подобные? А то сейчас с простым ЛПТ проблемы — его нигде нет, а через конвертеры к примеру тот же принтер или станок с ЧПУ уже не работают.
    • +1
      И еще — пробовали ли подцеплять к Андройду — есть ли в нем профиль последовательного порта?
      • 0
        Был бы Андроид, попробовал бы. А так у меня только HTC с Windows Mobile 6.5 и на десктопе Windows XP SP3. На них все работает. Андроид вроде посовременнее, чем эти два динозавра, так что и на Андроиде все должно быть тип-топ. Иначе обидно за Google.

        Насчет конвертеров USB-LPT вопрос конечно интересный, сам бы хотел получить ответ. Еще интереснее было бы передрать ихний девайс USB-SPI (DEV-SYS-1808-1A).
        image
        Походу он должен быть совсем тупой, чистый мост, и повторить его на библиотеке LUFA особых проблем не составит. Однако чтобы его повторить, нужно знать хотя бы VID и PID этого устройства, прочитать дескрипторы, понять что это за USB устройство (HID, CDC, или кастомное что-то), и для пущей уверенности чутка заснифить протокол обмена.
        • 0
          Если все равно, чем делать SPI, то я бы посоветовал этот модуль:
          FT4232H_Mini_Module.pdf

          Недавно делал АПК на микросхеме входящей в его состав — как результат могу сказать, что работает эта микросхема отлично — позволяет получить с одного USB — четыре канала UART, SPI, JTAG, FIFO и т.д. Обещали I2C, но по результатам тестирования выяснил, что выход с открытым коллектором они эмулируют кмоп входом и выходом. Отключая выход когда надо. Как результат — работает это все очень хреново. По сути вообще не работает. Все остальные порты работают в соответствии с положенными им временными диаграммами.
          Если добавить к UART'ам конвертеры интерфейса, то можно получить RS422\485\IRDA.

          К микросхеме они дают все драйвера и библиотеки — нашему штатному программисту они понравились, только надо качать самый свежий.
    • 0
      через USB-LPT помоему ничего кроме принтеров не работает
      • 0
        Это все зависит от того, как программа на компьютере написана.
  • 0
    Как раз пару заказал на прошлой неделе. И не знал что их можно прошивать. Спасибо за статью.
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Забавно, можно сделать беспроводные колонки для прослушивания музыки.
    • 0
      Для колонок пожалуй батареек не напасетесь =). А вот беспроводные наушники очень даже да. При общем токе потребления порядка 20..25 мА они будут работать от простенького аккумуляторика на 900 мА/ч около 45 часов.
    • 0
      Можно даже беспроводный микрофон сделать, или беспроводную гарнитуру. Впрочем, многие Bluetooth гарнитуры наверняка работают на этих или подобных чипах.
  • –2
    Arduino попахивает…
  • 0
    Я наивно полагал, что раз 4-ка в названии, то и представляет он из себя BT 4.0 устройство. Посмотрел описание — 2.1. Жаль. На их же сайте нашел краткое описание CSR1000/CSR1001, но никаких подробностей, а тем более наличия в магазинах нет. «Будем искать» (с)
    • +1
      На страничке по ссылке, что Вы указали, внизу белым по синему написано про «подробности»:
      "Subject to approval, a datasheet can be made avaliable for this product via CSR Support".

      А что собственно хотели найти в магазинах? Кристаллы в корпусах BGA? Что Вы потом с ними будете делать, как паять, куда ставить?
  • 0
    А я для таких модулей плату развёл (http://www.lockdog.ru/?p=46), хотел отправить на завод, но вот недавно внёс изменения в схему: решил отказаться от микросхем- преобразователей уровней, в сторону обычных делителей напряжения — дешевле выйдет.
    • 0
      Если плату низко запаять, антенна будет слишком неэффективно работать, и дальность работы/скорость снизятся — у Вас фольга на плате мешает приему и передаче, экранируя радиосигнал.
      • 0
        Как я уже писал выше — я переразводил плату и в т.ч. убрал полигон земли, его достаточно убрать только в том месте, где антенна.
  • 0
    Добрый вечер, понимаю что статья уже, может, не так часто просматривается, но, всеже, спрошу. Подскажите, где и что можно почитать, чтобы влиться в тему микроконтроллеров, и так, чтобы хватило знаний сделать что-нибудь из данного модуля. Есть идея сделать простой датчик, который состоит из кнопки и модуля, если кнопка нажата то шлет 1 сигнал, если не нажата — 2ой сигнал. Но по части радио-техники и микроконтроллеров я новичек. Так же, если кто то знает, подскажите где можно купить хороший тонкий паяльник и компоненты для плат.
    з.ы. в гугл прошу не слать.
    Заранее благодарю за ответ
    • 0
      Попробую ответить на Ваши вопросы по порядку.

      1. "Подскажите, где и что можно почитать, чтобы влиться в тему микроконтроллеров, и так, чтобы хватило знаний сделать что-нибудь из данного модуля."
      Если Вы хотите что-то делать именно на этом модуле, то читать прежде всего нужно документацию, входящую в пакет CSR CASIRA BLUELAB SDK ссылка [4], установить себе эту систему программирования и начать осваивать SDK на основе имеющихся примеров. «Влиться в тему микроконтроллеров», «чтобы хватило знаний» — на такие вопросы ответить невозможно, поскольку тема очень широка, и никому неизвестно (наверно даже Вам), сколько у Вас знаний и терпения.

      2. "Есть идея сделать простой датчик, который состоит из кнопки и модуля, если кнопка нажата то шлет 1 сигнал, если не нажата — 2ой сигнал."
      Передавать информацию о нажатых кнопках можно с использованием Bluetooth-профиля последовательного порта. Например, при нажатии на кнопку 1 будет передаваться символ '1', а при нажатии на кнопку 2 будет передаваться символ '2'.

      3. "… где можно купить хороший тонкий паяльник и компоненты для плат".
      Запчасти и паяльник целесообразно купить на любом радиорынке. Хороший и недорогой паяльный инструмент и расходники есть в сети магазинов «Профи», где Вам даже подскажут, какой паяльник лучше выбрать для конкретной задачи. Если у Вас много денег, то можете купить все необходимое в «Чипе и Дипе».
  • 0
    Поделюсь некоторым опытом.
    1. USB-SPI работают только сертифицированные CSR, они от 300 у.е. и не продаются тут, про них можно сразу забыть. Только LPT.
    2. LPT + BlueLab + Windows 7 x64 работать не будут.
    Если встроенного LPT нет, брать USB-LPT или PCI-LPT с явно заявленной поддержкой EPP
    3. Под Windows 7 x64 получилось завести BlueLab, запустив его в виртуальной Windows XP, пробросив LPT порты в VMWare Workstation. VMWare не сможет пробросить порты если VMWare был установлен ДО появления в системе LPT порта Помогает только полная переустановка. Repair — нет.
    4. Проверяйте контакты. Лучше всего припаять, хотя у меня получилось и с вот такой девайсиной dl.dropbox.com/u/10867328/coffeeblue.jpg сделанной из термопластика
  • 0
    А никто не смотрел на вот этот модуль: dx.com/p/diy-bluetooth-v3-0-module-blue-169692?
    Он построен на новом чипе и поддерживает bt v3

    Но нигде не могу найти datasheet для модуля или хотя б описание распиновки :(
  • 0
    Сделал прошивку по управлению GPIO модуля командами через bluetooth serial port.
    Вопрос к автору статьи. Удалось ли сделать авторизацию с помощью пин-кода? Я запускаю заводские примеры, в которых явно прописан код 1234, но ноутбуку наплевать на пин. Он подключается и работает без него(менять пробовал). Хотя на просторах интернета находил прошивку HC05, в которой запрос пин-кода таки работает. Но это бинарник.
    И второй вопрос по поводу аналоговых входов. Подаю на них 3 вольта и плата крашится при попытке чтения. Пробую 1.5В — все работает (но возвращает не максимум 255). Плата же питается от 3.3В. В чем может быть дело?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.