STM32WL MCU series беспроводная система-на-кристалле

Содержание

Слайд 2

Новое беспроводное семейство в STM32 MPU Optimized for mixed-signal Applications Optimized

Новое беспроводное семейство в STM32

MPU

Optimized for mixed-signal Applications

Optimized for mixed-signal applications

Более

60,000 клиентов Более 6 миллиардов STM32 отгружено с 2007

Dual-core architecture: Cortex-M4 and M0+

Слайд 3

Система на кристалле созданная для универсальности = На одном кристалле Беспроводной

Система на кристалле созданная для универсальности

=

На одном кристалле

Беспроводной микроконтроллер большой дальности –

один кристалл, множество возможностей для интернета вещей

Первая
в мире!

Arm®
Cortex®-M0+

+

Слайд 4

Сделайте выбор в пользу серии STM32WL Экономия средств Открытая двухядерная платформа

Сделайте выбор в пользу серии STM32WL

Экономия средств

Открытая двухядерная платформа

8 ключевых факторов отличающих

STM32WL

Множество видов модуляции

Ультранизкое энергопотребление

Не беспокойтесь!

Широкий выбор вариантов

Встроенная безопасность

Законченная экосистема (передовые средства тестирования, генератор C-кода…)

Слайд 5

4 модуляции – множество протоколов (G)FSK - based proprietary Proprietary Proprietary + proprietary

4 модуляции – множество протоколов

(G)FSK

- based proprietary

Proprietary

Proprietary

+ proprietary

Слайд 6

STM32WL5x – богатый набор возможностей, одно или два ядра, повышенная безопасность

STM32WL5x – богатый набор возможностей, одно или два ядра, повышенная безопасность

Ключевые

характеристики
Arm® Cortex®-M4 & DSP up to 48 MHz
Up to 256 KB Flash and 64 KB SRAM
Arm® Cortex®-M0+ up to 48 MHz
Радио диапазона до 1 ГГц
Multi-modulation: LoRa, (G)FSK, (G)MSK, BPSK
2 embedded power amplifiers:
1 output up to +15 dBm
1 output up to +22 dBm
LoRa RX sensitivity: -148 dBm (SF12, BW=10.4kHz)
RX: 4.82mA and TX: 15mA (at 10dBm) / 87mA (at 20dBm) [3.3V]
Ультранизкое энергопотребление
< 71µA/MHz Active mode (3V - RF OFF)
1 µA Stop2 mode with RAM retention
390 nA Standby mode with RTC
31 nA Shutdown  mode
Периферия
3xI²C, 2xUSART, 1xLP-UART, 2xSPI
7x timers + 2x ULP Comparators
Передовые средства безопасности
1.8 to 3.6V voltage range (DC/DC, LDO)
-40 to up to +105°C temperature range
-> Типы корпусов: QFN48, BGA73
Слайд 7

Линейка продуктов STM32WL Sub-GHz Flash / RAM Size (bytes) 73 pins

Линейка продуктов STM32WL Sub-GHz

Flash / RAM
Size (bytes)

73 pins
5x5 mm
BGA (p=0.5)

48 pins
7x7mm


UQFN (p=0.5)

Число выводов

STM32WLExJ8

64K / 20K

STM32WLExJB

128K / 48K

256K / 64K

STM32WL5xJC

STM32WLExJC

STM32WLExC8

STM32WLExCB

STM32WL5xCC

STM32WLExCC

256K / 64K

До 43 GPIOs для максимальнойгибкости
+
Малый размер корпуса

до 29 GPIOs +
экономия на
BOM cost
+
Можно использовать 2 слоя PCB

Примечание: x = 5 доступны все виды модуляции x = 4 все виды модуляции за исключением LoRa

Два ядра (Dual core)

Одно ядро (Single core)

Слайд 8

Гибкая схема питания FlexPowerControl RUN (Range1) at 48 MHz 71* /

Гибкая схема питания FlexPowerControl

RUN (Range1) at 48 MHz 71* / 115

µA / MHz

STANDBY 71 nA*

VBAT 5*** / 200 nA**

SHUTDOWN 31*** / 175 nA**

STANDBY + 32 KB RAM 390 nA**

Wake-up
time to RUN

STOP 2 (full retention) 1 µA**

RUN (Range2) at 16 MHz 100* / 115 µA / MHz

* Typical values with SMPS, RF OFF
** with RTC on LSE Bypass
*** All OFF

Typ with LDO @ VDD = 3 V @ 25 °C

6 cycles

SLEEP at 48 MHz 28* / 35 µA / MHz

5.5 µs

Возможна работа Радио (RF Capable)

STOP 1 (full retention) 4.55 µA**

29 µs

267 µs

29 µs

5 µs

Слайд 9

Ультранизкое потребление & готовность для IoT-проектов в любых странах мира Лучшее

Ультранизкое потребление & готовность для IoT-проектов в любых странах мира

Лучшее решение

на рынке с поддержкой технологии LoRa

Всемирная
совместимость

Слайд 10

STM32WL: избавляемся от TCXO! Минимизируйте стоимость компонентов, максимизируйте прибыль AND / OR

