原文鏈接: https://www.cnblogs.com/iini/p/8994433.html
Nordic nRF51/nRF52開發流程說明
Nordic nRF52系列包括nRF52832/nRF52840/nRF52810/nRF52811等芯片,nRF51系列包括nRF51822/nRF51422/nRF51802等芯片,開發者可以按照如下流程去評估和開發nRF52/51應用解決方案
如果你英文比較好的話,建議直接閱讀Nordic官方的“nRF5 Getting Started”:https://www.nordicsemi.com/DocLib/Content/User_Guides/getting_started/latest/UG/gs/product_development,介紹得非常詳細,我下面的文章也是在該文基礎上加工整理而得。
1. 第1步:芯片選型評估,選擇適合你的芯片型號。
1.1 粗略選型
首先大家可以快速瀏覽如下網頁內容:https://www.nordicsemi.com/Products/Low-power-short-range-wireless/Bluetooth-low-energy,以對Nordic每個芯片的最主要特性有個大致瞭解,下面爲頁面部分截圖:
上面是Nordic低功耗藍牙產品橫向對比頁面,如果你需要看Nordic其他解決方案,比如Zigbee或者蜂窩網IoT,請參考如下頁面:
1.2仔細查看芯片具體參數
這個主要通過查閱nRF51/52 spec來實現的。nRF52系列芯片都只有一份spec,spec包含了芯片外設模塊功能概述,電氣特性參數,應用參考電路,封裝和訂購信息等內容,請注意電氣特性放在每一個外設模塊章節的最後面。nRF51系列芯片共用同一份參考手冊,同時不同的型號還有各自的一份獨立數據spec。參考手冊主要描述各外設模塊的功能及原理,spec則具體羅列本型號的電氣特性參數,應用參考電路,封裝和訂購信息等。Nordic有一個文檔庫,你需要的任何文檔都可以在這裏找到,文檔庫鏈接爲:https://www.nordicsemi.com/DocLib,界面如下所示。nRF52/51芯片spec就可以在文檔庫中下載。
比如,選擇“nRF52840 Core Documentation”,界面將如下所示。跟nRF52840有關的大部分文檔,都在這裏,紅色圈起來的就是52840的芯片spec。
nRF52系列其他芯片以及nRF51系列芯片spec都可以用同樣的方法獲得,這裏就不一一列舉。
2. 第2步:選擇SDK版本號以及相應的協議棧類型和版本。
推薦使用最新版的SDK以及SDK自帶的協議棧,nRF52系列產品開發推薦使用nRF5 SDK 15.3.0,nRF51系列產品開發推薦使用nRF5 SDK 12.3.0。至於協議棧,一般推薦SDK安裝目錄裏面自帶的協議棧,這個兼容性好,開發最簡單。
注:有時候協議棧也會有bug,此時Nordic會把bug修復的協議棧單獨發佈出來,比如nRF5 SDK 15.2.0自帶的S140協議棧版本爲6.1.0,一般來說,直接用這個版本的協議棧就可以了,但是這個版本的協議棧的主機模式有一個小bug,爲此Nordic單獨發佈了6.1.1版S140協議棧,此時用戶就需要去官網單獨下載這個最新版的協議棧了。記住,大家只需要下載版本號數字最後一位有變化的即可,比如6.1.1相比6.1.0,最後一個數字有升級,那麼推薦大家直接下載下來,然後覆蓋原來老的協議棧即可。如果版本號第1個數字就有變化,意味着兩個版本的協議棧是不兼容的,此時一般SDK也會跟着升級的,比如7.0.0相比6.1.0,這個就屬於大升級了,此時建議直接使用與之配套的最新版本SDK來進行開發,而不是把協議棧進行簡單覆蓋。(當然,你也可以自己把7.0.0的協議棧移植到老SDK中,這個稍微麻煩一些,不過Nordic也有相關移植文檔供大家參考)。如下列出了常用協議棧的發佈頁面:
- S140協議棧最新版本查詢頁面:https://www.nordicsemi.com/Software-and-Tools/Software/S140/Download#infotabs
- S132協議棧最新版本查詢頁面:https://www.nordicsemi.com/Software-and-Tools/Software/S132/Download#infotabs
- 其他類型協議棧,比如S130, S112,S110等,請按照上述方式自己去尋找相應下載頁面。
大部分用戶使用Nordic產品的時候都會使用Nordic協議棧,而協議棧是會佔用一定的Flash,RAM以及某些外設模塊的,大家評估的時候一定要把協議棧佔用的資源扣除,然後再評估剩下的資源夠不夠用。而且開發Nordic產品的時候,經常需要跟協議棧打交道,因此強烈建議大家讀一下協議棧spec,以大致瞭解Nordic協議棧的原理以及一些關鍵性能參數,如下爲Nordic各種協議棧spec下載頁面:
欲進一步瞭解SDK和softdevice請參考:Nordic nRF5 SDK和softdevice介紹
3. 第3步:申請Nordic nRF52/51官方開發板(Development Kit,DK)
Nordic絕大多數例子都是在nRF51/52官方開發板上開發和測試的,手上有nRF51/52開發板將大大方便軟件工程師的開發。nRF51/52開發板也可以作爲參考板來排查用戶板問題。在生產測試的時候,nRF51/52開發板還可以作爲gold sample去測試用戶板的射頻性能是否合格。最後,nRF51/52開發板還帶一塊正版Jlink芯片,也就是說nRF51/52開發板本身就是一個Jlink燒寫器,不僅可以用來燒寫板子上的nRF51/52芯片,還可以用來燒寫其他用戶板上的Jlink芯片。一個正版Jlink燒寫器在淘寶上售價爲1000人民幣左右,而Nordic nRF51/52開發板官方售價才39美金,正可謂“價格厚道,感動人心”。(PS:如果你拿到Nordic nRF51/52官方DK的話,你會發現Nordic DK做工是業界最好的,沒有之一!)
- nRF52832/nRF52810共用同一塊開發板,編號爲PCA10040,DK購買鏈接爲:https://www.nordicsemi.com/About-us/BuyOnline?search_token=nRF52-DK。DK說明文檔請參考前面的“nRF52832 Core Documentation”,nRF52810額外說明文檔鏈接:https://www.nordicsemi.com/en/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/nrf52810_user_guide。
- nRF52840開發板編號爲PCA10056,DK購買鏈接爲:https://www.nordicsemi.com/About-us/BuyOnline?search_token=nRF52840-DK,DK說明文檔請參考前面的“nRF52840 Core Documentation”。除了DK,nRF52840還有一個dongle也可以用來做開發,Dongle編號爲PCA10059,購買鏈接爲:https://www.nordicsemi.com/About-us/BuyOnline?search_token=nRF52840DONGLE。說明文檔見“nRF52840 Core Documentation”。
- nRF51開發板編號爲PCA10028,DK購買鏈接爲: https://www.nordicsemi.com/About-us/BuyOnline?search_token=nRF51-DK,DK說明文檔請參考前面的“nRF51822 Core Documentation”
- Nordic官方DK是長下面這個樣子的,不要弄錯了
4. 第4步:電路設計
推薦直接按照nRF51/52 spec中的參考電路原理圖和layout來設計自己的電路和布板,同時Nordic提供了實際的電路圖和Gerber file,大家可以直接查看BOM清單,以及沿用裏面的nRF5器件封裝。
- nRF52832/52810 DK電路圖:https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK/Download#infotabs
- nRF52840 DK電路圖:https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK/Download#infotabs
- nRF52840 Dongle電路圖:https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle/Download#infotabs
- nRF51 DK電路圖:https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF51-DK/Download#infotabs
- nRF52參考電路(已停止更新):http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52%2Fdita%2Fnrf52%2Fpdflinks%2Fref_layout.html&cp=2_5
- nRF51參考電路(已停止更新):http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf51%2Fdita%2Fnrf51%2Fpdflinks%2Fref_layout.html&cp=3_6
如果大家想深入理解藍牙應用電路設計和布板的一些知識,可以參考Nordic提供的這個教程:https://devzone.nordicsemi.com/tutorials/25/。
第5步:藍牙射頻性能調試
藍牙射頻性能最關鍵的三個影響因子:匹配電路調試,天線設計調試以及晶振選擇,Nordic都有相應的指導文件。
5.1 匹配電路調試
請參考Nordic white paper 013:https://www.nordicsemi.com/-/media/DocLib/Other/White_Papers/nwp_013.pdf?la=en
5.2 天線設計
請參考Nordic white paper 017:https://www.nordicsemi.com/-/media/DocLib/Other/White_Papers/nwp_017.pdf?la=en
5.3 晶振選擇
請參考Nordic white paper 015:https://www.nordicsemi.com/-/media/DocLib/Other/White_Papers/nwp_015.pdf?la=en
所有white paper和application note都放在Doclib如下地方:
第6步:電路圖和layout review
Nordic或其代理商免費提供原理圖和layout review服務,我們可以將原理圖和layout提交給Nordic代理商或者Nordic Devzone進行審覈。Devzone一般1到2個工作日就會給予你答覆。電路圖提交流程請參考文章:Nordic官方網絡資源介紹(官網/devzone/GitHub)(第2節:Nordic Devzone(開發者論壇))。Devzone提交電路圖review的界面是長下面這個樣子的:
7. 第7步:打板
如何貼片,Nordic也有相應的指導文件,目前Nordic芯片只有QFN,WLCSP和aQFN三種封裝,相關貼片指導說明都放在application note中,如下所示:
8. 第8步:射頻性能測試
如果自己有專門的BLE測試設備,那麼你可以自己來測試板子RF性能。如果你沒有BLE測試設備,也沒有關係,Nordic或其代理商免費提供BLE測試服務。只要把板子寄給Nordic代理商實驗室,或者Nordic實驗室,或者第三方實驗室,比如R&S實驗室,他們就能幫你完成BLE性能和符合性測試。你可以根據實驗測試結果對板子進行二次整改。一般而言,專業的藍牙測試設備都遵守DTM(Direct Test Mode)規範,所以設備端(nRF5端)只需下載DTM固件就可以與之通信並完成相關測試。Nordic每一版SDK都包含每顆芯片的DTM固件,建議大家使用SDK15.3.0裏面的DTM程序,測試說明請參考:https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/ble_sdk_app_dtm_serial。
另外,在這裏推薦一種簡單RF測試方法,即跟Nordic官方 DK進行通信距離比對測試。可以把SDK中的HRS(Heart Rate application)程序分別下載到Nordic DK和你的用戶板中,然後分別連上手機,看看手機跟DK的通信距離有多遠?再看看你的用戶板跟手機通信距離有多遠?如果兩者差不多,說明你的用戶板RF性能不錯。HRS程序放在SDK目錄:<InstallFolder>\examples\ble_peripheral\ble_app_hrs,測試說明見:https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/ble_sdk_app_hrs。
第9步:功耗測試
低功耗藍牙應用一般都是用電池供電的,所以對功耗要求非常高。如何有效快速的測試nRF5的功耗,尤其是BLE各種應用場景下的功耗,就顯得尤爲重要。Nordic提供了一個在線的理論功耗計算工具:https://devzone.nordicsemi.com/power/,你只需輸入你的藍牙應用場景,該在線工具就可以自動算出這種場景下nRF5芯片的功耗大概爲多少,網頁截圖如下所示:
該工具的使用說明請參考:https://devzone.nordicsemi.com/b/blog/posts/nrf52-online-power-profiler。
除了這個在線的理論功耗計算工具,Nordic還提供了一塊電流測試板:PPK(Power Profiler Kit),PPK可以用來實時測試用戶板的VDD功耗,就像專業的電源測試工具或者示波器一樣,PPK購買鏈接爲:https://www.nordicsemi.com/About-us/BuyOnline?search_token=nRF6707, 使用說明請參考:https://www.nordicsemi.com/Software-and-Tools/Development-Kits/Power-Profiler-Kit/Download#infotabs。
如果對BLE功耗測試原理感興趣的話,可以參考如下兩篇貼子:https://devzone.nordicsemi.com/tutorials/b/hardware-and-layout/posts/current-measurement-guide-introduction和https://devzone.nordicsemi.com/tutorials/b/hardware-and-layout/posts/nrf51-current-consumption-guide
一般來說,測試BLE功耗時,nRF5可以下載HRS程序(關掉UART日誌功能)或者power profiling程序,這2個程序都可以準確反應nRF5芯片的藍牙功耗情況。Power profiling程序放在SDK目錄:<InstallFolder>\examples\ble_peripheral\ble_app_pwr_profiling,測試說明見:https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/ble_sdk_app_pwr_mgmt。HRS程序放在SDK目錄:<InstallFolder>\examples\ble_peripheral\ble_app_hrs,測試說明見:https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/ble_sdk_app_hrs。
10. 第10步:勘誤表自查
勘誤表(Errata或者PAN)內容一般都是關於軟件開發注意事項的,軟件出問題的時候或者正式量產之前,建議自查一下勘誤表,以防踩到“坑”。請注意,雖然勘誤表裏面的條目很多,但真正跟你有關係的其實很少,原因有二:一勘誤表裏面的workaround已經集成到SDK裏面,二錯誤出現的條件非常極端,你的應用不會有這種情況,所以不要被勘誤表長長的列表給嚇倒了。如果你使用的是最新版本的SDK和最新版本的芯片,一般而言,勘誤表跟你無關,但如果你使用的是老版本SDK或者老版本芯片,那麼就一定要自查勘誤表了。
11. 第11步(可選):認證
根據產品需要,你可以去做BQB認證,SRRC認證,FCC認證,ETSI認證,環保測試等。Nordic產品本身已經通過了上述所有測試和認證,對用戶來說,這些認證工作,更多的是一些文檔工作。一般來說,推薦用戶去選擇一家專業的實驗室或者第三方機構去做這些認證,這樣可以保證通過而且不耽誤項目進度。
Nordic提供了兩套射頻測試固件,一套是DTM測試代碼,符合藍牙DTM標準,位於目錄:SDK安裝目錄\examples\dtm\direct_test_mode,具體說明請參考:https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/ble_sdk_app_dtm_serial;一套是Radio test測試代碼,用於直接測試各個射頻通道物理性能,比如頻偏等,位於目錄:SDK安裝目錄\examples\peripheral\radio_test,具體說明請參考:https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/nrf_radio_test_example。BQB認證或者SRRC認證,一般推薦使用DTM代碼。另外如果你需要測試2.4G丟包率,也推薦使用DTM代碼,這個在量產測試的時候非常有用。當然,SRRC認證也可以使用radio test代碼,radio test代碼除了可以測試藍牙和2.4G,還可以用來測試802.15.4的物理層,比較適合用來進行定頻測試以及頻偏測試等。
BQB認證分終端產品和底層component兩種認證,做終端產品認證需要用到component認證證書,即QDID,大家可以到如下的藍牙聯盟官網查詢Nordic所有認證產品的 QDID:https://launchstudio.bluetooth.com/Listings/Search,在搜索框輸入“Nordic Semiconductor”,即可搜出Nordic所有QDID。
除了上述認證,Nordic還提供如下報告:
- 企業責任報告:https://www.nordicsemi.com/About-us/Corporate-social-responsibility。
- QA相關文檔及證書:https://www.nordicsemi.com/About-us/Quality-Assurance。
- 環境報告見Doclib,如下所示:
12. 第12步:搭建量產燒寫環境
Nordic不提供量產燒寫器,不過有很多第三方機構,比如希爾特,以及Nordic代理商都有相關量產用的燒寫工具。其實,支持SWD接口的Jlink燒寫器都可以用來燒寫Nordic產品(淘寶上有很多)。雖然Nordic不提供量產燒寫器,但是Nordic提供了一個量產燒寫軟件nrfjprog,而且nrfjprog有可執行文件,DLL庫,Python接口等多種存在形式,同時支持Windows,Linux和Mac系統。nrfjprog的可執行文件和動態庫在安裝nRF5x Command Line Tools時就會自動安裝好,可執行文件nrfjprog放置在如下目錄:
在Windows環境變量中添加上述目錄後,在CMD中輸入nrfjprog,你將會看到:
可執行文件的nrfjprog的使用說明請參考:https://www.nordicsemi.com/DocLib/Content/User_Guides/nrf5x_cltools/latest/UG/cltools/nrf5x_nrfjprogexe。
如果你想基於nrfjprog DLL來開發自己的量產燒寫工具,請參考:https://www.nordicsemi.com/DocLib/Content/User_Guides/nrf5x_cltools/latest/UG/cltools/nrf5x_nrfjprogdll。
現在Python非常流行,如果你想開發Python版的量產燒寫工具,nrfjprog也提供了相關庫:pynrfjprog,相關使用說明請參考:https://www.nordicsemi.com/DocLib/Content/User_Guides/pynrfjprog/latest/UG/pynrfjprog/pynrfjprog_lpage。
如果你不想使用nrfjprog,而想使用標準的SWD指令去直接操作nRF5芯片,那麼請參考white pager 027:https://www.nordicsemi.com/DocLib/Content/White_Papers/nwp_027/latest/WP/nwp_027/intro。
方法多種多樣,選擇適合你的就好。
13. 第13步:搭建生產測試環境
一般來說,有2種生產測試方法:一是使用昂貴的專業設備來進行生產測試,比如Litepoint,Anritsu等,二是使用Nordic的nRF51/52 DK作爲gold sample去測試DUT,成本低廉效果也不錯。具體請參考Nordic application note 034,application note放在Doclib中,如下所示:
14. 第14步:小批量試生產
重點觀察產品一致性,良率和產能。
15. 第15步:大批量生產
產品上市!