Как перепрошить MLT-BT05, на базе CC2541 в HM-10

Модуль MLT-BT05 Bluetooth Low Energy (BLE) - клон HM-10Поскольку большинство модулей Bluetooth на базе CC2541 приобретаются в интернет-магазине AliExress, эти модули часто не являются оригинальными HM-10. В лучшем случае — это хорошая копия, которая принципиально не отличается от оригинала. Но в большинстве случаев эти модули полностью отличаются программным обеспечением, несмотря на то, что аппаратное обеспечение идентично. Одним из таких модулей Bluetooth является MLT-BT05.

Часто из-за программного обеспечения эти модули работают не так, как от них ожидают:

  • они имеют урезанный функционал;
  • AT-команды ограничены, а существующие не всегда работают должным образом;
  • но самой большой проблемой, из-за которой написана эта статья, является невозможность подключения со смартфонов Android или IOS.

В этой статье будет описано то, как перепрошить модули на базе CC2541 (MLT-BT05, HM-10, CC41-A, MLT-BT05, AT-09 и т.п.) для последующего беспроблемного использования.

Аппаратные средства

Как правило, вы должны купить «CC отладчик» от TI для прошивки CC2541 чипов, но также можно использовать Arduino в качестве программатора. Для прошивки MLT-BT05, AT-09 на базе CC2541 вам необходимо:

  1. Arduino (Arduino UNO, Arduino Pro Mini, Arduino Nano и т. д.);
  2. Преобразователь USB в TTL для подключения Arduino к ПК (в случае Arduino Pro Mini или аналогичного);
  3. Плата CC2541: HM-10, CC41-A, MLT-BT05, AT-09;
  4. Несколько проводков;
  5. Паяльник.

Программные средства

  1. Arduino IDE;
  2. CCLoader Arduino sketch;
  3. Программа CCloader для Windows;
  4. Прошивка HM-10.

Кроме Arduino IDE всё остальное можно скачать одним архивом с github по ссылке https://github.com/RedBearLab/CCLoader.

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - CCLoader

Подготовка CCLoader

После того, как вы скачали архив, вам необходимо распаковать его. Лучше всего это сделать на диске C:\, должно выглядеть так:

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - Распакованный архивВ папке Arduino находится скетч для Arduino (!), в Bin — прошивка, а в Windows — программа CCLoader.

Для того, чтобы не возникли проблемы во время прошивки, нужно скопировать содержимое папок Bin и Windows в одну общую. В моём случае это выглядит следующим образом:

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - Содержимое папки CCLoader-master

Шаги

Прошивка Arduino Uno

Вам необходимо загрузить скетч CCloader (C:\CCLoader-master\Arduino\CCLoader\CCLoader.ino) на свой Arduino, используя Arduino IDE.

  1. Откройте скетч с помощью Arduino IDE;
  2. Проверьте правильность параметров в меню Инструменты: плата, процессор, ком-порт;
  3. Загрузить скетч на Arduino.

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - Прошивка Arduino Uno

Подключение MLT-BT05/AT-09/HM-10 к Arduino

Теперь вам нужно подключить плату MLT-BT05/AT-09/HM-10 к Arduino следующим образом:

Схема Подключения MLT-BT05,AT-09,HM-10 к Arduino

Имя вывода CC2541 Arduino
DEBUG_CLOCK Pin 7 (P2_2) Pin 5
DEBUG_DATA Pin 8 (P2_1) Pin 6
RESET_N Pin 11 (RSTB) Pin 4
VCC 3.3 В 3.3 В
GND GND GND

Будьте осторожны, чип CC2541 не толерантен к 5 Вольтам, а напряжение на любом из цифровых выводов не должно превышать 3.9 В.
Если присутствует адаптер ZS-040, что содержит в себе стабилизатор напряжения на 3.3В, можете использовать 5 В Arduino для питания платы. Если вы используете 5 В arduino, вам нужен преобразователь уровней для всех трёх линий (DEBUG_CLOCK, DEBUG_DATA и RESET_N) или использовать модель Arduino на 3.3 В.

Делитель напряжения

