CC2652R Hardware Design

В процессе проектирования схем для CC2652R и изучения референс-мануалов и апноутов, у меня скопилось много записей по Hardware Design и я решил оформить эти записи в одну статью, чтобы помочь другим и себе, если забуду, быстро разобраться в нюансах аппаратной конфигурации микроконтроллера.

Вступление

Те, кто впервые сталкиваются с TI и их номенклатурой беспроводных микроконтроллеров, по началу могут запутаться в их характеристиках, семействах и как использовать тот или иной чип. В документации TI есть очень удобная таблица, которая описывает все актуальные на данный момент решения и чем они отличаются друг от друга:

cc2652 device family

В таблице можно увидеть и CC2652R, тот МК, с которым работаю я. У него есть несколько модификаций. CC2652RB — МК, которому не нужен отдельный кварц на 48 МГц, CC2652RP — имеет встроенный усилитель мощности на 20 dBm.

В первой статье я уже описывал более-менее все характеристики CC2652R, отдельно нашел еще вот такую блок-схему из референс-мануала, которая иллюстрирует написанное мной более наглядно. Также описание данной схемы, можно найти на сайте Компэла и в их вебинаре.

cc2652 блок схема

Описание выводов CC2652R

Первым делом я отрисовал УГО в Kicad (найти его можно в моем репозитории компонентов), разделив его на две части следующим образом. Основная часть:

cc2652 kicad

и порты ввода / вывода:

cc2652 kicad

DIO_23DIO_30 (36 — 43) имеют возможность ввода аналоговых сигналов. АЦП 12-битный на 8 каналов.

DIO_5 (10), DIO_6 (11), DIO_7 (12), JTAG_TMSC (24), DIO_16 (26), DIO_17 (27) маркируются как high-drive capability и рассчитаны на больший ток, чем обычные порты ввода / вывода.

DCDC_SW (33) выход внутреннего DC/DC конвертера.

DCOUPL (23) служит для развязки внутреннего регулируемого цифрового источника питания 1.27 В. От этого вывода нельзя питать другие элементы схемы.

JTAG_TMSC (24) вывод отладчика.

JTAG_TCKC (25) вывод отладчика.

DIO_16 (26) вывод отладчика JTAG_TDO (опционально).

DIO_17 (27) вывод отладчика JTAG_TDI (опционально).

RESET_N (35) вход сброса, активный уровень — низкий, не имеет внутреннего подтягивающего резистора как на STM32!

VDDR (45) и VDDR_RF (48) входы питания, должны быть запитаны от внутреннего DC/DC конвертера или внутреннего LDO по следующей схеме:

cc2652 питание

Индуктивность L1 и конденсатор C12 22u необходимо располагать как можно ближе к выводу 33. Если выход DCDC_SW (33) не используется, оставить не подключенным. В этом случае индуктивность между ним и VDDR можно убрать, но конденсатор 22u необходимо оставить.

VDDS (44) основной вывод питания микросхемы, от 1.8 В до 3.8 В.

VDDS2 (13), VDDS3 (22) выводы питания DIO.

VDDS_DCDC (34) питается от DC/DC конвертера, требуется подключать к VDDS, т.е. основному питанию микроконтроллера.

Последние 4 вывода соединяются вместе и запитываются следующим образом:

cc2652 питание

VSS (49) вывод ground pad под микросхемой, подключается к земле.

X48M_N (46) и X48M_P (47) входы кварцевого резонатора 48 МГц.

X32K_Q1 (3) и X32K_Q2 (4) входы кварцевого резонатора 32 кГц, если не используется, то оставляются не подключенными.

Неиспользуемые DIO рекомендуется оставлять без подключения.

Спросите, где остальная периферия, где UART, SPI, таймеры? А как оказалось, цифровая периферия CC26x2 может быть присвоена любому GPIO, что просто невероятно удобно. Нет необходимости, как в STM32 смотреть, где какой вывод и париться, что занял пины SPI1, включив сразу 2 UART и т.п. Назначаешь себе UART0 на любые выводы микроконтроллера и готово!