STM32WL: избавляемся от TCXO!

Минимизируйте стоимость компонентов, максимизируйте прибыль

AND / OR

Слайд 11

Safety Back-up clock circuitry Supply monitoring Dual watchdog Flash memory with

Safety

Back-up clock circuitry
Supply monitoring
Dual watchdog
Flash memory with ECC (address status register)
SRAM

Parity check
Cyclic Redundancy Check
Brown-out reset in all modes
Clock Security System
Backup byte registers

Security

Tamper detection
Read & Write protection
Memory Protection Unit (MPU)
Software IP Protection
True Random Number Generator
AES and Public Key Accelerator
Unique IDs (64- and 96-bit)
Boot-Lock in user Flash
Secure hardware isolation between CM4 / CM0
Boot selection
Secure Boot code protection
Debug control
Secure Firmware Install
Secure Boot Secure Firmware Update*
Key Management Services*
Crypto Library*

STM32WL – безопасность и защита

Обезопасьте свое приложение – работоспособность изделия, ваш код и передаваемые данные

* Software downloadable on st.com

Слайд 12

LoRaWAN – микросхемы и стеки протоколов Доступные чипы, готовый к использованию

LoRaWAN – микросхемы и стеки протоколов

Доступные чипы, готовый к использованию стек

Сертифицированный

LoRaWAN стек
Открытый стек
Доступен на сайте st.com/STM32CubeWL

Arm Cortex-M4

Application Firmware
+
Radio stack

STM32WLE5

Arm Cortex-M4

Application Firmware

STM32WL55

Arm Cortex-M0+

Radio stack
+ Advanced security services

Открытая платформа

Слайд 13

Наслаждайтесь Sigfox, где бы вы ни находились Доступный SoC для глобальной

Наслаждайтесь Sigfox, где бы вы ни находились

Доступный SoC для глобальной сети

Сертифицированный

стек от RC1 до RC7 + Monarch certified!
Открытый стек
Доступен на сайте st.com/STM32CubeWL

Arm Cortex-M4

Application Firmware
+
Radio stack

STM32WLE5

Arm Cortex-M4

Application Firmware

STM32WL55

Arm Cortex-M0+

Radio stack
+ Advanced security services

Открытая платформа

Слайд 14

STM32WL и W-MBUS STM32WL идеально подходит для умных счетчиков энергии STM32 Partner

STM32WL и W-MBUS

STM32WL идеально подходит для умных счетчиков энергии

STM32 Partner

Слайд 15

STM32WL и FUOTA Подходят для массового обновления полевых устройств STM32WL Не

STM32WL и FUOTA

Подходят для массового обновления полевых устройств STM32WL

Не зависит от

LoRaWAN Network Server*

Подходит для LoRaWAN устройств Class B и C

* если Network Server полностью совместим с LoRaWAN

Обновление встроенного ПО по воздуху

Библиотеки FUOTA доступны в STM32CubeWL

Слайд 16

STM32WL – обзор экосистемы Полностью интегрированы в богатую и проверенную рынком

STM32WL – обзор экосистемы

Полностью интегрированы в богатую и проверенную рынком экосистему

STM32

Flexible prototyping

STM32 Nucleo-64

STM32CubeMX
STM32CubeWL
STM32CubeMonitor
STM32CubeProg
STM32CubeIDE + Partners IDEs

Dev tools

LoRaWAN (ST)
Sigfox (ST)
Wireless-MBUS / Mioty (Stackforce)
ZETA (Zifisense)

Stacks

Слайд 17

Создание прототипа на раз-два-три NUCLEO-WL55JC

Создание прототипа на раз-два-три

NUCLEO-WL55JC

Слайд 18

Отладочная плата STM32WL Nucleo-64 Основные возможности NUCLEO-WL55JC1 868/915/923 MHz NUCLEO-WL55JC2 433/470 MHz

Отладочная плата STM32WL Nucleo-64

Основные возможности

NUCLEO-WL55JC1
868/915/923 MHz

NUCLEO-WL55JC2
433/470 MHz

Слайд 19

Запомните главное: полная экосистема

Запомните главное: полная экосистема

Слайд 20

Реализуйте ваши идеи 9

Реализуйте ваши идеи

9

Слайд 21

STM32WL: архитектура и периферия

STM32WL: архитектура и периферия

Слайд 22

Минутка юмора

Минутка юмора

Слайд 23

Архитектура & периферия Ключевые темы Архитектура STM32WL Новая периферия STM32WL Низкопотребляющие режимы STM32WL

Архитектура & периферия

Ключевые темы
Архитектура STM32WL
Новая периферия STM32WL
Низкопотребляющие режимы STM32WL

Слайд 24

Архитектура STM32WL5 - это два CPU: Cortex-M4 Cortex-M0+ Sub-GHz радио Независимая

Архитектура

STM32WL5 - это два CPU:
Cortex-M4
Cortex-M0+
Sub-GHz радио
Независимая работа двух CPU
3 автономных подсистемы
Cortex-M4