Еще один способ с помощью которого можно понизить напряжение — это двунаправленный преобразователь логического уровня LLC (от «logic level converter», что значит «преобразователь логического уровня»). Эти устройства рекомендуется использовать при высокой скорости передачи данных (через последовательный порт, шину I2C и т.д.). Вы просто подключаете входные линии с высоким напряжением к контактам HV (от «high voltage», что значит «высокое напряжение»), а выходные линии с пониженным напряжением – к контактам LV (от «low voltage», что значит «низкое напряжение»). Преобразователь, показанный на картинке ниже, может работать с четырьмя каналами.

Двунаправленный преобразователь логического уровня (Logic Level Converter)В моём случае выгладит следующим образом:

Подключение MLT-BT05,AT-09,HM-10 к Arduino всё подключено на прямую, но так делать не рекомендуется.

Прошивка

Теперь все готово, вы можете записать прошивку HM-10 с помощью CCloader.exe или CCLoader_x86_64.exe.

Откройте командную строку и перейдите в папку, где находится CCloader.exe (cd /d C:/CCLoader-master);

Чтобы вывести справочную информацию (о том, как пользоваться), напишите и выполните эту команду в командной строке:

или

CC2541 в HM-10 - Справочная информация

Теперь напишите и выполните эту команду (Вы должны поместить файл прошивки .bin в тот же каталог, что и CCloader.exe):

где:

  • CCLoader_x86_64.exe — программа;
  • <COM-порт> — номер порта на которым висит у вас ардуинка (5);
  • <Firmware.bin> — прошивка (имя файла с расширением: CC2541hm10v540.bin);
  • <device> — тип используемой платы (0 — UNO, Pro Mini etc / 1 — Leonardo).

У меня команда выглядит следующим образом:

Программа CCLoader начнёт запись 512 байт данных. Если в течение 3 секунд нет ответа, нажмите «Ctrl + C» для выхода! И обратите внимание на:

  1. Связь между компьютером и Arduino;
  2. Связь между Arduino и CC2541;
  3. Является ли используемое вами устройство Leonardo или нет;
  4. Другие неожиданные ошибки.

Результат

Если всё идет по плану, появляется сообщение о том, что контроллер был успешно прошит, а на CC2541 установлена подлинная прошивка HM-10.

CC2541 в HM-10 - Результат прошивки

Проверка

После прошивки нужно проверить работоспособность модуля. Для взаимодействия с ним можно использовать Terminal 1.9b или монитор порта из Arduino IDE. По умолчанию у модуля скорость передачи данных 9600 бод, 8 бит данных, без бита четности (N — Not) с 1 стоп-битом. Если в программе терминал стоит галочка напротив CR & LF или NL & CR (возврат каретки и начало новой строки), то её надо снять, символы в командах указывать не нужно.

Модуль выходит в режим AT-команд сразу после того, как подали на него питание и не соединён с каким-то устройствов.

Для проверки связи с модулем можно использовать тест команду AT, на что модуль должен ответить OK. Получить имя устройства — AT+NAME?, значение по умолчанию: HMSoft.

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - Проверка

Связывание и подключение со смартфоном Android

С телефона находим bluetooth устройство по имени HMSoft.

Связывание и подключение HMSoft, HM-10 со смартфоном Android - Список устройств

Выбираем HMSoft и вводим PIN код «000000»

Связывание и подключение HMSoft, HM-10 со смартфоном Android - Пароль 000000

Через Serial Bluetooth Terminal отправляем сообщение с Android смартфона:

Связывание и подключение HMSoft, HM-10 со смартфоном Android - Отправка сообщений через Terminal

Получаем сообщения на компьютер в Terminal 1.9b:

Связывание и подключение HMSoft, HM-10 со смартфоном Android - Приём сообщений в Terminal

Материалы

How to flash genuine HM10 firmware on CC2541 (make genuine HM10 from CC41)
RedBearLab/CCLoader
Arduino:Хакинг/Как переключиться с 5-вольтовой логики на 3,3-вольтовую
Datasheet cc2541.pdf
JNHuaMao Technology Company Bluetooth4.0 BLE module Datasheet (bluetooth40_en.pdf)
AT-команды, конфигурием модуль BLE4.0 HM 10

Похожие записи

Комментарии 1

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *