Бытовая магия и ее разоблачение: запуск приемопередатчика S2-LP

| STMicroelectronics

ST Microelectronics

Новый узкополосный приемопередатчик S2-LP производства STMicroelectronics, способный работать в диапазонах 868 или 433 МГц – отличный вариант для применения в беспроводных устройствах с повышенными требованиями к устойчивости канала связи, от распределенных бытовых и промышленных датчиков до сложных систем безопасности. Инженерам, имеющим базовые знания в области радио, для упрощения знакомства с новой микросхемой ST предлагает отладочную плату STEVAL-FKI868V1 и программный набор разработчика STSW-S2LP-DK.

Как и любая предметная область, беспроводная передача данных не является каким-то особенно сложным разделом радиоэлектроники, однако для многих она все еще представляется чем-то вроде магии. Для того чтобы максимально упростить знакомство со своим новым узкополосным приемопередатчиком S2-LP, компания ST выпустила недорогую плату STEVAL-FKI868V1 и программный набор разработчика STSW-S2LP-DK, с помощью которых можно буквально за считанные часы запустить беспроводную передачу данных в диапазоне 868 МГц.

Познакомимся и мы с работой микросхемы приемопередатчика S2-LP – без пайки и написания хотя бы одной строчки кода. При этом мы будем отправлять и принимать пакеты, измерять технические параметры и даже тестировать совместимость с приемопередатчиками других производителей. Для этого будет использоваться графическая оболочка S2-LP DK GUI, которая сводит все взаимодействие с трансивером к вводу требуемых значений и работе с меню.

Подготовка к работе

Для повторения описанных в статье экспериментов потребуются следующий набор аппаратных средств (рис. 1):

Платы STEVAL-FKI868V1-R и NUCLEO-L152RE

Рис. 1. Платы STEVAL-FKI868V1-R и NUCLEO-L152RE

Также необходимо иметь какую-либо антенну 868 МГц с разъемом SMA, например, BY-868-02 SMA-M R/A, и кабель MiniUSB.

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

Программный пакет STSW-S2LP-DK для Windows (XP SP3, Vista, 7 или 10) можно скачать с сайта STMicroelectronics. На момент написания статьи доступна версия 1.2.0. Установка софта происходит быстро, но для удобства последующего доступа я использовал при установке путь не по умолчанию, а в корневой каталог диска. В результате на ПК получилась структура папок, показанная на рисунке 2.

Состав комплекта ПО STSW-S2LP-DK

Рис. 2. Состав комплекта ПО STSW-S2LP-DK

В состав ПО входит собственно графическая оболочка S2-LP DK GUI, библиотека S2LPLibrary (S2-LP Low Level API v. 1.3.0), примеры кода, USB-драйвера и бинарные файлы для работы с платой Nucleo-L152E (Nucleo-L053R8), а также примеры С-кода IAR и Keil, реализующие следующий функционал:

  • генерацию непрерывной несущей;
  • базовый прием-передачу пакета;
  • прием-передачу пакетов wM-Bus;
  • прием с микропотреблением (Sniff-mode);
  • отправку длинных пакетов (payload —> FIFIO);
  • прием-передачу с синхронизацией по времени;
  • проверку занятости канала перед передачей (CSMA);
  • автоподтверждение и повторную отправку;
  • обмен текстовыми сообщениями через UART.

Функционал многих вышеприведенных примеров можно протестировать без реального программирования, просто управляя трансивером через оболочку S2-LP DK GUI.

Подготовка «железа» сводится к установке платы STEVAL-FKI868V1-R в соответствующие разъемы платы NUCLEO-L152RE и подключению к ПК. После автообнаружения и установки драйверов необходимо загрузить в плату NUCLEO-L152RE специальную прошивку, которая разбирает команды, идущие от Windows-оболочки через виртуальный UART, и превращает их в обращения к регистрам приемопередатчика через SPI-интерфейс между STM32L152 и S2-LP. Самый простой способ программирования платы NUCLEO-L152RE заключается в перетаскивании мышкой файла C:\S2-LP DK_1.2.0\Binary\S2LP_CLI_NUCLEO_L1.bin (именно .bin, а не .hex) в папку Nucleo, которая появляется при подключении платы к ПК (рис. 3).

Программирование платы NUCLEO-L152RE для работы с S2-LP DK GUI

Рис. 3. Программирование платы NUCLEO-L152RE для работы с S2-LP DK GUI

Если вы будет работать с платой Nucleo-L053R8, то, соответственно, нужно будет использовать файлS2LP_CLI_NUCLEO_L0.bin.