(CPU1)
Cortex-M0+ (CPU2)
Sub-GHz радио

Полностью автономная и независимая работа двух ядер реального времени
Оптимизировано для низкого потр.
Гибкое тактирование системы
Автономное радио
Возможность изоляции радиостека

Преимущества решения

Слайд 25

Архитектура 3 автономных подсистемы Cortex-M4 (CPU1) Cortex-M0+ (CPU2) Radio (радиотрансивер) Общий

Архитектура

3 автономных подсистемы
Cortex-M4 (CPU1)
Cortex-M0+ (CPU2)
Radio (радиотрансивер)
Общий домен
Flash, SRAM1 & 2, RCC,

PWR, EXTI
Остальная периферия - общая
В общем домене:
IPCC, HSEM, AES, PKA, RNG, GTZC, CFI,
sub-GHz radio
В домене CPU1
DMA, TIM, SPI, USART, I2C, WDG, ADC, DAC, TEMP, RTC, TAMP.
Слайд 26

Специфические особенности 1/2 Автономная подсистема sub-GHz радио Двухъядерная система CPU1 Cortex-M4

Специфические особенности 1/2

Автономная подсистема sub-GHz радио
Двухъядерная система
CPU1 Cortex-M4 (Стартует после сброса)
CPU2

Cortex-M0+ (Активируется программно из CPU1).
Однобанковая Flash- и SRAM-память
Каждая на отдельной шине AHB, с собстенным делителем частоты
CPU2 Cortex-M0+ допускает изоляцию памяти и периферии
HSE фиксирован на 32 MHz с возможностью подкл. TCXO.
Слайд 27

Специфические особенности 2/2 4 dedicated SMPS pins 8 dedicated Radio pins

Специфические особенности 2/2

4 dedicated SMPS pins

8 dedicated Radio pins

На других корпусах

- аналогично

Debug Cross trigger unit, «двухъядерная отладка»
Включает SMPS для снабжения ядра и sub-GHz радио
Продуманная разводка пинов питания и радио

Слайд 28

SUBGHZ Радио TRX: ISM band 150 – 960 MHz, LoRa™, from

SUBGHZ Радио

TRX: ISM band 150 – 960 MHz,
LoRa™, from 0.013 to

17.4 kbps
(G)FSK, from 0.6 to 300 kbps
(G)MSK, from 0.1 to 10 kbps
Sigfox BPSK, from 100 bps to 600 bps
Oscillator (HSE&RFPLL source),
Общий контроль питания и энергосбереж.
SPI securable command base interface
Radio Interrupt,
Radio operating mode independent from CPU,
High output power up to +22 dBm

Radio Peripheral

PLL

PDS

Control I/F


XO

FSK Modem

Mixer

ADC

AM

RFsw

Balun

MN

MN

LORA Modem

D
F
E

Приемопередатчик в МК STM32WL

Слайд 29

SUBGHZ Радио (типовой радио-БОМ) Радио (RF) Balun to convert from unbalanced

SUBGHZ Радио (типовой радио-БОМ)

Радио (RF)
Balun to convert from unbalanced to balanced

in Rx
(Балун для перевода из небалансного режима в балансный)
MN: Matching Network (inc. Band pass filter )
RF Switch for better perf (mandatory
for Sigfox)
Согласование антенны (если она не 50 Ом)
Антенна (как вариант – PCB-антенна)
Генератор
TCXO обязательно только для Sigfox
XO – только для LoRa

Radio Peripheral

PLL

PDS

Control I/F

LNA

HPA

XO

FSK Modem

Mixer

ADC

AM

LPA

RFsw

Balun

MN

MN

LORA Modem

D
F
E

Доп. индуктивность, если используется SMPS

Слайд 30

SUBGHZ Радио Радио активно Startup Sleep Calibration Standby FS TX RX

SUBGHZ Радио

Радио
активно

Startup

Sleep

Calibration

Standby

FS

TX

RX

Теплый старт

Холодный старт

Передача

Прием

Сброс

Машина состояния транссивера STM32WL

Слайд 31

SUBGHZ Радио Буфер TX Записывается в коде, вычитывается аппаратно Параметры: TxBaseAddr,

SUBGHZ Радио

Буфер TX
Записывается в коде, вычитывается аппаратно
Параметры:
TxBaseAddr,
TxBufferPointer
PayloadLength
Буфер RX
Записываются аппаратно, читаются

программно
Параметры:
RxBaseAddr,
RxStartBufferPointer
RxPayloadLength

TX Data buffer

RX Data buffer

Received
payload

TxBufferPointer

RxStartBufferPointer +
RxPayloadLength

RxStartBufferPointer

TxBaseAddr +
PayloadLength

TxBaseAddr

RxBaseAddr

В программе
процессора

На стороне
Sub-GHz

Read_Buffer()

Write_Buffer()

RAM

Буфер данных 256 байт RAM

Слайд 32

Система питания - PWR 2 COMP ADC, DAC VREF buffer VREF+

Система питания - PWR

2 COMP

ADC, DAC

VREF buffer

VREF+

VDDA

