Перетворення контролера в мережевий процесор: Як управляти CC1310 за допомогою АТ-команд

  1. Набір базових функцій EasyLink API
  2. Програмне забезпечення rfEasyLinkNp AT Network Processor Example
  3. Швидкий старт
  4. Опис AT-команд інтерфейсу EasyLink AT (AT API)
  5. Керуючі команди (AT Control Command)
  6. Відповіді на AT-команди (Сommand Responses)
  7. режими тестування
  8. Генерація безперервної несучої (Carrier Wave)
  9. Передавач для тесту контролю помилок пакетів (PER Tx)
  10. Приймач для тесту контролю помилок пакетів (PER Rx)
  11. Практична робота з АT-командами
  12. Висновок
  13. Мініатюрний Bluetooth-датчик прискорення і температури на базі CC2650
  14. Про компанію Texas Instruments

мікросхема   CC1310   виробництва Texas Instruments включає в себе мікроконтролер Cortex-M3 і приймач діапазонів нижче 1 ГГц, що дозволяє створювати на її базі закінчені пристрої з бездротовою передачею даних мікросхема CC1310 виробництва Texas Instruments включає в себе мікроконтролер Cortex-M3 і приймач діапазонів нижче 1 ГГц, що дозволяє створювати на її базі закінчені пристрої з бездротовою передачею даних. Для спрощення процесу розробки кінцевого виробу можна скористатися готовим програмним кодом, який перетворює CC1310 в мережевий процесор. Цей підхід особливо виправданий в тому випадку, коли потрібно додати радіоканал в уже існуючу систему зі своїм власним мікро контролером. Нова прошивка rfEasyLinkNp дозволяє вирішити цю задачу в короткий термін і з мінімумом інженерних зусиль.

Компанія Texas Instruments випустила нове програмне забезпечення rfEasyLinkNp для системи на кристалі CC1310, яке перетворює чіп в закінчений радиомодем, керований за допомогою AT-команд. Нове ПЗ позбавляє розробника від вивчення внутрішньої архітектури CC1310 і написання драйвера, який безпосередньо взаємодіє з внутрішніми ресурсами приймача - регістрами, FIFO і тому подібним. Програмне забезпечення rfEasyLinkNp перетворює CC1310 в мережевий процесор, тобто в мікросхему, яка повністю бере на себе всі завдання, пов'язані з бездротовою передачею даних. При цьому розробник системи може не розбиратися у внутрішніх вузлах CC1310, особливості формування пакетів, параметрах модуляції і так далі - все це приховано за інтерфейсом управління. Подібний підхід часто використовується виробниками радіомодулів. Для додавання бездротового протоколу досить ознайомитися з описом десятка AT-команд. Наприклад, для прийому даних основний контролер системи відправляє команду AT + RX <Enter> мережевого процесору, який, в свою чергу, виводить в UART прийняті дані. Мережевий процесор може робити адресну розсилку і має фільтрацію повідомлення при прийомі, що дозволяє організувати мережу типу «зірка» з сотень і навіть тисяч пристроїв, що працюють в діапазоні 868 МГц.

Унікальною особливістю ПО rfEasyLinkNp є повністю відкритий вихідний код. Це дозволяє просунутому розробнику додавати нові AT-команди або модифікувати існуючі. Додатково мережевий процесор містить команди для створення безперервної несучої і відправки пакетів для проведення тесту помилок передач, що буде вкрай корисно при тестуванні пристроїв в процесі виробництва.

Приклад коду «мережевий процесор» включений до складу нової версії програмного забезпечення TI-RTOS 2.16.00.08 (від 25 лютого 2016) і доступний у вигляді проектів для середовищ розробки Code Composer Studio і IAR.

Набір базових функцій EasyLink API

Для кращого розуміння логіки роботи ПО rfEasyLinkNp і використовуваних високорівневих AT-команд розглянемо спочатку низлежащий програмний шар EasyLink API.