Есть еще один способ программирования – непосредственно из программы S2-LP DK GUI. Для этого откройте меню Tools → Firmware Upgrade и выберите файл S2LP_CLI_NUCLEO_L1/L0.hex, затем нажмите “Open” и ждите окончания загрузки Firmware.

Запускаем S2-LP DK GUI

Для старта программы S2-LP DK GUI можно воспользоваться ссылкой из меню «Пуск» или просто запустить файл C:\S2-LP DK_1.2.0\GUI\ S2-LP DK.exe.

После запуска оболочки окно управления примет вид, показанный на рис. 4.

Запуск оболочки S2-LP DK GUI

Рис. 4. Запуск оболочки S2-LP DK GUI

На одном ПК можно запустить несколько копий оболочки, каждая из которых будет работать со своей платой Nucleo STM32. Подключение двух плат к одному ПК удобно для обмена данными между несколькими платами с одного рабочего места.

Даже если у вас нет платы Nucleo, с оболочкой можно работать в режиме эмуляции. Для этого нужно просто нажать кнопу “Open”, и вы сможете задавать параметры радиоканала и получать соответствующие им значения регистров.

Для физического подключения к плате необходимо в списке выбрать плату, подключенную к ПК (рис. 5). В списке отображаются все существующие на данном ПК аппаратные и виртуальные COM-порты.

 Выбор платы для подключения к программе

Рис. 5. Выбор платы для подключения к программе

Теперь перед нами рабочий интерфейс программы со всеми окнами, меню и закладками (рис. 6).

Рис. 6. Рабочий интерфейс программы S2-LP DK GUI

Рис. 6. Рабочий интерфейс программы S2-LP DK GUI

Наличие значений в окнах говорит о том, что обмен данными с приемопередатчиком происходит нормально. Если вы пытаетесь подключиться к плате Nucleo без корректно подключенного трансивера S2-LP, то вы получите соответствующее сообщение (рис. 7).

Сообщение об ошибке (микросхема S2-LP не подключена)

Рис. 7. Сообщение об ошибке (микросхема S2-LP не подключена)

Панель Radio Setting

Панель Radio Setting всегда отображает текущие настройки радио S2-LP:

  • рабочую частоту (frequency base) 430…470 или 860…940 MГц;
  • тип модуляции (modulation) 2-FSK; 2-GFSK BT5; 2-GFSK BT 0.5; 4-FSK; 4-GFSK BT 0.5; 4-GFSK BT 0.5; ASK; OOK;
  • скорость передачи данных (data rate) 0,3…250 кбит/с
  • девиацию частоты (frequency deviation) 0,793…761 кГц;
  • полосу пропускания приемника (channel filter) 1,1…769,3 кГц;
  • выходную мощность (output power) -30…14 дБм.

Все эти поля можно изменять в соответствии с требованиями разработчика, но в пределах технических возможностей трансивера S2-LP. При вводе в ячейку нового параметра он не отправляется автоматически в соответствующий регистр микросхемы – для записи новых значений необходимо нажать кнопку “CONFIGURE RADIO”. После ее нажатия вычисляются значения для внутренних регистров S2-LP, затем они отсылаются в микросхему. Далее происходит обратное считывание установленных значений из регистров. Новое содержимое регистров отображается в окне “Register Table”. Вы можете заметить, что введенное вами число немного изменилось. Изменение – результат того, что эта величина, по факту, является производной от номинала используемого кварца. При вычислениях значений для внутренних регистров S2-LP происходит некоторое количество умножений-делений с конечной разрядностью различных коэффициентов, что и приводит к незначительным изменениям.

Выпадающий список Normal (-Boost, -PA) используется для разных схем разводки выходной цепи S2-LP. При работе с платой STEVAL-FKI868V1-R это поле изменять не следует, здесь должно стоять значение “Normal”.

Плата STEVAL-FKI868V1-R рассчитана на работу в диапазоне 868 МГц, поэтому при установке частоты из диапазона 430…470 МГц устройство будет иметь весьма слабую чувствительность, пониженную выходную мощность и ненормируемый уровень побочных излучений. Тем не менее, плата будет работать.

Генерация несущей

