一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

應(yīng)用筆記|Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理

STM32單片機(jī) ? 來(lái)源:未知 ? 2023-04-06 03:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在許多基于 BlueNRG-1/2 系列芯片的低功耗藍(lán)牙的設(shè)計(jì)項(xiàng)目時(shí),客戶通常會(huì)在 Flash的特定區(qū)域存儲(chǔ)定制的數(shù)據(jù)。然而需要特別注意的是,在 BlueNRG-1/2 方案中,用戶對(duì)Flash 的讀寫(xiě)操作必須在射頻空閑的情況下進(jìn)行,兩者是互斥的關(guān)系。本文檔描述Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理的流程和步驟。

目錄預(yù)覽

1 引言

2 問(wèn)題描述

3 解決辦法

4 將上述方案加入客戶工程的步驟示例

5 小結(jié)

1. 引言

在許多基于 BlueNRG-1/2 系列芯片的低功耗藍(lán)牙的設(shè)計(jì)項(xiàng)目時(shí),客戶通常會(huì)在 Flash 的特定區(qū)域存儲(chǔ)定制的數(shù)據(jù)。然而需要特別注意的是,在 BlueNRG-1/2 方案中,用戶對(duì) Flash 的讀寫(xiě)操作必須在射頻空閑的情況下進(jìn)行,兩者是互斥的關(guān)系。

2. 問(wèn)題描述

客戶經(jīng)常反饋類似問(wèn)題,諸如:當(dāng)用戶程序嘗試將用戶定制數(shù)據(jù)寫(xiě)入 Flash 中特定區(qū)域時(shí),發(fā)現(xiàn) BLE 射頻部分停止工作,或芯片直接死機(jī)了。

2.1. 原因分析

  • 2.1.1. BlueNRG-1/2 的 Flash 存儲(chǔ)應(yīng)用數(shù)據(jù)時(shí)可能遇到這個(gè)問(wèn)題。因?yàn)樵诓脸豁?yè)的過(guò)程中,中斷會(huì)被關(guān)掉大概 20 多 ms, 在此期間,radio 中斷是被關(guān)掉了的,會(huì)導(dǎo)致整個(gè)radio 的狀態(tài)被延時(shí)或者整個(gè) radio 部分的狀態(tài)被破壞。

  • 2.1.2. ST 的 SDK 雖然提供了訪問(wèn) Flash 的示例代碼,但是當(dāng) Flash 操作比較多時(shí),與藍(lán)牙事件的互斥就比較難處理了;特別是對(duì)于一些多連接應(yīng)用或者同時(shí)用了主從、多種藍(lán)牙事件的場(chǎng)景,互斥就顯得更麻煩了。

3.解決辦法

使用一個(gè)雙向鏈表來(lái)管理 Flash 操作(Flash 擦除或者是 Flash 寫(xiě),F(xiàn)lash 讀無(wú)需和 BLE 相關(guān)事件互斥),并使用一個(gè)雙向鏈表來(lái)管理空余時(shí)間狀態(tài)。在空余的時(shí)間執(zhí)行 Flash 操作。從芯片手冊(cè)可以知道,操作 Flash,特別是擦除時(shí),會(huì)占用比較多的時(shí)間。為 了避免操作 Flash 占用過(guò)多的時(shí)間片,把每次寫(xiě)或者擦除 Flash,用一個(gè)列表來(lái)管理,每 次寫(xiě)或者擦除操作,插入 Flash 操作鏈表的最后。在主循環(huán)中檢測(cè)是否有足夠的時(shí)間寫(xiě), 如果當(dāng)前空閑的時(shí)間足夠,取出 Flash 操作鏈表中最前的一個(gè)節(jié)點(diǎn),執(zhí)行 Flash 操作,然 后將節(jié)點(diǎn)移除。對(duì)于如何檢測(cè)空閑時(shí)刻,也用一個(gè)鏈表來(lái)管理空閑時(shí)刻。具體思路如下:

第一步:初始化時(shí)需要設(shè)置 radio active 事件拋到應(yīng)用。aci_hal_set_radio_activity_mask(0x0001|0x0002|0x0004|0x0008|0x0010|0x0020)

6249bf3c-d3e5-11ed-bfe3-dac502259ad0.png

第二步:設(shè)置之后,重寫(xiě)函數(shù)aci_hal_end_of_radio_activity_event,當(dāng)有事件觸發(fā)時(shí), 就會(huì)進(jìn)入這個(gè)函數(shù)。

