nich20xx 发表于 2020-7-2 07:31

【NUCLEO-WL55JC2测评4 】STM32WL sub-GHZ射频(LoRa\FSK..)

<div class='showpostmsg'> 本帖最后由 nich20xx 于 2020-7-5 06:31 编辑

# 1 前言
STM32WL的sub-GHZ射频模块可运行在150~960MHz ISM频段,支持LoRa、(G)FSK\(G)MSK的收发功能,支持(D)BPSK的发送功能。
> 注:LoRa版本只在STM32WLE**5**、STM32WL5**5**系列中支持



# 2 STM32WL sub-GHz Radio
## 2.1 STM32WL Radio系统框图



# 3NUCLEO-WL55JC2 射频前端电路
NUCLEO-WL55JC2 射频硬件电路支持两种功率输出方式(LoRa):TX HP PA ( 高功率输出,最大22dBm)与TX LP PA( 缺省功率输出, 最大15Bm)。

   - 使用1个单刀三掷(SP3T)的高频开关(BGS13S4N9)来实现TX HP PA、TX LP PA、RX 三条射频回路的切换。
   - 使用2个单刀双掷(SP2T)的高频开关(NX3L1T3157GM)来实现DC供电与LDO供电方式的切换。


## 3.1 射频发送电路
NUCLEO-WL55JC2 射频发送电路设计的非常灵活,可以用于评估4种功率输出组合,以满足不同IoT需求。

   1. Power Management Config.
      - 通过LDO与DC-DC的选择,以满足成本与射频整体功耗(发送与接收)的不同需求
         - LDO具有更大的功耗,但是具有较低的BOM成本
         - DC-DC具有更优的功耗,但是因为额外需要电感等器件,因此具有相对较高些的BOM成本
   2. Power Outputs
      - 通过TX LP PA与TX HP PA的选择,以满足输出功率(距离)与射频发送功耗的不同需求
         - LP PA 最大输出14dBm,在14dBm范围内的应用,具有非常好的发送功耗优势
         - LP HA 最大输出22dBm,具有更大的输出功率,更远的距离,但相对发送功耗也会较大


Power Management与Power Output


通过组合Power Management与Power Output,可以形成以下4种射频发送电路方案,用户可根据实际应用场景选择。


# 4 射频测试
## 4.1 射频测试代码

1. NUCLEO-WL55JC2高频开关控制函数,可以用于控制射频前端回路,具有4种切换状态,关闭(睡眠)、RX、TX LP PA、TX HP PA
```
/**
* @briefConfigure Radio Switch.
* @paramConfig: Specifies the Radio RF switch path to be set.
*         This parameter can be one of following parameters:
*         @arg RADIO_SWITCH_OFF
*         @arg RADIO_SWITCH_RX
*         @arg RADIO_SWITCH_RFO_LP
*         @arg RADIO_SWITCH_RFO_HP
* @retval BSP status
*/
int32_t BSP_RADIO_ConfigRFSwitch(BSP_RADIO_Switch_TypeDef Config)
{
switch (Config)
{
    case RADIO_SWITCH_OFF:
    {
      /* Turn off switch */
      HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_RESET);
      HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_RESET);
      HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET);
      break;      
    }
    case RADIO_SWITCH_RX:
    {
      /*Turns On in Rx Mode the RF Swicth */
      HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET);
      HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET);
      HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET);
      break;
    }
    case RADIO_SWITCH_RFO_LP:
    {
      /*Turns On in Tx Low Power the RF Swicth */
      HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET);
      HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET);
      HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_SET);
      break;
    }
    case RADIO_SWITCH_RFO_HP:
    {
      /*Turns On in Tx High Power the RF Swicth */
      HAL_GPIO_WritePin(RF_SW_CTRL3_GPIO_PORT, RF_SW_CTRL3_PIN, GPIO_PIN_SET);
      HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_RESET);
      HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_SET);
      break;
    }
    default:
      break;   
}

return BSP_ERROR_NONE;
}
```
2. 简化的发射性能测试代码
```
{
// Radio initialization
RadioEvents.TxDone = OnTxDone;
RadioEvents.RxDone = OnRxDone;
RadioEvents.TxTimeout = OnTxTimeout;
RadioEvents.RxTimeout = OnRxTimeout;
RadioEvents.RxError = OnRxError;
Radio.Init(&RadioEvents);

Radio.SetTxConfig(MODEM_LORA, TX_OUTPUT_POWER, 0, LORA_BANDWIDTH,
                  LORA_SPREADING_FACTOR, LORA_CODINGRATE,
                  LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON,
                  true, 0, 0, LORA_IQ_INVERSION_ON, TX_TIMEOUT_VALUE);

Radio.SetChannel(RF_FREQUENCY);
Radio.TxCw();
while(1);
}
```

## 4.2 射频性能测试结果

- NUCLEO-WL55JC2 工作频段 433~510MHz
- 输出功率理论设置为470.3MHz,14dBm
   - 实测值为13.2dBm(未包含线损)
   - 二次谐波为-44.3dBm



# 5 参考

- RM0461 STM32WLEx advanced Arm-based 32-bit MCUs with sub-GHz radio solution Rev01
- STM32Cube_FW_WL_V0.4.0
- UM2592_Nucleo-73_WL55.pdf

</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                               
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

littleshrimp 发表于 2020-7-2 09:07

图片显示不正常?

hillmailbox 发表于 2020-7-2 10:31

<p>ST的官网上怎么没有这个芯片的和开发板的资料啊。</p>

nich20xx 发表于 2020-7-2 11:45

有点奇怪,我本地预览是可以的,稍后我更新下。似乎论坛markdown直接带图片链接也不支持,只能本地先上传好图片这种方式吗?
页: [1]
查看完整版本: 【NUCLEO-WL55JC2测评4 】STM32WL sub-GHZ射频(LoRa\FSK..)