Самый первый радиочастотный тест, который имеет смысл делать при запуске собственной платы с приемопередатчиком – это генерация непрерывной несущей (CW). С помощью этого теста можно проверить работу синтезатора частоты, выходную мощность и точность используемого кварца. Этот тест также показывает работоспособность подсистемы питания, так как в данном режиме потребление тока максимально. Проверить наличие генерации можно с помощью анализатора спектра (рисунок 8) либо с помощью другой платы, включенной в режим непрерывного приема. При наличии анализатора спектра можно сравнить фактическую отдаваемую мощность с ожидаемым значением – это покажет возможные неисправности цепи согласования с антенной. Также можно определить отклонение реальной рабочей частоты от расчетного значения и, при необходимости, скорректировать номиналы конденсаторов в цепи кварца в процессе подготовки изделия к запуску в производство. При использовании кварцевого резонатора с точностью 10 ppm выставленная рабочая частота несущей, равная 868,000 МГц, может находиться в пределах 868 МГц ± 8,68 кГц даже при оптимально подобранных нагрузочных конденсаторах. В настройках радиотракта по умолчанию используется достаточно широкая полоса пропускания приемника (100,5 кГц), поэтому первоначальный разброс частоты особо не влияет на качество связи. Однако этот разброс нужно учитывать при экспериментах с узкой полосой приемника.

Измерение параметров с помощью анализатора спектра

Рис. 8. Измерение параметров с помощью анализатора спектра

Пример реального измерения платы STEVAL-FKI868V1-R при работе с максимальной выходной мощностью приведен на рисунке 9. Как видно из графика, отклонение частоты от номинала получилось равным +3,33 кГц, а выходная мощность составила 15,85 дБм (38,5 мВт).

 Измерение выходной мощности STEVAL-FKI868V1-R

Рис. 9. Измерение выходной мощности STEVAL-FKI868V1-R

Можно измерить потребление тока при различном уровне выходной мощности. При выходной мощности 10 мВт (+10 дБм) S2-LP потребляет около 10 мА. Такое малое потребление в режиме передачи достигнуто благодаря встроенному DC/DC-преобразователю (SMPS) и новому типу усилителя мощности класса Е.

Кнопка TX PN9 START запускает передачу псевдослучайной последовательности данных с заданным типом модуляции. Этот тест нужен для проведения стандартной процедуры инструментальной проверки соответствия параметров радио установленным нормам.

Режим непрерывного приема

Этот режим позволяет оценить уровень сигнала (RSSI) при приеме. Он выполняется на закладке Running RSSI (рисунок 10). На этой закладке можно включить режим непрерывного приема, при котором S2-LP может выдавать RSSI «на лету», то есть без реального приема пакетов. В этом режиме уровень RSSI определяется просто по наличию несущей или помехи на рабочей частоте приемника. Даже без наличия сигнала, например, при подключении ко входу резистора 50 Ом, кривая RSSI будет показывать уровень тепловых шумов в полосе приемника. Это свойство можно использовать, чтобы грубо оценить работоспособность приемника, когда под рукой нет передатчика тестовых пакетов. Отключите антенну и запустите режим непрерывного приема. После подключения антенны уровень RSSI должен немного возрасти – это первый признак работоспособности приемного тракта.

Режим непрерывного отображения RSSI

Рис. 10. Режим непрерывного отображения RSSI

Если вы на другой плате будете запускать режим генерации несущей (TX CW START) с разными уровнями мощности, то RSSI на этой закладке будет изменяться в соответствии с установленной мощностью передатчика.

Режим непрерывного приема удобно использовать, если вам нужно быстро проконтролировать наличие сигнала на какой-либо частоте. Например, если вы не можете наладить прием в пакетном режиме, то первым делом проверьте на закладке Running RSSI, видит ли ваш приемник сигнал передатчика в принципе.

Полоса приемника (RX Bandwidth) влияет на его чувствительность. Расширение полосы приемника приводит к тому, что он начинает собирать шумы в более широком спектре, что наглядно можно увидеть на графике силы сигнала RSSI. Отключите антенну и измените значение в поле “Channel filter” на 1 кГц, примените настройки кнопкой “Configure radio” и запустите график Running RSSI. Вы должны увидеть линию RSSI в районе -130 дБм. Теперь проделайте то же самое со значениями 50 и 500 в поле “Channel filter”. С расширением полосы уровень RSSI возрастает даже при отсутствии сигнала. Чем ниже уровень RSSI на входе приемника в отсутствии полезного сигнала, тем выше чувствительность вашей системы.

Чтобы FSK-приемник мог нормально декодировать полезный сигнал, его уровень должен быть на 8…12 дБ выше уровня собственных шумов и нежелательных сигналов помех на той же частоте. Сужение полосы приемника улучшает отношение «полезный сигнал/шум». Однако на практике сужение полосы ограничено тремя факторами:

  • ограничениями самой микросхемы;
  • шириной спектра полезного сигнала;
  • стабильностью частоты кварцевого резонатора.