6286e920-d3e5-11ed-bfe3-dac502259ad0.png

第三步:構(gòu)造一個(gè) Flash 操作調(diào)度函數(shù),每次進(jìn)入這個(gè)函數(shù),生成一個(gè)空閑時(shí)刻的節(jié)點(diǎn)插 入到鏈表中。主循環(huán)中有個(gè) Flash 操作的調(diào)度函數(shù),不停的調(diào)度是否有數(shù)據(jù)需要寫(xiě)入。在 Flash 操作的調(diào)度函數(shù)中,主要做兩件事情,一個(gè)是把空閑時(shí)間計(jì)算出來(lái)給到底層的 Flash 操作鏈表調(diào) 度中。另一個(gè)是移除過(guò)期的節(jié)點(diǎn)。

62a69932-d3e5-11ed-bfe3-dac502259ad0.png

第四步:構(gòu)造 flash_list_tick 函數(shù),flash_list_tick 函數(shù)主要是從 Flash 任務(wù)列表中去取節(jié) 點(diǎn),當(dāng)空余時(shí)間滿足時(shí),則執(zhí)行相應(yīng)的 Flash 操作,然后將節(jié)點(diǎn)從任務(wù)列表中移除,回收到空閑列表中。

62b7dbac-d3e5-11ed-bfe3-dac502259ad0.png

4.將上述方案加入客戶工程的步驟示例

1. 初始化相關(guān)鏈表和初始化 radio 事件回調(diào)屏蔽。

62d9a552-d3e5-11ed-bfe3-dac502259ad0.png

2. 在 aci_hal_end_of_radio_activity_event 中添加空閑鏈表的更新函數(shù)。

63122012-d3e5-11ed-bfe3-dac502259ad0.png

3. 在主循環(huán)中調(diào)度。

6337c2b8-d3e5-11ed-bfe3-dac502259ad0.png

4. 應(yīng)用操作 Flash 調(diào)用接口。

63518dce-d3e5-11ed-bfe3-dac502259ad0.png

5. 小結(jié)

如果使用此方法中的 Flash 擦除,沒(méi)有任何 BLE 事件時(shí),直接調(diào)用此方法不會(huì)執(zhí)行任何 Flash 的操作。所以當(dāng)沒(méi)有藍(lán)牙事件時(shí),可以使用 SDK 默認(rèn)的 Flash 訪問(wèn)接口或者是手工調(diào)度函數(shù),類似這樣:flash_list_tick(~0u)

工程測(cè)試源碼參考附件壓縮包:

BlueNRG Flash vs BLE event handle source code.7z

工程路徑為:

BlueNRG_Demo/BlueNRG-1_2DK 3.1.0/Project/Supply/BLE_Chat_Master_Slave_WithFlashAccess/

本文檔描述Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理的流程和步驟。由于文章篇幅有限僅展示部分信息,完整內(nèi)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。

636f2c58-d3e5-11ed-bfe3-dac502259ad0.png

長(zhǎng)按掃碼關(guān)注公眾號(hào)

更多資訊,盡在STM32

點(diǎn)擊“閱讀原文”,可下載原文檔


原文標(biāo)題:應(yīng)用筆記|Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44982

    瀏覽量

    650277
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11031

    瀏覽量

    364689

