<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 實(shí)操!玩轉STM32WL系列Sub-GHz無(wú)線(xiàn)驅動(dòng)程序

實(shí)操!玩轉STM32WL系列Sub-GHz無(wú)線(xiàn)驅動(dòng)程序

作者: 時(shí)間:2024-08-08 來(lái)源:Digikey 收藏

問(wèn): 使用 系列 的應用示例

本文引用地址:http://dyxdggzs.com/article/202408/461793.htm

 系列器件包括內置的低于1GHz無(wú)線(xiàn)外設 ( 指的是低于 1GHz 的無(wú)線(xiàn)電頻段 ),能夠支持LoRa(僅限E5/55器件)、(G)FSK、(G)MSK和BPSK調制方案。與此無(wú)線(xiàn)外設的通信是通過(guò)使用設備參考手冊 第5.8節中概述的命令的內部SPI接口完成的。雖然該RF接口的抽象層是在低于1GHz Phy中間件中定義的(在 STM32CubeWL MCU Package 中可得),但將該中間件添加到使用STM32CubeMX的項目中需要在其他幾個(gè)外設和庫之間進(jìn)行高級配置。這會(huì )導致一個(gè)更大、更復雜的項目,消耗更多的設備內存,并導致抽象層低效率。對于要求功耗低的簡(jiǎn)單應用,將RF接口驅動(dòng)程序與低于1GHzPhy中間件隔離并直接利用它可能是有益的。低于1GHz Phy中間件由高層 (radio.c) 和低層 (radio_driver.c) 組成。高級驅動(dòng)程序提供了許多有用的函數,這些函數抽象了低層無(wú)線(xiàn)功能,例如RadioInit() ,RadioSetTxConfig() 和RadioSend() 。然而,盡管這些函數很方便,但它們的代價(jià)是效率低下,比如冗余的函數調用和過(guò)度依賴(lài)諸如音序器和定時(shí)器服務(wù)器之類(lèi)的實(shí)用程序。低層驅動(dòng)程序簡(jiǎn)單地實(shí)現 參考手冊 中概述的 SUBGHZSPI 命令,并提供低于1GHz無(wú)線(xiàn)寄存器的定義。以犧牲一些質(zhì)量屬性(如可維護性和可移植性)為代價(jià),使用該驅動(dòng)程序進(jìn)行編碼直接允許程序員對其應用程序進(jìn)行更大的控制。詳細演示如何將這個(gè)低層與低于 1GHz Phy 中間件隔離開(kāi)來(lái),并直接添加到 STM32CubeIDE 項目的操作過(guò)程, 請查看 這內容 。

要求: 要準確地跟隨演示教程,需要以下項目。

  • STM32CubeIDE (版本1.8.0)

  • STM32CubeWL MCU Package (版本1.1.0)

  • NUCLEO-WL55JC1


NUCLEO-WL55JC1 - STM32WL Nucleo-64 開(kāi)發(fā)板應用程序示例

作為以獨立方式使用低于1GHz Phy驅動(dòng)程序的示例,我們創(chuàng )建了兩個(gè)示例程序(可在 GitHub Repository 上獲得)。這些示例復制了 STM32CubeWL MCU Package 中SubGHz_Phy_PingPong示例的高級功能。也就是說(shuō),它們都實(shí)現了圖1所示的狀態(tài)機。這兩個(gè)示例之間的唯一區別是一個(gè)使用LoRa調制解調器,而另一個(gè)使用FSK調制解調器。

圖 1: 低層無(wú)線(xiàn)驅動(dòng)乒乓樣例項目有限狀態(tài)機

兩個(gè) NUCLEO-WL55JC1 板需要運行這些示例,其中一個(gè)將充當主機,而另一個(gè)將充當從機。最初,兩個(gè)板都處于主狀態(tài),以隨機間隔發(fā)送“PING”消息并等待響應。最終,兩個(gè)板同步,因此只有一個(gè)設備發(fā)送“PING”消息,另一個(gè)設備發(fā)送“PONG”消息作為響應。要執行該應用程序,請按照前一節提供的步驟創(chuàng )建一個(gè)項目,該項目包含低于1GHz 。然后,只需將項目的main.c 文件的內容替換為 GitHub Repository 中的 一個(gè) 文件的內容,具體取決于你希望在示例中使用哪種調制方案。最后,構建項目并使用它對兩個(gè)Nucleo板進(jìn)行編程。

注意,這些示例與SubGHz_Phy_PingPong示例兼容。也就是說(shuō),一塊板可以用上述應用程序編程,另一塊板可以用SubGHz_Phy_PingPong應用程序編程,它們將按預期一起工作。然而,為了利用GFSK調制,必須首先對SubGHz_Phy_PingPong示例進(jìn)行稍微修改。打開(kāi)subghz_phy_app.h 文件,修改第一個(gè)define指令如下:

#define USE_MODEM_LORA  0 //1

#define USE_MODEM_FSK   1 //0


#define REGION_US915 //REGION_EU868

然后,在radio.c 中找到RadioRandom() 函數,注釋掉RadioSetModem(MODEM_LORA); 這一行不僅不需要獲得隨機數,還會(huì )擦除之前初始化步驟中設置的無(wú)線(xiàn)配置。因此,在這種情況下,它被認為是一個(gè)bug,不應該被包括在內。SubGHz_Phy_PingPong示例現在準備編譯并燒寫(xiě)到 NUCLEO-WL55JC1 板之一。另一個(gè)板應該根據上述說(shuō)明使用 GitHub Repository 中的main_gfsk.c 文件的內容進(jìn)行編程。
在初始化和執行圖1所示的有限狀態(tài)機之前,通過(guò)調用清單1中定義的radioInit() 函數來(lái)初始化無(wú)線(xiàn)。該函數使用與SubGHz_Phy_PingPong示例相同的無(wú)線(xiàn)配置,但有一個(gè)例外。在 參考手冊 第6.1節的末尾,它說(shuō):
SMPS需要時(shí)鐘才能正常工作。如果由于任何原因這個(gè)時(shí)鐘停止,設備可能會(huì )被破壞。為了避免這種情況,使用時(shí)鐘檢測,當出現時(shí)鐘故障時(shí),關(guān)閉SMPS并啟用LDO。SMPS時(shí)鐘檢測通過(guò)低于1GHz無(wú)線(xiàn) SUBGHZ_SMPSC0R.CLKDE使能。缺省情況下,SMPS時(shí)鐘檢測功能處于關(guān)閉狀態(tài),開(kāi)啟SMPS前必須開(kāi)啟時(shí)鐘檢測功能。
盡管有這個(gè)警告,低于1GHz Phy中間件的高層和低層都沒(méi)有啟用SMPS時(shí)鐘檢測。因為DCDC_ENABLE 是在radio_config.h 中定義的,所以SUBGRF_SetRegulatorMode() 函數將啟用SMPS降壓轉換器。因此,在此函數調用之前,手動(dòng)啟用SMPS時(shí)鐘檢測。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>