CPU1, CPU2
SRAM1,2
Digital
Peripherals
Radio sub-system

VCORE

VDD

I/O ring

Flash

SMPS

Standby circuitry

(wakeup, IWDG)

Reset block

Temp. sensor

PLL, HSI16, MSI

VBAT

Voltage Regulators

VDDRF

Backup domain
LSE, RTC, backup registers

sub-GHz Radio
HSE

Схема питания

VFBSMPS

VDDSMPS

VDD , VDDSMPS , VDDRF : 1V71 ... 3V6 ; 1V95 min, for SUBGHZ RF operation
VFBSMPS regulated 1.5 V
VDDA from 1.62 to 3.6 V
VBAT from 1.55 to 3.6 V including the RTC and backup registers

Слайд 33

Режимы энергосбережения - PWR RUN (Range1) at 48 MHz 71* /

Режимы энергосбережения - PWR

RUN (Range1) at 48 MHz 71* / 115

µA / MHz

STANDBY 71 nA*

VBAT 5*** / 200 nA**

SHUTDOWN 31*** / 175 nA**

STANDBY + 32 KB RAM 390 nA**

Wake-up
time to RUN

STOP 2 (full retention) 1 µA**

RUN (Range2) at 16 MHz 100* / 115 µA / MHz

* Typical values with SMPS, RF OFF
** with RTC on LSE Bypass
*** All OFF

Typ with LDO @ VDD = 3 V @ 25 °C

6 cycles

SLEEP at 48 MHz 28* / 35 µA / MHz

5.5 µs

RF
Capable

STOP 1 (full retention) 4.55 µA**

29 µs

267 µs

29 µs

5 µs

Слайд 34

Питание/тактирование PWR / RCC 3 подсистемы CPU1 Corex-M4 (синий) CPU2 Cortex-M0+

Питание/тактирование PWR / RCC

3 подсистемы
CPU1 Corex-M4 (синий)
CPU2 Cortex-M0+ (оранжевый)
Radio system (фиолетовый)
Всегда

тактируется (зеленый)
Независимые режимы
CRun
CSleep
CStop
Периферия аллоцируется на каждый CPU через RCC

SUBGHZSPI

Слайд 35

Питание/тактирование PWR / RCC Каждый CPU может переходить в свой режим

Питание/тактирование PWR / RCC

Каждый CPU может переходить в свой режим энгергопотребления

(Stop0, Stop1, Stop2, Standby, или Shutdown).
Каждый CPU определяет источники пробуждения.
Когда оба CPU входят в WFI или WFE, спец. HW механизм синхронизирует эти запросы, и для системы выбирается общий (наиболее активный) режим
При пробуждении каждого из CPU, второй CPU не пробуждается
Когда STM32WL5 просыпается из состояния Stop от какого то из источников пробуждения, то лишь CPU, зарегистрированный за этим источником, просыпается, а другой остается в WFI (или WFE) нетактируемым
Когда STM32WL5 выходит из состояния Standby по сигналу от источника, который был закреплен за конкретным CPU, только этот CPU и пробуждается, при этом второе ядро продолжает находиться в сброшенном состоянии

Общие режимы питания процессоров: автоматическое управление

Слайд 36

Связь SUBGHZ и PWR Sub-GHZ радио само управляет режимами питания своих

Связь SUBGHZ и PWR

Sub-GHZ радио само управляет режимами питания своих подсистем
Sub-GHz

радио может автоматически просыпатьcя по сигналу низкопотребляющего таймера или по инициативе CPU
Sub-GHz радио не влияет на режимы работы обоих CPU. Радио может быть полностью активно, когда процессоры нах-ся в Stop или Standby
Sub-GHz может пробуждать процессор из Stop/Standby с помощью специальных прерываний

SUBGHZ управляет режимами питания

Слайд 37

Система питания - PWR Повышенная производительность при спользовании SMPS Добавив внешнюю

Система питания - PWR

Повышенная производительность при спользовании SMPS
Добавив внешнюю индуктивность, можно

использовать SMPS для снижения потребления
SMPS может быть использован для обеспечения питания VDD , с его цифровой периферией и SUBGHZ (typ. 1V5)
Эконом-вариант с LDO
Без внешней индуктивности SMPS не доступен. Вместо него LDOs напрямую питают VDD
Обратная сторона этого решения – более высокое энергопотребление системы

Конфигурация с SMPS

Конфигурация с LDO

Full Vdd range [1.62..3.6V]
High efficiency SMPS

Full Vdd range [1.62..3.6V]
Low BOM
Low noise

ИЛИ

Слайд 38

Системы сброса и тактирования - RCC Гибкость в выборе источников тактирования

Системы сброса и тактирования - RCC
Гибкость в выборе источников тактирования для

достижения точности частоты такт-я при мин. потребл.
Раздельное управление тактированием для обоих CPU
Безопасное и гибкое управление сбросом.

Преимущества

to processors
and peripherals

AHB

rcc_irq

PLL

HSI16

MSI

LSI

LSE

HSE32

System Reset Control

Clock distribution

Clock gating control

to processors and peripherals

Register Interface