原文標(biāo)題:應(yīng)用筆記|Blue NRG-1/2系列芯片F(xiàn)lash操作與BLE事件的互斥處理

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用不同的Bluetooth?適配器時(shí),BLE速率較慢怎么解決?

    我已經(jīng)在CYW20829中編寫(xiě)了一個(gè)BLE服務(wù)器程序。 當(dāng)我使用 Python 腳本將其連接到我的計(jì)算機(jī)時(shí),它可以達(dá)到 800 Kbps,該腳本生成使用 Bleak 的 BLE 客戶端,并使用筆記
    發(fā)表于 06-27 06:28

    GPDV6624C應(yīng)用筆記1.0版

    電子發(fā)燒友網(wǎng)站提供《GPDV6624C應(yīng)用筆記1.0版.pdf》資料免費(fèi)下載
    發(fā)表于 06-06 17:20 ?0次下載

    低價(jià)不貴!安信可WiFi+BLE模組Ai-WB2系列

    安信可Ai-WB2系列模組集成Wi-Fi&BLE于一體,搭載BL602芯片作為核心處理器,支持Wi-Fi 802.11b/g/n協(xié)議和
    的頭像 發(fā)表于 03-06 08:49 ?477次閱讀
    低價(jià)不貴!安信可WiFi+<b class='flag-5'>BLE</b>模組Ai-WB<b class='flag-5'>2</b><b class='flag-5'>系列</b>

    了解ISL28022的電流和功率計(jì)算應(yīng)用筆記

    本應(yīng)用筆記討論數(shù)字電源監(jiān)控器(DPM) ISL28022的內(nèi)部計(jì)算程序。它解釋了數(shù)據(jù)寄存器的位格式,并舉例說(shuō)明了內(nèi)部數(shù)學(xué)處理器從測(cè)得的分流和總線電壓導(dǎo)出電流和功率值的程序步驟。本應(yīng)用筆記是ISL28022數(shù)據(jù)手冊(cè)的摘要。
    的頭像 發(fā)表于 02-21 11:30 ?571次閱讀
    了解ISL28022的電流和功率計(jì)算應(yīng)<b class='flag-5'>用筆記</b>

    ISL28005、ISL28006單向電流檢測(cè)放大器應(yīng)用筆記

    本應(yīng)用筆記介紹高度集成的電流檢測(cè)放大器ISL28005和ISL28006系列,它們可以大大簡(jiǎn)化復(fù)雜電流監(jiān)控電路的設(shè)計(jì)。本應(yīng)用筆記解釋了具有接地檢測(cè)診斷功能的內(nèi)部雙放大器拓?fù)浣Y(jié)構(gòu),討論了在何種類型的應(yīng)用中使用何種增益,并提供了一個(gè)
    的頭像 發(fā)表于 02-21 10:08 ?537次閱讀
    ISL28005、ISL28006單向電流檢測(cè)放大器應(yīng)<b class='flag-5'>用筆記</b>

    CDK應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《CDK應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 01-16 16:17 ?0次下載
    CDK應(yīng)<b class='flag-5'>用筆記</b>

    ES32VF2264應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《ES32VF2264應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 01-16 16:14 ?0次下載
    ES32VF2264應(yīng)<b class='flag-5'>用筆記</b>

    ES7P0214應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《ES7P0214應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 01-16 16:06 ?0次下載
    ES7P0214應(yīng)<b class='flag-5'>用筆記</b>

    智通國(guó)際推出全新商用筆記本品牌恒悅

    1月15日,智通國(guó)際旗下品牌恒悅舉辦了全新一代商用筆記本的發(fā)布會(huì)。當(dāng)前PC市場(chǎng)正處在傳統(tǒng)PC向AI PC邁進(jìn)的關(guān)鍵時(shí)刻,硬件架構(gòu)創(chuàng)新、產(chǎn)品形態(tài)創(chuàng)新、軟件應(yīng)用創(chuàng)新風(fēng)起云涌。而作為AI向大眾普及的最佳
    的頭像 發(fā)表于 01-16 16:01 ?888次閱讀

    ES7P0213應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《ES7P0213應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 01-16 15:26 ?0次下載
    ES7P0213應(yīng)<b class='flag-5'>用筆記</b>

    AT32F423 PWC應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《AT32F423 PWC應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 01-15 15:30 ?0次下載
    AT32F423 PWC應(yīng)<b class='flag-5'>用筆記</b>

    S32K3系列汽車級(jí)MCU應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《S32K3系列汽車級(jí)MCU應(yīng)用筆記.docx》資料免費(fèi)下載
    發(fā)表于 12-30 15:43 ?2次下載

    S32K3xxICU應(yīng)用筆記

    S32K3xxICU應(yīng)用筆記
    發(fā)表于 12-30 15:38 ?2次下載

    應(yīng)用筆記1604:去補(bǔ)償運(yùn)算放大器

    電子發(fā)燒友網(wǎng)站提供《應(yīng)用筆記1604:去補(bǔ)償運(yùn)算放大器.pdf》資料免費(fèi)下載
    發(fā)表于 09-29 10:30 ?0次下載
    應(yīng)<b class='flag-5'>用筆記</b>1604:去補(bǔ)償運(yùn)算放大器

    TLC3702 TLC3704系列應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《TLC3702 TLC3704系列應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 09:14 ?0次下載
    TLC3702 TLC3704<b class='flag-5'>系列</b>應(yīng)<b class='flag-5'>用筆記</b>