Ширина спектра полезного сигнала для 2FSK/2GFSK-модуляции примерно равна скорости передачи данных (кбод) плюс удвоенное значение девиации (кГц). Например, для 2FSK-модуляции при скорости передачи данных 10 кбит/с и девиации 20 кГц полоса сигнала (ширина его спектра) составляет около 50 кГц. В этом случае полоса приемника не может быть ниже указанного значения. При выборе полосы пропускания приемника нужно также учитывать нестабильность частоты кварцевого резонатора, то есть дополнительно расширять полосу в связи с возможным расхождением реальных рабочих частот приемника и передатчика. Инженерное правило для необходимой полосы приемника выглядит так, как показано на формуле 1 (Carson’s rule):

BWchannel > BWsignal + 4 · XTALppm · fRF (1)

где:

BWchannel – требуемая полоса приемника, кГц;
BWsignal – ширина спектра сигнала, кГц;
XTALppm – отклонение частоты кварцевого резонатора от номинала, ppm;
fRF – рабочая частота передатчика, МГц.

С учетом точности кварца 10 ppm и сигнала 2FSK (10 кбит/с c девиацией 20 кГц), получаем (формула 2):

BWchannel > 50 + 4 · 10 · 0,868 (2)

То есть мы должны использовать полосу приемника не менее 85 кГц.

Настройка параметров пакета

Закладка “Packet setting” позволяет задать параметры отправляемого по эфиру пакета. С помощью программы S2-LP DK GUI можно формировать пакеты только двух типов – “Basic” и “WMBUS”, хотя трансивер еще поддерживает пакеты типа “Stack” (с автоматическими подтверждениями и переповторами) и 802.15.4g. В режиме “Basic” можно настроить пакет таким образом, что S2-LP будет совместим, например, с приемопередатчиками CC1101CC430CC1120 и CC1310 производства компании Texas Instruments. Пример настроек для обмена пакетами между S2-LP и CC1350 (СС1310) приведен на рис. 11. Для обмена пакетами с CC1101 и MSP430 необходимо изменить синхрослово на “0xd391d391”. Не забывайте после изменения любых настроек в окне “Packet Setting” нажимать кнопку “CONFIGURE PACKET”.

Обмен пакетами между S2-LP и СС1350

Рис. 11. Обмен пакетами между S2-LP и СС1350

Трансивер S2-LP позволяет довольно гибко настраивать параметры пакета. Например, максимальная длина преамбулы по сравнению со SPIRIT1 увеличена до 255 байт. Можно выбирать несколько вариантов расчета контрольной суммы CRC. Длину синхрослова можно задавать любую, в том числе – с битовой точностью (некратно 8 битам). Допускается использование режимов “FEC” (добавление избыточных битов для коррекции ошибок) и “Whitening” (исключение длинных последовательностей нулей и единиц). Итоговые поля пакета представляется в виде графической блок-схемы.

Тест приема-передачи

Закладка “Transmission Test” позволяет отправлять и принимать пакеты. Для данного теста применяются настройки пакета из закладки “Packet settings” и параметры радиосигнала из области “Radio Setting”. В этой закладке есть два варианта работы S2-LP: в роли передатчика (окно TX) или в роли приемника (окно RX).

Отправка сообщений

При отправке сообщений содержимое пакта вводится в поле (1) (здесь и далее нумерация согласно рисунку 12). Отправляемое количество байт полезной нагрузки указывается в поле “Payload length” (2). Максимально допустимое число символов – 255. В зависимости от количества символов, скорости передачи и длины преамбулы производится автоматический расчет длительности пакета (время пакета в эфире), это значение отображается в поле “Packet duration” (3). Можно заполнить отправляемый пакет случайными данными, нажав кнопку “Random” (4). В поле “Total packets” (5) задается число отправляемых пакетов. Для бесконечной отправки поставьте 0. Поле “Ref timer” (6) определяет частоту отправки пакетов. По умолчанию пакеты будут отправляться каждые 500 мс. Содержимое пакета можно задавать как в текстовом, так и в HEX-виде, поставив галочку в поле “HEX” (7). Пакеты начинают отправляться при нажатии кнопки “START” (8). Информация о процессе отправки выводится в окно (9). Переключатель “Normal — LDC” (10) определяет, кто отсчитывает время между отправкой пакетов. В режиме “Normal” трансивером управляет внешний микроконтроллер, и именно он ведет счет времени (Ref timer), а в режиме “LDC” (Low Duty Cycle) используется встроенный в S2-LP таймер сна. Это влияет на потребление, так как в режиме “Normal” между отправкой пакетов S2-LP находится в состоянии “IDLE”, а в режиме “LDC” – в состоянии “Sleep”.

Окно управления отправкой пакетов