rcc_HSE32css_irq

rcc_lsecss_irq

NRST

OSC_IN/OUT

OSC32_IN/OUT

RCC

peripheral kernel clocks

to peripherals

Блок Reset and Clock Controller (RCC) позволяет осуществлять:
Генерацию необходимых тактирований
CPU1, CPU2 и шинная матрица
Тактирование периферии ядер
PLL-, кварцевые и RC-генераторы
Разрешение и запрещение тактирования
Сброс отдельных блоков и всей системы

Слайд 39

RCC / PWR Системная периферия: PWR, RCC, EXTI, FLASH, SRAM1 and

RCC / PWR

Системная периферия:
PWR, RCC, EXTI, FLASH, SRAM1 and SRAM2
Активна для

обоих CPUs.
Выделяемая периферия:
Flash interace, IPCC, PKA, RNG, AES2, SUBGHZSPI, PERn.m
Назначается на CPU1 или CPU2
Общая периферия
Включаются только необходимые CPU, шинные матрицы и периферийные блоки

Большинство клоков на процессоры и шины индивидуально разрешаются на каждый CPU. Регистры RCC_AHBxENR и RCC_APBxENRy привязывают периферию к CPU1. RCC_C2_AHBxENR and RCC_C2_APBxENR - к CPU2.

Слайд 40

Блок тактирования RCC / TCXO Внешний TCXO Питается от специального пина

Блок тактирования RCC / TCXO

Внешний TCXO
Питается от специального пина PB0-VDDTCXO
Разрешается, через

HSEBYPPWR

Термокомпенсированный кварцевый генератор

Слайд 41

Низкочастотный RC генератор - RCC / LSI Ультра-низкопотребляющий LSI (работает во

Низкочастотный RC генератор - RCC / LSI

Ультра-низкопотребляющий LSI (работает во всех

режимах, кроме Shutdown и VBAT)
Может быть использован RTC, LPTIMs, и IWDG (в радио не может быть использован)
Подстройка через HSE32 и TIM16.

32kHz LSI с функцией подстройки частоты

Слайд 42

Тактирование Радио - RCC / SUBGHZ Радиоприемопередатчик не нуждается в обслуживании

Тактирование Радио - RCC / SUBGHZ

Радиоприемопередатчик не нуждается в обслуживании CPU
Напрямую

управляет HSE32
Необходимые клоки автоматически включаются для нужд радиотракта
Как внутренние, так и внешние генераторы, делители и проч.

Радио автономно

Слайд 43

STM32WL Lora Phy демонстрация-лаба Передаем данные «точка-точка»

STM32WL Lora Phy демонстрация-лаба Передаем данные «точка-точка»

Слайд 44

Точка-точка - P2P Что мы изучим: некоторые базовые принципы Изучим реальный

Точка-точка - P2P

Что мы изучим: некоторые базовые принципы
Изучим реальный проект радиосвязи

на STM32WL
Проприетарный протокол на Lora
Секвенсор (Sequencer) для экономии энергии
Оценка занятости канала
Слайд 45

Модель P2P: network ID,TS,FSent,Fack \ user text „ACK” (0x41,0x43,0x4B) Base Station

Модель P2P: network

ID,TS,FSent,Fack \ user text

„ACK” (0x41,0x43,0x4B)

Base Station (trainer)

Node (attendee)

Node periodically

sends, if RF channel is free, following data:
Node ID: 1 byte,
Temperature: 1 byte,
Frame Sent Counter: 2 bytes,
Frame Ack Counter: 2 bytes.
App log is printed out: VCP, 115200,8,N,1,
Alternative frame format is possible: user defined text
Base Station receives data and send back, if RF channel is free, the acknowledge frame:
- Ascii string: „ACK” is send back,
- App log is printed out: VCP,115200,8,N,1
Слайд 46

Демонстрация примера P2P Prepare Base Station: connect to the PC one

Демонстрация примера P2P

Prepare Base Station: connect to the PC one of

the Nucleo-WL board and download the binary
…\STM32WL_WS\Hands-on\Attendee_resources\SubGHz_Phy_Base_Station.bin
You can just copy/paste the binary file from WS repository to ST-Link debugger disk drive instance using Windows Explorer

Source code of Base Station project is in below folder of the WS repository
…\Hands-on\Point2Point_Phy\Projects\NUCLEO-WL55JC\Applications\SubGHz_Phy\P2P_Base_Station

Слайд 47

Демонстрация примера P2P Start Nucleo VCP terminal: 115200,8,N,1 and test if

Демонстрация примера P2P

Start Nucleo VCP terminal: 115200,8,N,1 and test if Base

Station board is working, press Nucleo-WL reset button when connected

When Base Station board is working, disconnect the board from the PC

Слайд 48

Демонстрация примера P2P: параметры радио File: subghz_phy_app.h #define RF_FREQUENCY 868000000 /*

Демонстрация примера P2P: параметры радио

File: subghz_phy_app.h
#define RF_FREQUENCY 868000000 /* Hz */
#define

TX_OUTPUT_POWER 10 /* dBm */
#define LORA_BANDWIDTH 0 /* [0: 125 kHz, 1: 250 kHz, 2: 500 kHz */
#define LORA_SPREADING_FACTOR 7 /* [SF7..SF12] */
#define RF_CHANNEL_FREE_TRIALS_MAX 5
#define RF_CHANNEL_FREE_RSSI_TRESHOLD -80 /* dBm */
#define RSSI_SENSING_TIME 10 /* ms */
#define CS_BACKOFF_TIME_UNIT 20 /* ms */
Слайд 49

Демонстрация примера P2P: секвенсор Set Task Sequencer Event Execute Task Idle

Демонстрация примера P2P: секвенсор

Set Task

Sequencer

Event

Execute Task

Idle Task

LPM Manager

Enter LPM

Register Task

Reset Task

Low

Power-приложение: работает на событиях

Application

Start

Слайд 50

Демонстрация примера P2P: секвенсор Регистрация задачи UTIL_SEQ_RegTask((1 Запуск цикла секвенсора UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);

Демонстрация примера P2P: секвенсор

Регистрация задачи
UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_Sensor_Process),0,Sensor_Process);
Запуск цикла секвенсора
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
Активация задачи в