Референсная схема CC2652R

Теперь хочу обратиться к апноуту CC13xx CC26xx Hardware Configuration and PCB Design и извлечь из него как можно больше информации по Hardware Design для CC2652R, но описав ее сжато в рамках только этой статьи.

Когда проектируешь свою печатную плату необходимо следовать референсному дизайну максимально точно, насколько это возможно. Для микроконтроллера CC2652R такой платой является CC226x2REM-7ID. Ее описанию я и старался следовать в своей схеме (кликабельно):

cc2652 схема устройства

RF Front-end

RF front-end может быть в одном из двух режимов: несимметричный и дифференциальный. Установка производится командой CMD_RADIO_SETUP:

  • Config.frontEndMode = 0x00 : Дифференциальный режим;
  • Config.frontEndMode = 0x01 : Несимметричный режим RFP;
  • Config.frontEndMode = 0x02 : Несимметричный режим RFN;

Несимметричный режим рекомендуется, когда не нужна максимальная выходная мощность, а нужна мощность около 0 dBm. Референсы на все режимы включения можно найти по ссылке в категории Design Files, где X — External Bias, I — Internal Bias, S — Single Ended, D — Differential.

48 MHz кварцевый резонатор

Нужен для тактирования микроконтроллера. Подробные рекомендации по выбору конденсаторов можно найти в разделе 6.4 документа.

32 kHz кварцевый резонатор

Опционален, вместо него можно использовать внутренний RC генератора на 32 кГц, что я и планирую сделать в своем устройстве. Нужен, когда требуется уменьшить потребление или для протоколов синхронизации.

Balun

Balun это часть схемы, которая преобразует дифференциальный сигнал в несимметричный. Имеет сдвиг фазы ±90° с помощью low-pass и high-pass фильтров. Если используется только один RF вывод, то balun не нужен, только фильтр до антенны.

Фильтр

LC-фильтр между balun и антенной необходим для подавления гармоник и согласования импедансов.

Антенна

CC2652R однодиапазонный микроконтроллер, поэтому в референс-дизайне используется Single-Band антенна на 2.4 ГГц. Референс-дизайн антенны подробно рассмотрен в предыдущей статье.

В целом, по антеннам у TI доступно 2 документа: Antenna Selection Quick Guide и Antenna Selection Guide. Также есть дополнительный документ CC-Antenna-DK2 and Antenna Measurements Summary, в котором есть вся исчерпывающая информация по антеннам.

Основное внимание следует уделить согласованию импедансов, для этого TI предлагает цепь П-фильтра рядом с антенной:

согласование антенны cc2652 zigbee

В данной схеме элемент ANT2 ставится всегда, даже когда антенна идеально согласована и обычно равно 0 Ом.

Bootloader выводы

Загрузчик может загружаться либо через UART, либо через 4-проводной SSI интерфейс. SSI0 более продвинутый интерфейс, нежели UART, но требует больше выводов. Для LAUNCHXL-CC26x2R1 используются следующие выводы:

UART0 RXВход с подтяжкой к питаниюDIO_2
UART0 TXВыход без подтяжекDIO_3
SSI0 CLKВход с подтяжкой к питаниюDIO_10
SSI0 FSSВход с подтяжкой к питаниюDIO_11
SSI0 RXВход с подтяжкой к питаниюDIO_9
SSI0 TXВыход без подтяжекDIO_8

JTAG отладчик

Подключение отладчика осуществляется к следующим выводам микросхемы:

JTAG_TMSC (24) вывод отладчика.
JTAG_TCKC (25) вывод отладчика.
DIO_16 (26) вывод отладчика JTAG_TDO (опционально).
DIO_17 (27) вывод отладчика JTAG_TDI (опционально).
RESET_N (35)
VDDS и VSS

Референс-дизайн печатной платы

Balun

Основная задача разместить его как можно более симметрично относительно выводов RF микроконтроллера. Как тут:

cc2652 balun

LC-фильтр

Лучший дизайн LC фильтра после balun’а показан ниже:

cc2652 lc фильтр

Самый нежелательный вариант выглядит следующим образом:

cc2652 lc фильтр

Развязывающие конденсаторы

Основные правила их размещения на печатной плате:

  • Для лучшего результата размещайте конденсаторы в том же слое, что и активный компонент;
  • Подводите питание сперва к конденсатору и уже потом к активному компоненту;
  • Каждый конденсатор должен иметь свое переходное отверстие к земле;
  • Размещать конденсатор надо как можно ближе к выводу питания активного компонента;
  • Путь прохождения обратного тока между конденсатором и микросхемой должен быть как можно короче и прямее, для наименьшего импеданса;

DC/DC регулятор

Компоненты регулятора должны быть как можно ближе к выводу DCDC_SW как показано на рисунке ниже:

cc2652 питание

П-фильтр антенны

Согласующий фильтр следует располагать как можно ближе к точке запитывания антенны.

Линии передачи

Должны быть как можно короче и иметь импеданс 50 Ом, TXLine утилита, которая позволяет рассчитать импеданс длинных линий.

Симуляция

Если дизайн не соответствует референсному, то следует произвести симуляцию в Advanced Design System (ADS). Данный пакет программ проприетарен и стоит денег, если знаете open-source аналог напишите, пожалуйста, в комментариях.

Конфигурация питания

VDDS основной домен питания микроконтроллера 1.8-3.8 В, это то напряжение, которое нужно подать от внешнего источника питания. Для более наглядного представления вставлю схему из документации:

cc2652 питание

VDDR домен питания, который требуется запитать от внутреннего DC/DC или от внутреннего Global LDO 1.68 В или 1.95 В в режиме boost.

DCOUPL требует подключения внешнего конденсатора 1 мкФ для внутреннего LDO 1.28 В.

Микроконтроллер автоматически переключается между Global LDO и DC/DC, смотря что эффективнее, к примеру если VDDS падает ниже 2 В, то DC/DC не особо эффективен и МК переключается на питание от Global LDO.

Настройка CCFG для использования DC/DC конвертера:

#ifndef SET_CCFG_MODE_CONF_DCDC_RECHARGE
#define SET_CCFG_MODE_CONF_DCDC_RECHARGE	0x0	// Use the DC/DC during recharge in powerdown
// #define SET_CCFG_MODE_CONF_DCDC_RECHARGE 0x1	// Do not use the DC/DC during recharge in powerdown
#endif

#ifndef SET_CCFG_MODE_CONF_DCDC_ACTIVE
#define SET_CCFG_MODE_CONF_DCDC_ACTIVE		0x0 // Use the DC/DC during active mode
// #define SET_CCFG_MODE_CONF_DCDC_ACTIVE	0x1 // Do not use the DC/DC during active mode
#endif

Для уменьшения стоимости и размера печатной платы можно VDDR запитать от внутреннего Global LDO, убрав DC/DC индуктивность, однако емкость 22мкФ рядом с VDDR по прежнему нужна. Cbulk VDDS расположить рядом с пином VDDS, а не VDDS_DCDC. DCDC_SW вывод оставить не подключенным.

Настройка CCFG для использования внутреннего Global LDO:

#ifndef SET_CCFG_MODE_CONF_DCDC_RECHARGE
// #define SET_CCFG_MODE_CONF_DCDC_RECHARGE	0x0	// Use the DC/DC during recharge in powerdown
#define SET_CCFG_MODE_CONF_DCDC_RECHARGE 0x1	// Do not use the DC/DC during recharge in powerdown
#endif

#ifndef SET_CCFG_MODE_CONF_DCDC_ACTIVE
// #define SET_CCFG_MODE_CONF_DCDC_ACTIVE		0x0 // Use the DC/DC during active mode
#define SET_CCFG_MODE_CONF_DCDC_ACTIVE	0x1 // Do not use the DC/DC during active mode
#endif

Есть еще режим использования внешнего регулятора напряжения, описан в пункте 9.4, подробно на нем останавливаться не буду, статья, итак, уже довольно большая получилась.

На этом пока все, скоро будут еще статьи, следите за анонсами на моем канале.

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

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