Для спрощення роботи з радіо CC13xx компанія Texas Instruments пропонує готовий набір базових функцій EasyLink API. Це - програмний шар (abstraction layer) над драйвером радіо (CC13xx RF Driver). EasyLink дозволяє працювати з радіо без необхідності вивчення регістрів і різних тонкощів управління радіоядром. При використанні EasyLink можна створити програму для бездротового обміну за лічені години. За допомогою EasyLink API (всього 15 функцій, таблиця 1) вона може змінювати радіо на потрібну частоту і тип модуляції, відправити / прийняти пакети, здійснити прив'язку активності радіо до абсолютного або відносного часу, зробити адресну і трансляцію розсилку. Використовується простий формат пакета (рисунок 1), який, тим не менш, дозволяє організувати просту мережу типу «зірка» з фільтрацією адрес при прийомі. Програмний шар EasyLink пропонує тільки базові функції. Він, наприклад, не містить підтримки для протоколів LBT ( «слухати перш ніж відправити»), режиму Sniff Mode і тому подібного. EasyLink API і приклади по роботі з ним включені в дистрибутив TI-RTOS. Опис EasyLink можна знайти в папці C: \ TI_Radio_Training \ Documentation або за посиланням: http://processors.wiki.ti.com/index.php/SimpleLink-EasyLink.

Мал. 1. Структура пакета EasyLink

Інформацію стосовно користування TI-RTOS можна знайти тут (після установки TI-RTOS): C: \ ti \ tirtos_simplelink_ <version> \ docs \ tirtos_cc13xx_cc26xx_Getting_Started_Guide.pdf.

Таблиця 1. Список функцій EasyLink API

API Опис функції EasyLink_init () Ініціалізація і запуск RF-драйвера та налаштування параметрів фізичного рівня радіоканалу (PHY setting) EasyLink_transmit () Передача даних. Блокуюча функція (повернення відбувається тільки після закінчення відправки даних по ефіру) EasyLink_transmitAsync () Передача даних. Неблокірующіх функція (повернення відбувається відразу після передачі необхідних параметрів в радіоядро). Відправка даних по ефіру виконується паралельно з виконанням основної користувальницької програми. EasyLink_receive () Прийом даних. Блокуюча функція (повернення відбувається тільки після прийому пакета) EasyLink_receiveAsync () Прийом даних. Неблокірующіх функція (повернення відбувається відразу після передачі необхідних параметрів в радіоядро). Прийом даних по ефіру виконується паралельно з виконанням основної користувальницької програми EasyLink_abort () Переривання виконання неблокірующіх функції EasyLink_GetIeeeAddr () Отримання IEEE-адреси чіпа EasyLink_EnableRxAddrFilter () Дозвіл / заборона фільтрації адрес при прийомі EasyLink_SetFreq () Встановлення робочої частоти EasyLink_GetFreq Отримання робочої частоти EasyLink_SetRfPwr () Встановлення рівня вихідної потужності EasyLink_GetRfPwr () Отримання поточного рівня вихідної потужності EasyLink_getAbsTime () Отримання абсолютного часу радіо EasyLink_setCtrl () Зміна параметрів конфігурації EasyLink_getCtrl () олучение конфігураційних параметрів

На момент написання статті EasyLink API підтримує два встановлених варіанти параметрів радіоканалу і один призначений для користувача режим. Ці ж налаштування можна вибирати при ініціалізації радіо за допомогою AT-команд при роботі з прошивкою rfEasyLinkNp:

  • режим 50kbps 2-GFSK инициализируется за допомогою функції EasyLink_init (EasyLink_Phy_50kbps2gfsk);
  • режим 625bps Long Range Mode: инициализируется за допомогою функції EasyLink_init (EasyLink_Phy_625bpsLrm);
  • призначений для користувача режим Custom инициализируется за допомогою функції EasyLink_init (EasyLink_Phy_Custom).

Якщо використовується режим роботи комп'ютера з використанням режиму радіо - в проекті необхідно задіяти змінну EasyLink_Phy_Custom. При цьому відповідні файли smartrf_settings.c / h повинні бути модифіковані розробником відповідно до його вимог до параметрів радіо. Ці Ваші установки (вміст файлів) можуть бути згенеровані за допомогою програми SmarfRF Studio: http://www.ti.com/tool/smartrftm-studio.

В документації на SmarfRF Studio показано, як згенерувати необхідні значення і експортувати їх у вигляді файлів smartrf_settings.c / h. Ці файли потім повинні бути просто скопійовані в папку "smartrf_settings \" вашого проекту, наприклад:

... \ rfEasyLinkNp_CC1310DK_TI_CC1310F128 \ smartrf_settings \

При роботі з EasyLink API необхідно включити в проект ініціалізацію налаштувань EasyLink_init (EasyLink_Phy_Custom) і перекомпіліровать проект.