функции «коллбака» события
static void OnTxDone(void)
{
State = RX_START;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_Sensor_Process), CFG_SEQ_Prio_0);
}
Обработка бездействия секвенсора (переопределяемая функция)
void UTIL_SEQ_Idle(void)
{
UTIL_LPM_EnterLowPower();
}
Слайд 51

P2P: пример процесса «Сенсор» & FSM OnTimerTxEvent TX_START TX under CS

P2P: пример процесса «Сенсор» & FSM

OnTimerTxEvent

TX_START

TX under CS

RX_START

OnTxDone

OnRxDone

RX

RX_DONE

RF SLEEP

OnRxTimeout

RX_TO

OnRxError

RX_ERR

OnTxTimeout

TX_TO

Event / Callback

FSM

state

Action

SLEEP MCU

SLEEP MCU

SLEEP MCU

Слайд 52

P2P: Channel Sensing - оценка занятости канала Этот механизм введен для

P2P: Channel Sensing - оценка занятости канала

Этот механизм введен для минимизации

коллизий в канале радиообмена

RX: integrate RSSI

RSSI < Trsh

TX

Trial < Max

Wait backoff time

Start

Stop

Y

Y

N

N

Слайд 53

P2P: открываем проект в STM32CubeIDE Prepare Sensor node: connect to the

P2P: открываем проект в STM32CubeIDE

Prepare Sensor node: connect to the PC

2nd Nucleo-WL and open project using CubeIDE
File → Open Projects from File System...
…\Hands-on\Point2Point_Phy\Projects\NUCLEO-WL55JC\Applications\SubGHz_Phy\P2P_Sensor\STM32CubeIDE
Слайд 54

P2P: устройство проекта в STM32CubeIDE App lower & higher layer Core:

P2P: устройство проекта в STM32CubeIDE

App lower & higher layer

Core: main.c ,

etc.

Phy higher & lower layer

Low-Power Manager

Sequencer

Software timers

HAL library

Open in editor then put the cursor on subghz_phy_app.h and press F3 (open relevant file in editor as well)

Слайд 55

P2P: модификация File: subghz_phy_app.h Модифицировать NODE_ID по инструкции ведущего #define RX_TIMEOUT_VALUE

P2P: модификация

File: subghz_phy_app.h

Модифицировать NODE_ID по инструкции ведущего

#define RX_TIMEOUT_VALUE 2000 /* [ms]

*/
#define TX_TIMEOUT_VALUE 3000 /* [ms] */
#define BUFFER_SIZE 64 /* Define the payload size here */
#define LED_PERIOD_MS 100
#define LED_ERROR_PERIOD_MS 500
#define TX_PERIOD_MS 10000 /* App TX duty cycle */
#define TCXO_WORKAROUND_TIME_MARGIN 50 /* 50ms margin */
#define RF_CHANNEL_FREE_TRIALS_MAX 5
#define RF_CHANNEL_FREE_RSSI_TRESHOLD -70 /* [dBm] */
#define RSSI_SENSING_TIME 10 /* [ms] */
#define CS_BACKOFF_TIME_UNIT 20 /* [ms] */
#define NODE_ID (uint8_t)(0x01) /* Node address */
Слайд 56

P2P: hands-on – разбираемся в исходнике File: subghz_phy_app.c static void Sensor_Process(void)

P2P: hands-on – разбираемся в исходнике

File: subghz_phy_app.c

