Arduino CC2540
тел. +7(499)347-04-82
Описание Arduino CC2540
Отличный выбор! CC2540 от Texas Instruments — это очень популярный чип для создания Bluetooth Low Energy (BLE) устройств. Однако важно сразу уточнить: Arduino как бренд не выпускала плат на базе чипа CC2540.
CC2540 — это самостоятельный микроконтроллер с радиочастью BLE, который использовался сторонними производителями для создания совместимых с экосистемой Arduino модулей и плат. Самые известные из них — это HM-10 и его клоны.
Вот подробное описание, характеристики и совместимость.
Описание и роль в экосистеме Arduino
CC2540 — это система-на-кристалле (SoC) от Texas Instruments, которая сочетает в себе высокопроизводительный микроконтроллер и полноценный радиопередатчик, соответствующий стандарту Bluetooth 4.0 (Low Energy). Его ключевая особенность — низкое энергопотребление, что делает его идеальным для батарейных устройств: носимой электроники, датчиков, биконов, пультов ДУ.
В мире Arduino он чаще всего встречается в виде готового serial-модуля (например, HM-10). Такой модуль берет на себя всю сложную работу со стеком протоколов BLE, а с основной платой Arduino (Uno, Nano, Mega и т.д.) общается по простому UART-интерфейсу (через выводы RX/TX), используя AT-команды. Это позволяет легко добавить BLE-функциональность практически в любой проект Arduino, не углубляясь в программирование самого CC2540.
Технические характеристики чипа CC2540
- Ядро: 8051 (8-бит, частота 32 МГц).
- Память:
- Flash-память: 256 КБ (для кода пользователя и профилей BLE).
- ОЗУ (RAM): 8 КБ.
- Радиочасть:
- Стандарт: Bluetooth 4.0 / BLE (Single Mode).
- Частота: 2.4 ГГц ISM Band.
- Скорость передачи данных: До 1 Мбит/с (эффективная скорость через UART обычно 9600 бод и выше).
- Дальность: До ~100 метров на открытом пространстве (зависит от модуля и антенны).
- Периферия и интерфейсы:
- ЦАП (DAC): 1 канал, 8-бит.
- АЦП (ADC): 1 канал, 12-бит, 8 входов.
- Таймеры: 2 таймера 16-бит, 1 таймер 8-бит.
- Интерфейсы: 2 полноценных UART (Serial), I2C, SPI, USB (только для CC2541).
- GPIO: 21 линия ввода/вывода общего назначения.
- Напряжение питания: 2.0В — 3.6В (типично 3.3В).
- Потребление:
- Активный режим (радио): ~25 мА.
- Режим сна (с таймером): ~1 мА.
- Глубокий сон: < 1 мкА.
Парт-номера и совместимые модели модулей
Чип CC2540 имеет несколько вариантов исполнения, отличающихся объемом памяти и интерфейсами:
- CC2540F256 — основная версия с 256 КБ Flash.
- CC2540F128 — версия с 128 КБ Flash.
- CC2541 — версия с поддержкой USB, что упрощает создание BLE-донглов.
Готовые модули на базе CC2540 (которые используют с Arduino):
- HM-10 (или BT-05, JDY-08) — самый популярный и распространенный модуль. Имеет 6 выводов, общается по UART (9600 бод по умолчанию).
- Ключевая особенность: Поддерживает как центральный (Central), так и периферийный (Peripheral) режим, что позволяет двум таким модулям соединяться друг с другом.
- HM-11 — обновленная версия HM-10 с улучшенной стабильностью и поддержкой более новых версий прошивки BLE.
- CC41-A / AT-09 — аналог HM-10, часто маркируется как поддерживающий Bluetooth 4.0.
- BLE Mini от RedBearLab — компактный модуль, который можно было программировать через Arduino IDE с использованием специальной платы-адаптера (Shield).
Совместимые модели Arduino
Модули CC2540 (типа HM-10) совместимы с ЛЮБОЙ платой Arduino, имеющей аппаратный или программный UART:
- Arduino Uno, Leonardo, Mega, Micro — подключение через аппаратные Serial-порты (выводы 0-RX и 1-TX). На Uno для отладки используют SoftwareSerial для модуля BLE, чтобы не занимать основной порт для монитора.
- Arduino Nano, Pro Mini — идеально подходят из-за компактного размера и наличия Serial.
- ESP8266 (NodeMCU, Wemos D1) и ESP32 — хотя это самостоятельные платформы, они также отлично работают с HM-10 через UART. ESP32, кстати, имеет встроенный BLE, что делает внешний модуль избыточным.
- Платы на базе ARM (Arduino Due, Zero, MKR) — совместимы, но требуют согласования уровней напряжения (3.3В).
Как подключить и использовать (кратко)
- Питание: Подать 3.3В на модуль от Arduino (вывод
3.3V). НИКОГДА не используйте 5В! - Земля (GND): Соединить с
GNDArduino. - Данные:
- TX модуля -> RX Arduino (например, цифровой пин D2, если используете SoftwareSerial).
- RX модуля -> TX Arduino (например, цифровой пин D3).
- Программирование: В скетче Arduino используется библиотека
SoftwareSerialили стандартныйSerialдля отправки AT-команд и обмена данными.
Пример кода для инициализации через SoftwareSerial:
#include <SoftwareSerial.h>
SoftwareSerial BLEserial(2, 3); // RX, TX (подключены к TX, RX модуля соответственно)
void setup() {
Serial.begin(9600); // для монитора порта
BLEserial.begin(9600); // скорость по умолчанию для HM-10
BLEserial.println("AT+NAMEMyArduino"); // Команда сменить имя устройства
}
void loop() {
if (BLEserial.available()) {
Serial.write(BLEserial.read());
}
if (Serial.available()) {
BLEserial.write(Serial.read());
}
}
Важная альтернатива
Если вы только начинаете проект с BLE и Arduino, рассмотрите более современные варианты:
- ESP32: Имеет встроенный Bluetooth Classic и BLE, гораздо более мощное ядро, Wi-Fi и стоит сопоставимо с Arduino Nano + модулем HM-10.
- Arduino Nano 33 BLE / Nano 33 BLE Sense: Официальные платы Arduino на базе чипа nRF52840 от Nordic Semiconductor. Это современный, мощный ARM-микроконтроллер с BLE 5.0, полностью программируемый из Arduino IDE.
Итог: CC2540 в лице модулей HM-10 — это проверенное, простое и недорогое решение для добавления BLE-связи в классические проекты на Arduino (Uno, Nano). Для новых проектов часто целесообразнее смотреть в сторону ESP32 или Arduino Nano 33 BLE.