Це призводить до того, що EasyLink API буде використовувати RF_prop-, RF_cmdPropRadioDivSetup- і RF_cmdFs-команди, параметри яких були визначені і експортовані з SmartRF Studio. Сінхрослово (Synchword) для призначених для користувача налаштувань радіо в режимах TX / RX визначено в командах RF_cmdPropTx і RF_cmdPropRx відповідно. За допомогою налаштувань радіо можна забезпечити сумісність з іншими трансиверами TI ( CC1101 , CC1120 , CC1200 , CC430 ) Або з прийомопередавачами інших виробників.

З використовуваними за замовчуванням налаштуваннями проекту ccfg settings вихідна потужність обмежена значенням 12 дБм. Якщо в додатку користувача викликається функція EasyLink_SetRfPwr () з параметром потужності> 12 дБм, то буде повернуто повідомлення про помилку EasyLink_Status = EasyLink_Status_Param_Error. Для того щоб встановити вихідну потужність 14 дБм, необхідно встановити в вихідному коді проекту CCFG_FORCE_VDDR_HH = 1 і перекомпіліровать додаток.

Програмне забезпечення rfEasyLinkNp AT Network Processor Example

Прошивка (Firmware) rfEasyLinkNp є приклад програми TI-RTOS для CC1310. Це програмна надбудова над набором базових функцій EasyLink з управління радіо CC1310. rfEasyLinkNp додає можливість управління CC1310 за допомогою текстових AT-команд (інтерфейс EasyLink AT), які подаються через UART з боку хост-процесора (зовнішнього мікроконтролера). Як хост-процесора може виступати 8-, 16-, 32-бітний мікроконтролер або ПК. У випадку з ПК, управління CC1310 проводиться через будь-яку термінальну програму. Програма rfEasyLinkNp доступна у вигляді вихідного коду, тому в розробника є можливість модифікувати її, наприклад, додавати свої власні AT-команди.

Вихідний код прикладу rfEasyLinkNp знаходиться в папці установки TI-RTOS. При установці за замовчуванням приклад rfEasyLinkNp для середовища розробки Code Composer Studio буде лежати цим шляхом: C: \ ti \ tirtos_cc13xx_cc26xx_2_16_00_08 \ tirtos_cc13xx_cc26xx_2_16_00_08_examples \ TI \ CC1310DK_7XD \ rfEasyLinkNp.

Приклад rfEasyLinkNp може бути скомпільовано і завантажений за допомогою середовища розробки Code Composer Studio. На малюнку 2 показано зміст папки проекту rfEasyLinkNp.

На малюнку 2 показано зміст папки проекту rfEasyLinkNp

Мал. 2. Зміст папки проекту rfEasyLinkNp

відкрити у великому розмірі

Швидкий старт

Підключіть плату із завантаженою прошивкою rfEasyLinkNp до комп'ютера. Це може бути плата CC1350 SensorTag, SmartRF06 , TE-CC1350EV-868; CC1310 Launchpad або плата вашої власної розробки. Спрощена схема підключення приведена на малюнку 3.

Спрощена схема підключення приведена на малюнку 3

Мал. 3. Підключення CC13xx до ПК через UART / USB-міст

При необхідності встановіть драйвери для програматора і / або віртуального COM-порту. У диспетчері пристроїв Windows ідентифікуйте COM-порт вашої плати. Відкрийте найбільш знайому вам програму-термінал, наприклад, HyperTerminal, puTTY або іншу. Якщо ваша програма-термінал не бачить потрібний COM-порт - спробуйте перевантажити систему. Встановіть наступні параметри COM-порту: Baud-rate: 115200; Data bits: 8; Stop bits: 1; Parity: None; Flow Control: None.

При подачі живлення або при апаратному скиданні плати за допомогою кнопки скидання в терміналі ви побачите рядок виду:

Reset: EasyLink-v1.00.04

Це ознака того, що ваше обладнання працює нормально. В термінальній програмі діалог з вашим мережевим процесором CC1310 може виглядати, як показано на малюнку 4 зліва.

В термінальній програмі діалог з вашим мережевим процесором CC1310 може виглядати, як показано на малюнку 4 зліва

Мал. 4. Вікно програми-терміналу

За замовчуванням кожен набирається символ повертається у вигляді «луни». Це може бути відключено за допомогою параметра AE, який ми розглянемо пізніше.

Опис AT-команд інтерфейсу EasyLink AT (AT API)