static void Sensor_Process(void)
{
int16_t temperatureDegC;

uint32_t i,backoffTime,carrierSenseTime;
int16_t rssi;
bool isChannelFree = true;
switch (State)
{
case TX_START:
temperatureDegC = GetTemperatureLevel();
i = 0;
#if 1 /* Byte data format */
Buffer[i++] = NODE_ID;
Buffer[i++] = temperatureDegC & 0xFF;
Buffer[i++] = (temperatureDegC>>8) & 0xFF;
Buffer[i++] = (FrameSentCnt>>8) & 0xFF;
Buffer[i++] = FrameSentCnt & 0xFF;
Buffer[i++] = (FrameAckCnt>>8) & 0xFF;
Buffer[i++] = FrameAckCnt & 0xFF;
#endif
.
.
.
}

Sensor_Process task implementation

static void OnTimerTxEvent(void *context)
{
State = TX_START;
UTIL_TIMER_Start(&timerTx);
UTIL_TIMER_Start(&timerLedTx);
SYS_LED_On(SYS_LED_BLUE);
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_Sensor_Process), CFG_SEQ_Prio_0);
}
.
.
.
static void OnRxDone(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr)
{
BufferSize = size;
memcpy(Buffer, payload, BufferSize);
RssiValue = rssi;
SnrValue = snr;
State = RX_DONE;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_Sensor_Process), CFG_SEQ_Prio_0);
}

Callback examples

Слайд 57

P2P: hands-on 1. Build 2. Debug 3. Stop debug when MCU

P2P: hands-on

1. Build

2. Debug

3. Stop debug when MCU is flashed

4. Start

Nucleo VCP terminal: 115200,8,N,1

5. Reset MCU

6. Follow terminal log

Слайд 58

STM32WL Олег Пушкарев КОМПЭЛ Радиомодуль

STM32WL

Олег Пушкарев
КОМПЭЛ

Радиомодуль

Слайд 59

Готовый дизайн радиомодуля Микросхема STM32WL QFN48 Размер платы 34 х 60

Готовый дизайн радиомодуля

Микросхема STM32WL QFN48
Размер платы 34 х 60 мм
Число

слоев платы – 2 или 4
Проект Altium Designer
Гербер-файлы
Перечень компонентов (BOM)
Доступны 4 версии схемы
Слайд 60

Схема радиомодуля

Схема радиомодуля

Слайд 61

Ссылки на документацию будут размещены на странице вебинара https://www.st.com/content/st_com/en/search.html#q=MB1720-t=resources-page=1 https://www.st.com/content/st_com/en/search.html#q=MB1791-t=resources-page=1

Ссылки на документацию будут размещены на странице вебинара

https://www.st.com/content/st_com/en/search.html#q=MB1720-t=resources-page=1
https://www.st.com/content/st_com/en/search.html#q=MB1791-t=resources-page=1

Слайд 62

STM32WL Олег Пушкарев КОМПЭЛ Практические тесты

STM32WL

Олег Пушкарев
КОМПЭЛ

Практические тесты

Слайд 63

Используем пример AT_Slave (описание в документе AN5481)

Используем пример AT_Slave (описание в документе AN5481)

Слайд 64

Проверка выходной мощности Установить частоту, тип модуляции (здесь FSK), выходную мощность

Проверка выходной мощности

Установить частоту, тип модуляции (здесь FSK), выходную мощность и

т.д.
AT+TCONF=868000000:10:4:12:4/5:0:0:1:16:25000:2:3
Далее
AT+TTONE
Остановить генерацию
AT+TOFF
Слайд 65

Обмен с сетью LoRaWAN RESET [2022-02-26_10:57:39:063]APP_VERSION: V1.1.0 [2022-02-26_10:57:39:063]MW_LORAWAN_VERSION: V2.3.0 [2022-02-26_10:57:39:063]MW_RADIO_VERSION: V1.1.0

Обмен с сетью LoRaWAN

RESET
[2022-02-26_10:57:39:063]APP_VERSION:  V1.1.0
[2022-02-26_10:57:39:063]MW_LORAWAN_VERSION: V2.3.0
[2022-02-26_10:57:39:063]MW_RADIO_VERSION: V1.1.0
[2022-02-26_10:57:39:063]###### OTAA ######
[2022-02-26_10:57:39:063]###### AppKey:  2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
[2022-02-26_10:57:39:063]######

NwkKey:  2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
[2022-02-26_10:57:39:063]###### ABP  ######
[2022-02-26_10:57:39:329]###### AppSKey: 2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
[2022-02-26_10:57:39:329]###### NwkSKey: 2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
[2022-02-26_10:57:39:329]###### DevEui:  00:80:E1:15:00:0A:9A:CA
[2022-02-26_10:57:39:329]###### AppEui:  01:01:01:01:01:01:01:01
[2022-02-26_10:57:39:329]###### DevAddr: 00:0A:9A:CA
[2022-02-26_10:57:39:329]ATtention command interface
[2022-02-26_10:57:39:424]AT? to list all available functions
AT+BAND=? – по умолчанию стоит европейский диапазон
[2022-02-26_10:57:43:492]5:EU868
AT+BAND=9 – переключаемся на RU_864*
[2022-02-26_10:57:43:492]OK
[2022-02-26_10:57:45:736]###### OTAA ######
[2022-02-26_10:57:45:736]###### AppKey:  2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
[2022-02-26_10:57:45:736]###### NwkKey:  2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
[2022-02-26_10:57:45:736]###### ABP  ######
[2022-02-26_10:57:45:736]###### AppSKey: 2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
[2022-02-26_10:57:45:736]###### NwkSKey: 2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C
[2022-02-26_10:57:45:944]###### DevEui:  00:80:E1:15:00:0A:9A:CA
[2022-02-26_10:57:45:944]###### AppEui:  01:01:01:01:01:01:01:01
[2022-02-26_10:57:45:944]###### DevAddr: 00:0A:9A:CA