Рис. 12. Окно управления отправкой пакетов

Прием сообщений

Для приема сообщений необходимо переключиться на закладку (1) (здесь и далее нумерация согласно рис. 13).

 Окно приема пакетов

Рис. 13. Окно приема пакетов

Если после запуска программы вы не изменяли настройки по умолчанию, то можно сразу нажать на кнопку “START” (2). Если у вас есть второй комплект плат, вы можете запустить передатчик, тогда в окне (3) можно увидеть принимаемые пакеты. Для каждого пакета выводится время приема (по часам на ПК) – “Time Stamp” (4), информация об успешном приеме и количестве полезных байт – “Info” (5), уровень сигнала при приеме каждого пакета – “RSSI” (6) и, собственно, принятые данные – “Data Received” (7).

В окне “Test Indicator” (8) выводится статистика принятых пакетов: количество принятых пакетов “Packet received”, количество ошибочных пакетов “Packet Discarded”, процент успешно принятых пакетов “PER” и средний уровень “RSSI”.

В полe “Total packet” (9) устанавливается ожидаемое число пакетов. Выход из режима приема происходит автоматически либо по приему заданного числа пакетов, либо по окончании времени, равного числу ожидаемых пакетов, умноженного на время между пакетами. Время между пакетами – “Ref timer” (10) – должно совпадать для передатчика и приемника.

Отображение принятых данных возможно как в текстовом виде ASCII, так и в HEX-кодах.

Параметр “RX timeout” (12) ограничивает время работы S2-LP в активном приеме. При нажатии на кнопку “START” приемник ждет первый пакет неограниченно долго. Далее в действие вступает параметр “RX timeout”. Если в течение этого времени пакет не принят корректно, то фиксируется ошибка и в поле “Info” выводится сообщение “Packet lost. RX timeout”. Режим приема выключается. Затем, спустя время “Ref timer”, приемник включается вновь. Время “Rx Timeout” должно быть больше длительности пакета, но меньше значения “Ref timer”. Чем больше значение “RX timeout” — тем меньше связь зависит от рассинхронизации периода приемника и передатчика. Все это актуально только для применяемого в данной программе принципа отправки пакетов, где и в приемнике, и в передатчике отсчитываются временные интервалы.

Приемник можно настроить таким образом, чтобы он не принимал слабые сигналы, то есть разрешить прием сигналов только выше определенного уровня. Порог принимаемого сигнала задается в окне “RSSI threshold” (12). Если установить, например, уровень -90 дБм, то сигналы ниже этого уровня приниматься не будут. Для приема самых слабых сигналов здесь должно быть значение -130 дБм.

Внимание! В обозреваемой версии программы 1.2.0 изначально отображается неверное значение для параметра “RSSI threshold”. Подробнее об этом читайте в конце статьи.

Прием в режиме Sniff

Всего предусмотрено три режима работы приемника – “Normal”, “Sniff” и “LDC” (13). Режим “Normal” описан выше. Режим “LDC” отличается от “Normal” лишь тем, что отсчет времени между включениями приемника ведет не внешний микроконтроллер, а встроенный в S2-LP-таймер. В режиме “LDC” среднее потребление S2-LP будет меньше, так как в паузах между окнами приема трансивер находится в режиме “Sleep”, а в режиме “Normal” используется режим “Idle”.

Режим “Sniff” реализует прием с микропотреблением. При выборе режима “Sniff” (13) становится активным окно (14). В этом режиме S2-LP засыпает по внутреннему таймеру на заданное фиксированное время, например, на одну секунду. При пробуждении включается приемник и прослушивает эфир. Если полезный сигнал не найден за минимально возможное время — микросхема переходит в режим сна до следующего срабатывания таймера. Если же преамбула обнаружена — приемник остается в активном режиме до полного принятия пакета. Обнаружение преамбулы может происходить как по уровню RSSI, так и по ее совпадению с ожидаемой. В отличие от режима “LDC”, предполагающего синхронное пробуждение приемника и передатчика, в режиме “Sniff” передатчик работает асинхронно по отношению к приемнику. При этом для того, чтобы приемник не пропустил пакет, передатчик генерирует очень длинную преамбулу, по длительности чуть большую, чем период сна приемника. Поэтому приемник при просыпании всегда попадет в какой-то момент преамбулы и будет иметь возможность принять пакет (рисунок 14). В режиме “Sniff” средний ток потребления приемника может достигать единиц микроампер. Оборотной стороной этого режима является меньшая мгновенная доступность канала связи. Максимальная задержка доставки сообщения равна периоду сна приемника.

Режим “Sniff”

Рис. 14. Режим “Sniff”