AT-команди використовують символи ASCII і певний набір полів, як показано в таблиці 2.

Таблиця 2. Символи ASCII і певний набір полів, що використовується AT-командами

Start of Frame Command Type Command ID Parameters End Of Frame «AT» 'P' / '+' «i» «0001» \ <CR>

Кожна команда завершується символом "Enter" (повернення каретки - Carriage Return '\ r'), наприклад:

AT + I 01 <CR>

Приклад роботи з використанням AT-команд:

Reset: EasyLink-v1.00.04

AT + I 00 <CR>

OK

ATPIE? <CR>

00124b0007c73082OK

OK

ATPPW? <CR>

0014OK

ATPPW = 1 <CR>

OK

ATPPW? <CR>

0001OK

ATPFR? <CR>

868000000OK

AT + TX Hello World! <CR>

OK

Команди можуть бути двох типів:

  • Зміна або читання параметра: ATPxx. Параметри, наприклад, визначають вихідну потужність або робочу частоту. Приклад команди для читання робочої частоти:

ATPFR? <CR>

  • Керуючі команди для здійснення будь-яких дій: AT + xx. Наприклад, відправити рядок текстових даних:

AT + TX Hello World! <CR>

Між командою і відправляється текстом повинен бути пробіл.

Для читання встановленого значення після параметра ставиться знак питання. Наприклад, для читання встановленої вихідної потужності команда буде виглядати так:

ATPPW? <CR>

Запитаний параметр виводиться в десятковому або HEX-вигляді в залежності від його типу, наприклад:

-10 <CR>

Тут ми бачимо, що вихідна потужність встановлена ​​на рівні -10 дБм (мінімально можлива для CC1310).

Приклад AT-команди з установки робочої частоти рівно на 868 МГц (не помиліться в числі нулів!):

ATPFR = 868000000 <CR>

Відповідь на установку параметра (якщо все введено правильно):

OK <CR>

Набір параметрів (регістрів), якими можна маніпулювати, наведено в таблиці 3 (registers for the EasyLink API).

Таблиця 3. Перелік команд зміни параметрів

Команда (Параметр) R / W Опис Параметри ATP ST? R Читання останнього статусу EasyLink. (EasyLink - це набір функцій для відправки-прийому пакетів rfEasyLinkNp, який розбирає ( «парсит») надходять AT-команди і звертається до тих або інших функцій EasyLink) EasyLink status in 4B hex:

Success = 0000

Config_Error = 0001

Param_Error = 0002

Mem_Error = 0003

Cmd_Error = 0004

Tx_Error = 0005

Rx_Error = 0006

Rx_Timeout = 0007

Rx_Buffer_Error = 0008

Busy_Error = 0009

Aborted = 000a

ATP AE?

ATP AE =

R / W Дозволити / заборонити луну. (UART Echo Enable) 0 or 1 to enable / disable echo ATP FR?

ATP FR =

R / W Читання / установка частоти в Гц, наприклад, 868125000 (Read / Write frequency in Hz) Frequency in 9B hex ATP PW?

ATP PW =

R / W Читання / установка вихідної потужності в дБм (Read / Write tx power in дБм) Power in decimal between -10 to 14дБм. Note ccfg changes are required for 14дБм outpur power ATP BM?

ATP BM =

R / W Читання / установка режиму введення / відображення даних для Tx / Rx (Read / Write data mode for Tx / Rx data) Mode in 1B hex

0: ASCII

1: Binary

ATP IE? R Читання адреси IEEE (незмінний, індивідуальний для кожної CC1310, Read IEEE address) None ATP AS? R Читання розміру (довжини) адреси в байтах (Read address size in Bytes) None ATP TA?

ATP TA =

R / W Читання / установка адреси для передачі. Це змінюваний адреса для виборчої відправки повідомлення конкретному CC1310 з прошивкою rfEasyLinkNp (Read / Write Tx address) 1-8B Tx address in hex ATP RT? R Читання поточного часу радіо. Абсолютна час починається з моменту ініціалізації радіо, командою AT + I (Read current radio time) None ATP TY?

ATP TY =

R / W Читання / установка типу часу (Read / Write Time Type) Time in 1B hex

0: Absolute Time

1: Relative Time

ATP TT?

ATP TT =

R / W Абсолютна або відносна (в залежності від установки типу часу TY) час для відправки пакета, тобто, час, коли включити TX (Absolute or relative (based on Time Type) radio time to Tx a packet) Absolute / relative time in units of 4MHz ticks in decimal OR 0 for immediate ATP TR?