AT+JOIN=0 – присоединение к сети
[2022-02-26_10:57:45:944]OK
[2022-02-26_10:57:52:105]+EVT:JOINED
AT+SEND=5:1:33 – отправляем данные с запросом подтверждения
[2022-02-26_10:57:52:105]OK
[2022-02-26_10:57:57:645]18s786:TX on freq 868900000 Hz at DR 0
[2022-02-26_10:57:57:645]OK
[2022-02-26_10:57:58:775]19s943:MAC txDone
[2022-02-26_10:57:59:845]20s977:RX_1 on freq 868900000 Hz at DR 0
[2022-02-26_10:58:01:021]22s128:MAC rxDone
[2022-02-26_10:58:01:021]+EVT:SEND_CONFIRMED
[2022-02-26_10:58:01:021]+EVT:RX_1, DR 0, RSSI -85, SNR 7

* В проекте сменить #define REGION_RU864 в файле set lorawan_conf.h

Слайд 66

Попытки передачи на 2 каналах [2022-02-26_11:02:13:565]OK [2022-02-26_11:02:14:849]276s002:MAC txDone [2022-02-26_11:02:15:908]277s038:RX_1 on freq

Попытки передачи на 2 каналах

[2022-02-26_11:02:13:565]OK
[2022-02-26_11:02:14:849]276s002:MAC txDone
[2022-02-26_11:02:15:908]277s038:RX_1 on freq 869100000 Hz at

DR 0
[2022-02-26_11:02:16:121]277s235:IRQ_RX_TX_TIMEOUT
[2022-02-26_11:02:16:121]277s236:MAC rxTimeOut
[2022-02-26_11:02:16:909]278s038:RX_2 on freq 869100000 Hz at DR 0
[2022-02-26_11:02:17:121]278s235:IRQ_RX_TX_TIMEOUT
[2022-02-26_11:02:17:121]278s236:MAC rxTimeOut
[2022-02-26_11:02:18:692]279s822:TX on freq 868900000 Hz at DR 0
[2022-02-26_11:02:19:993]281s142:MAC txDone
[2022-02-26_11:02:21:050]282s177:RX_1 on freq 868900000 Hz at DR 0
[2022-02-26_11:02:21:261]282s375:IRQ_RX_TX_TIMEOUT
[2022-02-26_11:02:21:261]282s375:MAC rxTimeOut
[2022-02-26_11:02:22:047]283s177:RX_2 on freq 869100000 Hz at DR 0
[2022-02-26_11:02:22:259]283s375:IRQ_RX_TX_TIMEOUT
[2022-02-26_11:02:22:259]283s375:MAC rxTimeOut
[2022-02-26_11:02:24:389]285s510:TX on freq 869100000 Hz at DR 0
Слайд 67

LoRaWAN в России На основе материалов из открытых источников и информации от компаний

LoRaWAN в России

На основе материалов из открытых источников и информации от компаний

Слайд 68

Карта покрытия LORAWAN ЭР-Телеком является единственным от России членом технического комитета

Карта покрытия LORAWAN

ЭР-Телеком является единственным от России членом технического комитета LoRa

Alliance*, что позволяет ему оказывать влияние на развитие стандарта
В 2018 году ЭР-Телеком запустил первую в России сеть промышленного IoT федерального охвата во всех с населением 300+
IoT-сеть ЭР-Телеком зарегистрирована в едином списке сетей операторского класса и имеет международный NetID–52, обеспечивающий возможность предоставлять роуминг
Слайд 69

Характеристики LoRaWAN-сети Москва 130+ базовых станций ~250 000 LoRaWAN-устройств Частотный план:

Характеристики LoRaWAN-сети

Москва
130+ базовых станций
~250 000 LoRaWAN-устройств
Частотный план: 868.9, 869.1 : 864.1,

864.3, 864.5, 864.7, 864.9
Более 2 млн пакетов в сутки
Рост общего трафика в Москве
Слайд 70

Компания Лартех Основана в 2015 в Санкт-Петербурге Разработчик HW/FW, производитель, интегратор

Компания Лартех

Основана в 2015 в Санкт-Петербурге
Разработчик HW/FW, производитель, интегратор
LoRaWAN modules, SX1272/Cortex-M0+/Cortex-M4/SoC

based
Electricity/water/heat/gas meters in partnership with leading manufacturers
816 687 meters in the field (Q3 2021)
Разработчик Middleware
Meritorious stack
LPWAN.DLMS
Разработчик платформы Sophrosyne
LoRaWAN Network Server
SAAS/PAAS
LPWAN.Metering
Сервисы
Network planning department
(~1000 coverage prediction calculations Q3 2021)
2700 LoRaWAN gateways under control