В режиме “Sniff” задается два специальных параметра: “WakeUp timer” и “FastRX timeout” (14).

“WakeUp timer” определяет период пробуждения приемника. Этот параметр напрямую влияет на средний потребляемый ток. На передатчике преамбула должна быть установлена достаточно длинной, чтобы приемник просыпался минимум дважды в течение ее передачи.

“FastRX timeout” определяет время, в течение которого ожидается полезный сигнал (по превышении RSSI заданного уровня). Значение в этом поле формируется программой автоматически, исходя из установленной ширины канала приемника “Channel Filter”. Чем шире приемный фильтр, тем быстрее устанавливается значение RSSI, соответственно, значение “FastRX timeout” может быть меньше. “FastRX timeout” влияет на среднее потребление, так как определяет ток приемника в активной фазе. Активная фаза присутствует всегда, даже когда сигнал передатчиком не передается. Если полезного сигнала нет, то приемник находится в активном режиме в течение “FastRX timeout” и потребляет ток порядка 8 мА. В паузах между приемом ток потребления находится в районе 600 нА.

Без использования режима “Sniff” при настройках радио по умолчанию в режиме приема измеренный ток потребления 8 мА соответствует документации. Для измерения тока потребления нужно снять джампер и подключиться к разъему JP1 (рис. 15).

 Ток потребления в режиме приема

Рис. 15. Ток потребления в режиме приема

Теперь для тех же самых настроек радио переведем передатчик в режим работы с длинной преамбулой. Установим преамбулу максимальной длины 255 байт. Длительность пакета составит 11,6 мс (рассчитывается программой и отображается на вкладке TX). Текущий уровень шума при данной полосе приемника составляет примерно -115 дБм при отключенной антенне (антенна отключена специально, чтобы получить слабые сигналы даже при рядом расположенных на столе платах передатчика и приемника). Текущий уровень шума можно посмотреть на вкладке “Running RSSI” или непосредственно в окне “Transmission Test” – “RX”, нажимая на кнопку “Sense RSSI” (15). Исходя из этих цифр, установим следующие параметры для режима “Sniff”:

  • WakeUp timer = 9 мс (он должен быть менее длительности преамбулы пакета передатчика);
  • RSSI threshold = -100 дБм (порог должен быть выше уровня эфирного шума).

Теперь запустим приемник и будем на передатчике в произвольные моменты времени отправлять пакет кнопкой “START”. Чтобы отправлять только один пакет, в окне “Total packets” поставим “1”. Прием в режиме “Sniff” представлен на рис. 16.

Прием в режиме “Sniff Mode” (вариант 1)

Рис. 16 Прием в режиме “Sniff Mode” (вариант 1)

Ток потребления приемником снизился с 8 мА до 410 мкА (рис. 17).

Ток потребления в режиме “Sniff Mode” (вариант 1)

Рис. 17. Ток потребления в режиме “Sniff Mode” (вариант 1)

Здесь необходимо сделать небольшое замечание по поводу замера тока потребления. При измерении тока в режиме “Sniff” с помощью обычного мультиметра может возникать ошибка, связанная с быстродействием и классом прибора. Ток потребления носит импульсный характер с большим динамическим диапазоном (нА…мА), поэтому более корректный результат можно получить, измеряя падение напряжения на резисторе в цепи питания с помощью осциллографа. Лучше всего использовать специализированный измеритель, однако такое оборудование довольно дорого. Подсчитать теоретически потребляемый ток можно с помощью программы S2-LP consumption Tool v.1.0.0. Эта программа находится в той же папке, что и S2-LP DK GUI (C:\S2-LP DK_1.2.0\GUI\S2-LP_Cons.exe). Для наших настроек скорости, полосы и периода пробуждения теоретический расчет показывает ток потребления = 433 мкА (рис. 18), что неплохо согласуется с практическими измерениями.

Теоретический расчет тока потребления для варианта 1

Рис. 18. Теоретический расчет тока потребления для варианта 1

Проведем еще один тест в режиме “Sniff”. В варианте 2 (рис. 19) снизим скорость передачи до 5 кбит, девиацию до 10 кГц и полосу пропускания до 50 кГц. Установим длину преамбулы в 50 байт. При данных настройках длительность пакета составит 120 мс. Длительность преамбулы составит около 80 мс, поэтому установим период пробуждения приемника = 70 мс (он должен быть меньше длительности преамбулы). Максимальное время задержки доставки пакета в такой в системе связи получается менее 100 мс.

Ток потребления в режиме “Sniff Mode” (вариант 2)

Рис. 19. Ток потребления в режиме “Sniff Mode” (вариант 2)