ATP TR =

R / W Абсолютна або відносна (в залежності від установки типу часу TY) час для включення режиму RX ( «на прийом») (Absolute or relative (based on Time Type) radio time to Rx a packet) ATP RO?

ATP RO =

R / W Відносний час для припинення режиму прийому (Relative time for Rx timeout) Relative time in units of 4MHz ticks in decimal OR 0 for never ATP LA? R Адреса доставки для останнього прийнятого пакета (Destination address of last Rx'ed message) None ATP LT? R Читання абсолютного часу останнього прийнятого пакета (Read absolute radio time of last Rx'ed message) None ATP LR? R Читання рівня сигналу RSSI для останнього прийнятого пакета (Read RSSI of last Rx'ed message) None ATP F0?

ATP F0 =

R / W Читання / установка адресного фільтра 0 (Read / Write address filter 0) 1-8B address in hex ATP F1?

ATP F1 =

R / W Читання / установка адресного фільтра 1 (Read / Write address filter 1) 1-8B address in hex ATP F2?

ATP F2 =

R / W Читання / установка адресного фільтра 2 (Read / Write address filter 2) 1-8B address in hex ATP TM?

ATP TM =

R / W Читання / установка режиму «Тестування» (Read / Write test mode) Test mode in 1B hex

0: None / Cancel

1: Tone / Carrier Wave

2: Modulated Signal

3: PER Tx

4: PER Rx

ATP PI?

ATP PI =

R / W Читання / установка інтервалу відсилання пакетів при проведенні тесту контролю помилок пакетів (Read / Write PER Tx Bursts Interval) 1B time between PER bursts in units of ms in Decimal ATP PB ?

ATP PB =

R / W Читання / установка розмірів пачки (Tx Burst Size) при проведенні тесту контролю помилок пакетів (Read / Write PER Tx Burst Size) 1B Tx Burst Size in Hex ATP PP?

ATP PP =

R / W Читання / установка числа пакетів при проведенні тесту контролю помилок пакетів (Read / Write Number of PER Tx / Rx Packets) 1B Tx / Rx Packets in Hex ATP PL?

ATP PL =

R / W Читання / установка розміру пакета при проведенні тесту контролю помилок передачі (Read / Write PER Tx / Rx Packet Length) 1B Tx / Rx Packet Length in Hex ATP GM 00?

ATP GM 01?

ATP GM 02?

ATP GM 03?

ATP GM 0x =

R / W Читання / установка режиму роботи портів введення-виведення. Управління лініями IOID_6, IOID_7, IOID_25, IOID_27 відповідно до розводкою світлодіодів на платі SmartRF06 (Read / Write GPIO Mode) 0: 1 GPIO Value input / outpu ATP GV 00?

ATP GV 01?

ATP GV 02?

ATP GV 03?

ATP GV 0x =

R / W Читання / установка логічного рівня для 4 портів введення-виведення. Управління лініями DIO_6, DIO_7, DIO_25, DIO_27 відповідно до розводкою світлодіодів на платі SmartRF06 (Read / Write GPIO Value) 0: 1 GPIO Value

ВАЖЛИВО! Для виконання більшості команд з регістрами (параметрами) необхідно запустити програмний шар EasyLink, тобто спочатку потрібно подати команду ініціалізації AT + I 00 <cr> (як варіант, AT + I 01 або AT + I 02).

Керуючі команди (AT Control Command)

Ці команди мають такий вигляд:

AT + I 00 <CR>

Відповідь може бути такого виду:

OK <CR>

Керуючі команди наведені в таблиці 4.

Таблиця 4. Керуючі команди rfEasyLinkNp

Команда Опис Параметри AT + I =

AT + I =

Ініціалізація радіо Налаштування радіо (Phy setting)

00: For 50kbps 2-GFSK

01: For 625bps Long Range Mode

02: Сustom

AT + TX =

AT + tx =

Послати повідомлення за адресою (Tx Address = PARAM PTA) в певний час (at Tx Time = Param PTT) або негайно, якщо значення параметра 0 або раніше заданий час вже пройшло. Після знака «=» першим повинен йти пробіл x Data Bytes AT + RX

AT + rx

Включити радіо на прийом даних в певний час (час встановлено параметром PRT) або негайно, якщо значення параметра 0 або раніше заданий час вже пройшло. Прийом включається на час, визначений параметром PRO Немає AT + RS

AT + rs

Скидання мікросхеми CC13xx Немає

Відповіді на AT-команди (Сommand Responses)

Відповіді на команди управління і команди записи параметрів наведені в таблиці 5.

Таблиця 5. Відповіді на керуючі команди

Відповідь Опис OK <CR> Команда або запис параметра виконана успішно Error 0001 <CR> Запис / читання параметра або команда не виконана через помилки в форматі рядки Error 0002 <CR> Запис / читання параметра або команда не виконана через невірну довжини Error 0003 <CR> Запис / читання параметра або команда не виконана через помилки в параметрі Error 0004 <CR> Запис / читання параметра або команда не виконана через помилки пам'яті Error 0005 <CR> Запис / читання параметра або команда не виконана через помилки, повернутої шаром EasyLink API. Причина помилки збережена в парамтре ST (Error From EasyLink API - EasyLink error is stored in Parameter «ST»)

Відповідь на включення приймача, якщо активований прийом даних в символьному вигляді (ASCII Data Mode) і прийнятий пакет, виглядає так:

RX: Hello World <CR>

OK <CR>

Для режиму прийому даних в шістнадцятковому вигляді:

RX: 2fbb1aa8ec84045fb0c3e5236cb8cc5b3c <CR>

OK <CR>

Відповідь на команду скидання:

RESET: vxx.xx.xx <CR>

Де vxx.xx.xx - це версія EasyLink API.

режими тестування

Інтерфейс EasyLink AT дозволяє запускати такі режими роботи для тестування пристрою:

  • генерація безперервної несучої (Carrier Wave);
  • генерація модульованої несучої (Modulated Signal);
  • передавача для тесту контролю помилок передачі (PER Tx);
  • приймач для тесту контролю помилок передачі (PER Rx).

Перед запуском тестів необхідно ініціалізувати пристрій за допомогою команди:

AT + I 00 <CR>

Залежно від значення (00, 01 або 02) застосовуються конкретні настройки радіо (Phy settings) - модуляція, девіація, швидкість і так далі.

00: Модуляція EasyLink_Phy_50kbps2gfsk:

// 50kbps 2-GFSK settings:

// Frequency: 868.00000 MHz

// Data Format: Serial mode disable

// Deviation: 25.000 kHz

// Packet Length Config: Variable

// RX Filter BW: 98 kHz

// Symbol Rate: 50.00000 kBaud

// Sync Word Length: 32 Bits

// Whitening: No whitening

01: EasyLink_Phy_625bpsLrm:

// 625bps LRM settings:

// Frequency: 868.00000 MHz

// Data Format: Serial mode disable

// Deviation: 5.000 kHz

// RX Filter BW: 39 kHz

// Symbol Rate: 10.00061 kBaud

// Sync Word Length: 32 Bits

// Whitening: No whitening

02: EasyLink_Phy_Custom:

Вказані значення за замовчуванням. Передбачається, що розробник пропише тут необхідні йому параметри радіоканалу.

// Address: aa-bb

// Frequency: 868.00000 MHz

// Data Format: Serial mode disable

// Deviation: 25.000 kHz

// Packet Length Config: Variable

// Max Packet Length: 128

// Packet Length: 30

// RX Filter BW: 98 kHz

// Symbol Rate: 50.00000 kBaud

// Sync Word Length: 32 Bits

// TX Power: 14 дБм (requires define CCFG_FORCE_VDDR_HH = 1 in ccfg.c, see CC13xx / CC26xx Technical Reference Manual)

// Whitening: No whitening

Генерація безперервної несучої (Carrier Wave)

Генерація несучої працює в режимі тестування 1 (Test Mode = 1) за допомогою такої команди:

ATPTM = 1 <CR>

Вийти з режиму генерації несучої можна за допомогою команди:

ATPTM = 0 <CR>

Генерація модульованої несучої (Modulated Signal)

Генерація модульованої несучої запускається при установці режиму тестування 2 (Test Mode = 2) за допомогою наступної команди:

ATPTM = 2 <CR>

Вийти з режиму генерації модульованої несучої можна за допомогою команди:

ATPTM = 0 <CR>

Передавач для тесту контролю помилок пакетів (PER Tx)

При установці режиму тестування 3 (Test Mode = 3) пристрій включається на передачу для проведення тесту контролю помилок. Буде відправлено число пакетів, заданий параметром `PP`, або передача буде тривати нескінченно, якщо ATP PP = 0. Наприклад, для відправки 100 пакетів в рамках тесту PER Tx введіть наступні команди:

ATPPP = 100 <CR>

ATPTM = 3 <CR>

Під час передачі PER Tx test CC13xx видає повідомлення про вже відправленому кількості пакетів:

TPER: 00

TPER: 01

TPER: 02

...

Після відправки заданої кількості пакетів виводиться повідомлення:

TPER: Done OK <CR>

Наступні параметри впливають на загальний час відправки пакетів в рамках даного тесту:

  • PPL: PER Tx Packet Length - довжина пакета;
  • PPB: PER Tx Burst size - розмір пачок;
  • PPI: Interval in ms between bursts - інтервал між пачками в мс.

Приймач для тесту контролю помилок пакетів (PER Rx)

Пристрій включається на прийом для проведення тесту контролю помилок при установці режиму тестування 4 (Test Mode = 4). Буде прийнято число пакетів, заданий параметром "PP", або прийом буде тривати нескінченно, якщо параметр ATP PP = 0. Наприклад, для підрахунку кількості помилок при прийомі 100 пакетів необхідно ввести наступні команди:

ATPPP = 100 <CR>

ATPTM = 4 <CR>

Під час проходження тесту виводяться рядки про прийнятих пакетах і рівнях сигналу:

RPER: 00, 0001 0000 -31

RPER: 01, 0002, 0000, -31

RPER: 02, 0003, 0000, -31

...

Розшифровка полів представлена ​​в таблиці 6.

Таблиця 6. Розшифровка полів

Тема Порядковий номер Лічильник успішно прийнятих пакетів Лічильник пропущених або невірно
прийнятих пакетів RSSI RPER: 2 3 0 -31

Порядковий номер включений в пакет на передавальній стороні. Він збільшується на одиницю в кожному наступному відправляється пакеті. В разі успішного прийняття пакету лічильник прийнятих пакетів збільшується на одиницю. Кожен раз, коли послідовність порядкових номерів порушується, лічильник помилкових пакетів збільшується відповідним чином.

Після завершення тесту виводиться повідомлення:

<RPER>: Done OK

Практична робота з АT-командами

Для отримання практичних навичок по роботі з AT-командами і розуміння логіки роботи рекомендується виконати наступні операції.

Базові дії:

  • виконайте апаратне скидання CC1310 (кнопкою RESET);
  • прочитайте IEEE-адреса чіпа;
  • прочитайте поточну робочу частоту. Вона має невірне значення, так як радіо ще не ініціалізувати;
  • прочитайте даний час;
  • Ініціалізуйте радіо AT + I 00 <cr>;
  • прочитайте поточну робочу частоту;
  • прочитайте даний час;
  • прочитайте вихідну потужність, встановлену за замовчуванням;
  • виконайте скидання пристрою AT-командою.

Генерація несучої:

встановіть робочу частоту, наприклад, 869 МГц;

  • встановіть вихідну потужність 10 дБм.
  • запустіть тест немодулированной несучої;
  • спостерігайте рівень вашого сигналу за допомогою SmartRFStudio або на індикаторі спектра;
  • змініть рівень сигналу на значення -10 дБм;
  • перевірте результат за допомогою SmartRFStudio (рисунок 5) або на аналізаторі спектра.

Мал. 5. Відображення сигналу з різним рівнем RSSI в програмі SmartRF Studio

Проведення тесту помилок пакетів:

Даний тест виконується на двох платах з прошивками rfEasyLinkNp.

  • виконайте апаратне скидання плати;
  • Ініціалізуйте радіо в режимі 00;
  • встановіть вихідну потужність передавача -10 дБм;
  • встановіть число пакетів на передавачі = 100;
  • встановіть робочу частоту приймача рівній частоті передавача;
  • встановіть на приймачі число пакетів = 50;
  • запустіть тест - спочатку режим прийому, потім передачі;
  • погіршить умови прийому, викрутивши антену на приймачі (можливо і на передавачі). Для імітації поганий зв'язку, при необхідності, рознесіть плати на відстань кількох метрів.

Обмін довільними повідомленнями:

  • встановіть вихідну потужність передавача -10 дБм;
  • встановіть робочу частоту приймача рівній частоті передавача;
  • надсилайте текстові повідомлення з однієї плати на іншу;
  • перевіряйте статус і час прийому;
  • перевірте на практиці вплив параметрів на відправку-приймання повідомлень.

Управління світлодіодами:

  • запаліть-погасіть світлодіоди, підключені до ліній GPIO (рисунок 6).

Мал. 6. Управління світлодіодами на платі TE-CC1350EV-868 за допомогою AT-команд

Висновок

Використання прошивки rfEasyLinkNp перетворює CC13xx в мережевий процесор, який повністю закриває всі питання, пов'язані з передачею даних по радіоканалу. Звичний UART і прості в розумінні AT-команди дозволяють додати радіоканал 433/868 МГц в будь-який виріб. Розробнику не потрібно ніяких знань по внутрішньому програмному пристрою ядер CC13xx, робота з ним йде на рівні «чорного ящика». В силу того, що вихідний код rfEasyLinkNp повністю доступний, досвідчений програміст може модифікувати існуючі AT-команди або додавати нові, виходячи із завдань власного додатка. Компактний протокол управління rfEasyLinkNp не пред'являє ніяких вимог до хост-контролера, в якості якого можна використовувати 8-, 16-, 32-бітний мікроконтролер будь-якого виробника. Незважаючи на простоту застосування, мережевий процесор включає базові можливості з побудови радіомережі з сотень вузлів. CC13xx c прошивкою rfEasyLinkNp може з успіхом працювати в широкому спектрі додатків - від пристроїв «розумного будинку» до систем промислової телеметрії.

Отримання технічної інформації , замовлення зразків , замовлення і доставка .

Мініатюрний Bluetooth-датчик прискорення і температури на базі CC2650

Новий опорний дизайн Texas Instruments демонструє, наскільки мініатюрними можуть бути бездротові датчики, якщо їх будувати на основі системи-на-кристалі CC2650 . Самий малогабаритний корпус CC13xx / CC26xx має розміри всього 4х4 мм. При цьому чіп містить процесор Cortex-M3, радіо, вбудований DC / DC-перетворювач і окремий контролер сенсорів. Закінчений бездротової батарейний датчик прискорення і температури uTag вміщується на платі 16х9 мм і при цьому може працювати до 3 місяців від мініатюрного елементу живлення CR1612. Дані передаються на будь-який гаджет, який підтримує технологію Bluetooh Low Energy. Для зменшення розміру CC2650 працює без часового кварцового резонатора 32 кГц, замість якого використовується вбудований RC-генератор (RCOSCLF). Для того, щоб відповідати вимогам специфікації Bluetooth (± 500 ppm) необхідно як мінімум один раз в секунду виробляти програмну калібрування RCOSCLF.
Пристрій вимірює прискорення за допомогою MEMS-акселерометра, а також температуру навколишнього середовища за допомогою I²C-датчика TMP102, який відрізняється високою лінійністю і має точність ± 0,5 ° С. TMP102 не вимагає калібрування, складних розрахунків або довідкових таблиць, щоб отримати точне значення температури. Вбудований 12-бітний АЦП дозволяє проводити вимірювання з роздільною здатністю до 0,0625 ° С.
Розробнику пропонується використовувати готову схему, перелік елементів і розведення друкованої плати. Як програмне забезпечення можна застосовувати різні демонстраційні проекти з набору ПО BLE Stack v.2.1.0 і Code Composer Studio CCS6.1.
Опис датчика є за посиланням:

/wordpress/wp-content/uploads/2016/01/tidub25.pdf.

pdf

Про компанію Texas Instruments

У середіні 2001 р компании Texas Instruments и КОМПЕЛ постелили офіційну ДИСТРИБ'ЮТОРСЬКА догоду, Пожалуйста стало результатом трівалої и успішної роботи КОМПЕЛ в якості офіційного дистриб'ютор фірми Burr-Brown У середіні 2001 р компании Texas Instruments и КОМПЕЛ постелили офіційну ДИСТРИБ'ЮТОРСЬКА догоду, Пожалуйста стало результатом трівалої и успішної роботи КОМПЕЛ в якості офіційного дистриб'ютор фірми Burr-Brown. (Як відомо, Burr-Brown увійшла до складу TI так само, як и компании Unitrode, Power Trend и Klixon). З цього часу компанія КОМПЕЛ получила доступ до постачання всієї номенклатури Вироблення компанією TI компонентів, технологій та НАЛАГОДЖУВАЛЬНА ЗАСОБІВ, а також ... читати далі