Рассчитанный ток потребления должен быть в районе 90 мкА (рис. 20), однако измерительный прибор показывает лишь 30 мкА (рис. 21), что является заведомо неверным результатом. Для измерения потребления коротких импульсов тока данный прибор не подходит.

Теоретический расчет тока потребления для варианта 2

Рис. 20. Теоретический расчет тока потребления для варианта 2

Некорректное измерение в режиме “Sniff Mode” (вариант 2)

Рис. 21. Некорректное измерение в режиме “Sniff Mode” (вариант 2)

Тонкое управление S2-LP

Закладка “Low Level Command” позволяет выполнить следующие операции (нумерация согласно рис. 22):

Управление режимами работы S2-LP

Рис. 22. Управление режимами работы S2-LP

  • просмотреть версию чипа (1);
  • считать текущий статус S2-LP (2);
  • определить рабочую частоту кварца, которая составит 24, 25, 26, 48, 50, 52 МГц (3);
  • установить режим приема с пониженным до 6,7 мА током потребления (4);
  • изменять частоту и выходное напряжение SMPS (5);
  • использовать GPIO-линии S2-LP для приема-передачи данных (6);
  • производить прямое чтение и запись регистров (7).

Экспорт настроек и регистров

Текущую конфигурацию программы можно сохранить через команду меню “File” – “Save Config File”. Загрузить сохраненные настройки можно через команду меню “File” – “Load Config File”. Этим удобно пользоваться, если нужно быстро изменять настройки радиоканала для разных проектов.

В правой части рабочего поля программы расположено окно «Б» (рисунок 23), где отображаются все регистры трансивера. При изменении настроек в окне «А» в регистры вносятся соответствующие изменения. Для обновления отображения регистров можно использовать кнопку “Refresh” (1). С помощью кнопки “Expand” (2) можно просмотреть все битовые поля в регистрах. Закрыть расширенное представление можно с помощью кнопки “Collapse” (3).

Сохранение содержимого регистров в виде файла производится кнопкой “Export” (4). Для последующей загрузки сюда же используйте кнопку “Import” (5).

 Отображение состояния регистров

Рис. 23. Отображение состояния регистров

Значения регистров можно также экспортировать в виде C-кода для последующего использования в своем проекте. Это делается через меню “Tools” – “Export Code Configuration…”

Некоторые замечания

  • Несмотря на то, что уровень RSSI threshold отображается в программе по умолчанию как -130 дБм, реальная величина в регистре 0x18 по умолчанию составляет 0x28, что не позволяет принимать сигналы с уровнем менее -106 дБм. Для того чтобы установить максимальный уровень чувствительности приемника, необходимо запустить и через секунду остановить режим приема (не важно, принято что-либо или нет). Далее нажимаем на кнопку “Refresh” и убеждаемся, что правильное значение занесено в регистр 0x18. Для -130 дБм это значение должно быть равным 0x10.
  • Используемая для данной статьи плата STEVAL-FKI868V1-R (российского производства) является аппаратной копией оригинальной платы STEVAL-FKI868V1 (ST). Однако есть небольшое различие. Дело в том, что на оригинальной плате ST есть микросхема EEPROM-памяти, куда при производстве заносятся индивидуально измеренные для данной платы параметры, среди которых есть наименование платы и точное значение частоты кварца (отклонение от номинала). Использование этой микросхемы EEPROM не является обязательным для работы микросхемы S2-LP. В платах STEVAL-FKI868V1-R (российских) эта микросхема EEPROM установлена, но она чистая, так как у производителя не было специализированного оборудования для выполнения этой операции. В этом смысле работа с платой STEVAL-FKI868V1-R ближе к реальной ситуации отечественного процесса разработки, где едва ли будет закладываться отдельная EEPROM для автоматизированного сохранения персональных параметров каждого устройства при производстве. Работа платы с чистой микросхемой памяти предусмотрена разработчиками ST, причем это учтено как в программе S2-LP DK GUI, так и в примерах кода. Если память не содержит производственных данных, то программа просто не использует информацию из EEPROM.
  • На каждую плату STEVAL-FKI868V1-R вручную нанесено отклонение частоты от реальной (рядом с джампером JP1). Если на плате вы видите надпись +4, то это означает, что при установке генерации несущей на частоте 868 000 кГц реальная частота для данной платы составила 868004 кГц (измерялось с точностью до 1 кГц).
  • Программа S2-LP DK GUI в целом работает неплохо, однако при работе наблюдались некоторые баги, например, зависание при быстром нажатии на кнопки: если нажать на кнопку “START” и сразу же на “STOP”. Возможно, это присуще только конкретной конфигурации W

Заключение

Новый трансивер S2-LP является хорошим выбором для беспроводной передачи данных в диапазонах 433 или 868 МГц. Высокая чувствительность, отличные показания по избирательности, малое энергопотребление и привлекательная цена позволяют применять этот приемопередатчик в различных устройствах – от миниатюрных батарейных датчиков до систем безопасности с высокими требованиями к устойчивости канала связи. С помощью платы STEVAL-FKI868V1-R и графической оболочки S2-LP DK GUI можно за считанные часы познакомиться с работой микросхемы S2-LP и проверить выбранный радиопротокол на практике.

Производитель: STMicroelectronics
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
STM32L152CBU6
STM32L152CBU6
STMicroelectronics
Арт.: 793290 ИНФО PDF AN RD
Доступно: 6199 шт. от: 399 руб.
Микроконтроллер - [UFQFPN48]
STM32L152CBU6 399,00 от 9 шт. 342,00 от 20 шт. 314,00
16 шт.
(на складе)
6183 шт.
(под заказ)
STM32L152RDT6
STM32L152RDT6
STMicroelectronics
Арт.: 1026132 ИНФО PDF AN RD
Доступно: 3615 шт. от: 493 руб.
Микроконтроллер - [LQFP-64]; Примечание: Ultra-low-power ARM Cortex-M3 MCU with 384 Kbytes Flash, 32 MHz CPU, LCD, USB, 3xOp-amp
STM32L152RDT6 493,00 от 8 шт. 423,00 от 16 шт. 388,00
19 шт.
(на складе)
3596 шт.
(под заказ)
SPIRIT1QTR
SPIRIT1QTR
STMicroelectronics
Арт.: 1028833 ИНФО PDF AN
Доступно: 18094 шт. от: 179 руб.
Микросхемы / Радиочастотные / Приёмопередатчики
SPIRIT1QTR 179,00 от 20 шт. 153,00 от 44 шт. 141,00
1406 шт.
(на складе)
16688 шт.
(под заказ)
STM32L152CBT6A
STM32L152CBT6A
STMicroelectronics
Арт.: 1490380 PDF AN RD
Доступно: 781 шт. от: 374 руб.
MCU, 32BIT, CORTEX-M3, 32MHZ, LQFP-48
STM32L152CBT6A 374,00 от 10 шт. 321,00 от 21 шт. 294,00
117 шт.
(на складе)
664 шт.
(под заказ)
S2-LPQTR
S2-LPQTR
STMicroelectronics
Арт.: 2260534 ИНФО
Доступно: 19074 шт. от: 250 руб.
Радиотрансивер Ultra-low power, high performance, sub-1GHz transceiver
S2-LPQTR 250,00 от 15 шт. 214,00 от 31 шт. 197,00
413 шт.
(на складе)
18661 шт.
(под заказ)
Производитель: Texas Instruments
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
CC1101RGP
CC1101RGP
Texas Instruments
Арт.: 1185312 ИНФО PDF AN RD
Доступно: 14541 шт. от: 282 руб.
Радиотрансивер Low-Power Sub-1GHz. Макс. скорость передачи: 500 kb/s, выходная мощность: 12 dBm, рабочее напряжение питания: 1.8 V to 3.6 V.
CC1101RGP 282,00 от 13 шт. 242,00 от 28 шт. 222,00
2 шт.
(на складе)
14539 шт.
(под заказ)
CC1120RHBT
CC1120RHBT
Texas Instruments
Арт.: 1185318 ИНФО PDF AN RD
Доступно: 11860 шт. от: 350 руб.
Радиотрансивер Hi Perf; частотный диапазон: 164...192 MHz, 410...480 MHz, 820...960 MHz; максимальная скорость передачи: 200 kb/s; выходная мощность: 16 dBm. Тип: Multiband Рабочее напряжение питания: 2 V to 3.6 V
CC1120RHBT 350,00 от 11 шт. 300,00 от 23 шт. 275,00
190 шт.
(на складе)
11670 шт.
(под заказ)
CC1310F128RHBT
CC1310F128RHBT
Texas Instruments
Арт.: 2015907 ИНФО PDF AN RD
Доступно: 13575 шт.
Выбрать
условия
поставки
"Беспроводной микроконтроллер Cortex-M3, суб-1ГГц, 32 бит, 48 Мгц, flash 128 КБ, 20 КБ RAM 1,8..3.8 В, VQFN-32 Параметры: Архитектура: ARM Cortex-M0,…
CC1310F128RHBT
13575 шт.
(под заказ)
Выбрать
условия
поставки