Nordic nRF52系列包括nRF52832/nRF52840/nRF52810/nRF52811等芯片,nRF51系列包括nRF51822/nRF51422/nRF51802等芯片,,開發(fā)者可以按照如下流程去評估和開發(fā)nRF52/51應(yīng)用解決方案 如果你英文比較好的話,,建議直接閱讀Nordic官方的“nRF5 Getting Started”:https://infocenter./index.jsp?topic=%2Fug_getting_started%2FUG%2Fgs%2Fproduct_development.html&cp=1_0,介紹得非常詳細(xì),,我下面的文章也是在該文基礎(chǔ)上加工整理而得,。 1. 第1步:芯片選型評估,選擇適合你的芯片型號。 1.1 粗略選型 首先大家可以快速瀏覽如下網(wǎng)頁內(nèi)容:https://www./Products/Low-power-short-range-wireless/Bluetooth-low-energy,,以對Nordic每個芯片的最主要特性有個大致了解,,下面為頁面部分截圖:
上面是Nordic低功耗藍(lán)牙產(chǎn)品橫向?qū)Ρ软撁妫绻阈枰碞ordic其他解決方案,,比如Zigbee或者蜂窩網(wǎng)IoT,,請參考如下頁面:
1.2仔細(xì)查看芯片具體參數(shù) 這個主要通過查閱nRF51/52 spec來實現(xiàn)的。nRF52系列芯片都只有一份spec,,spec包含了芯片外設(shè)模塊功能概述,,電氣特性參數(shù),,應(yīng)用參考電路,,封裝和訂購信息等內(nèi)容,請注意電氣特性放在每一個外設(shè)模塊章節(jié)的最后面,。nRF51系列芯片共用同一份參考手冊,,同時不同的型號還有各自的一份獨(dú)立數(shù)據(jù)spec。參考手冊主要描述各外設(shè)模塊的功能及原理,,spec則具體羅列本型號的電氣特性參數(shù),,應(yīng)用參考電路,封裝和訂購信息等,。Nordic有一個Infocenter,,你需要的任何文檔都可以在這里找到,Infocenter鏈接為:https://infocenter./index.jsp,,界面如下所示,。nRF52/51芯片spec就可以在infocenter下載。
2. 第2步:選擇SDK版本號以及相應(yīng)的協(xié)議棧類型和版本,。 推薦使用最新版的SDK以及SDK自帶的協(xié)議棧,,nRF52系列產(chǎn)品開發(fā)推薦使用nRF5 SDK 15.3.0,nRF51系列產(chǎn)品開發(fā)推薦使用nRF5 SDK 12.3.0,。SDK官網(wǎng)下載地址為:https://www./Software-and-Tools/Software/nRF5-SDK/Download#infotabs,。至于協(xié)議棧,一般推薦SDK安裝目錄里面自帶的協(xié)議棧,,這個兼容性好,,開發(fā)最簡單。不過有時在Nordic官網(wǎng)下載SDK的時候,,比如SDK15.2.0,,官網(wǎng)會自動綁定一個比SDK安裝目錄里面自帶的協(xié)議棧版本更高版本的協(xié)議棧,那么這個時候推薦使用該綁定的高版本協(xié)議棧,,原因如下: 再完美的協(xié)議棧難免也會有bug,,此時Nordic會把bug修復(fù)的協(xié)議棧單獨(dú)發(fā)布出來,比如nRF5 SDK 15.2.0自帶的S140協(xié)議棧版本為6.1.0,一般來說,,直接用這個版本的協(xié)議棧就可以了,,但是這個版本的協(xié)議棧的主機(jī)模式有一個小bug,為此Nordic單獨(dú)發(fā)布了6.1.1版S140協(xié)議棧,,此時用戶就需要去官網(wǎng)單獨(dú)下載這個最新版的協(xié)議棧了,。記住,大家只需要下載版本號數(shù)字最后一位有變化的即可,,比如6.1.1相比6.1.0,,最后一個數(shù)字有升級,那么推薦大家直接下載下來,,然后覆蓋原來老的協(xié)議棧即可,。如果版本號第1個數(shù)字就有變化,意味著兩個版本的協(xié)議棧是不兼容的,,此時一般SDK也會跟著升級的,,比如7.0.0相比6.1.0,這個就屬于大升級了,,此時建議直接使用與之配套的最新版本SDK來進(jìn)行開發(fā),,而不是把協(xié)議棧進(jìn)行簡單覆蓋。(當(dāng)然,,你也可以自己把7.0.0的協(xié)議棧移植到老SDK中,,這個稍微麻煩一些,不過Nordic也有相關(guān)移植文檔供大家參考),。如下列出了常用協(xié)議棧的發(fā)布頁面:
大部分用戶使用Nordic產(chǎn)品的時候都會使用Nordic協(xié)議棧,,而協(xié)議棧是會占用一定的Flash,,RAM以及某些外設(shè)模塊的,大家評估的時候一定要把協(xié)議棧占用的資源扣除,,然后再評估剩下的資源夠不夠用,。而且開發(fā)Nordic產(chǎn)品的時候,經(jīng)常需要跟協(xié)議棧打交道,,因此強(qiáng)烈建議大家讀一下協(xié)議棧spec,,以大致了解Nordic協(xié)議棧的原理以及一些關(guān)鍵性能參數(shù),如下為Nordic nRF52系列使用到的各種協(xié)議棧spec下載頁面:
欲進(jìn)一步了解SDK和softdevice請參考:Nordic nRF5 SDK和softdevice介紹 3. 第3步:申請Nordic nRF52/51官方開發(fā)板(Development Kit,,DK) Nordic絕大多數(shù)例子都是在nRF51/52官方開發(fā)板上開發(fā)和測試的,,手上有nRF51/52開發(fā)板將大大方便軟件工程師的開發(fā),。nRF51/52開發(fā)板也可以作為參考板來排查用戶板問題。在生產(chǎn)測試的時候,,nRF51/52開發(fā)板還可以作為gold sample去測試用戶板的射頻性能是否合格,。最后,nRF51/52開發(fā)板還帶一塊正版Jlink芯片,,也就是說nRF51/52開發(fā)板本身就是一個Jlink燒寫器,,不僅可以用來燒寫板子上的nRF51/52芯片,還可以用來燒寫其他用戶板上的Jlink芯片,。一個正版Jlink燒寫器在淘寶上售價為1000人民幣左右,,而Nordic nRF51/52開發(fā)板官方售價才39美金,正可謂“價格厚道,,感動人心”,。(PS:如果你拿到Nordic nRF51/52官方DK的話,你會發(fā)現(xiàn)Nordic DK做工是業(yè)界最好的,,沒有之一?。?/p>
4. 第4步:電路設(shè)計 推薦直接按照nRF51/52 spec中的參考電路原理圖和layout來設(shè)計自己的電路和布板,,同時Nordic提供了實際的電路圖和Gerber file,大家可以直接查看BOM清單,,以及沿用里面的nRF5器件封裝,。
如果大家想深入理解藍(lán)牙應(yīng)用電路設(shè)計和布板的一些知識,可以參考Nordic提供的這個教程:https://devzone./tutorials/25/,。 第5步:藍(lán)牙射頻性能調(diào)試 藍(lán)牙射頻性能最關(guān)鍵的三個影響因子:匹配電路調(diào)試,,天線設(shè)計調(diào)試以及晶振選擇,,Nordic都有相應(yīng)的指導(dǎo)文件。 5.1 匹配電路調(diào)試 請參考Nordic white paper 013:https://infocenter./pdf/nwp_013.pdf?cp=12_14 5.2 天線設(shè)計 請參考Nordic white paper 017:https://infocenter./pdf/nwp_017.pdf?cp=12_11 5.3 晶振選擇 請參考Nordic white paper 015:https://infocenter./pdf/nwp_015.pdf?cp=12_12 所有white paper和application note都放在Infocenter如下地方:https://infocenter./index.jsp?topic=%2Fstruct_appnotes%2Fstruct%2Fappnotes.html&cp=11以及https://infocenter./index.jsp?topic=%2Fstruct_whitepapers%2Fstruct%2Fwhitepapers.html&cp=12
第6步:電路圖和layout review Nordic或其代理商免費(fèi)提供原理圖和layout review服務(wù),,我們可以將原理圖和layout提交給Nordic代理商或者Nordic Devzone進(jìn)行審核,。Devzone一般1到2個工作日就會給予你答復(fù)。電路圖提交流程請參考文章:Nordic官方網(wǎng)絡(luò)資源介紹(官網(wǎng)/devzone/GitHub)(第2節(jié):Nordic Devzone(開發(fā)者論壇)),。Devzone提交電路圖review的界面是長下面這個樣子的:
7. 第7步:打板 如何貼片,,Nordic也有相應(yīng)的指導(dǎo)文件,目前Nordic芯片只有QFN,,WLCSP和aQFN三種封裝,,相關(guān)貼片指導(dǎo)說明都放在application note中:https://infocenter./index.jsp?topic=%2Fstruct_appnotes%2Fstruct%2Fappnotes.html&cp=11
8. 第8步:射頻性能測試 如果自己有專門的BLE測試設(shè)備,那么你可以自己來測試板子RF性能,。如果你沒有BLE測試設(shè)備,,也沒有關(guān)系,Nordic或其代理商免費(fèi)提供BLE測試服務(wù),。只要把板子寄給Nordic代理商實驗室,,或者Nordic實驗室,或者第三方實驗室,,比如R&S實驗室,,他們就能幫你完成BLE性能和符合性測試。你可以根據(jù)實驗測試結(jié)果對板子進(jìn)行二次整改,。一般而言,,專業(yè)的藍(lán)牙測試設(shè)備都遵守DTM(Direct Test Mode)規(guī)范,所以設(shè)備端(nRF5端)只需下載DTM固件就可以與之通信并完成相關(guān)測試,。Nordic每一版SDK都包含每顆芯片的DTM固件,,建議大家使用SDK15.3.0里面的DTM程序,測試說明請參考:https://infocenter./index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fble_sdk_app_dtm_serial.html&cp=5_1_4_5,。 另外,,在這里推薦一種簡單RF測試方法,即跟Nordic官方 DK進(jìn)行通信距離比對測試,??梢园裇DK中的HRS(Heart Rate application)程序分別下載到Nordic DK和你的用戶板中,然后分別連上手機(jī),,看看手機(jī)跟DK的通信距離有多遠(yuǎn),?再看看你的用戶板跟手機(jī)通信距離有多遠(yuǎn)?如果兩者差不多,,說明你的用戶板RF性能不錯,。HRS程序放在SDK目錄:<InstallFolder>\examples\ble_peripheral\ble_app_hrs,測試說明見:https://infocenter./index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fble_sdk_app_hrs.html&cp=5_1_4_2_2_13,。 第9步:功耗測試 低功耗藍(lán)牙應(yīng)用一般都是用電池供電的,,所以對功耗要求非常高,。如何有效快速的測試nRF5的功耗,尤其是BLE各種應(yīng)用場景下的功耗,,就顯得尤為重要,。Nordic提供了一個在線的理論功耗計算工具:https://devzone./power/,你只需輸入你的藍(lán)牙應(yīng)用場景,,該在線工具就可以自動算出這種場景下nRF5芯片的功耗大概為多少,,網(wǎng)頁截圖如下所示:
該工具的使用說明請參考:https://devzone./b/blog/posts/nrf52-online-power-profiler。 除了這個在線的理論功耗計算工具,,Nordic還提供了一塊電流測試板:PPK(Power Profiler Kit),,PPK可以用來實時測試用戶板的VDD功耗,就像專業(yè)的電源測試工具或者示波器一樣,,PPK購買鏈接為:https://www./About-us/BuyOnline?search_token=nRF6707,, 使用說明請參考:https://www./Software-and-Tools/Development-Kits/Power-Profiler-Kit/Download#infotabs。 如果對BLE功耗測試原理感興趣的話,,可以參考如下兩篇貼子:https://devzone./tutorials/b/hardware-and-layout/posts/current-measurement-guide-introduction和https://devzone./tutorials/b/hardware-and-layout/posts/nrf51-current-consumption-guide 一般來說,,測試BLE功耗時,nRF5可以下載HRS程序(關(guān)掉UART日志功能)或者power profiling程序,,這2個程序都可以準(zhǔn)確反應(yīng)nRF5芯片的藍(lán)牙功耗情況,。Power profiling程序放在SDK目錄:<InstallFolder>\examples\ble_peripheral\ble_app_pwr_profiling,測試說明見:https://infocenter./index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fble_sdk_app_pwr_mgmt.html&cp=5_1_4_2_2_20,。HRS程序放在SDK目錄:<InstallFolder>\examples\ble_peripheral\ble_app_hrs,,測試說明見:https://infocenter./index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fble_sdk_app_hrs.html&cp=5_1_4_2_2_13。 10. 第10步:勘誤表自查 勘誤表(Errata或者PAN)內(nèi)容一般都是關(guān)于軟件開發(fā)注意事項的,,軟件出問題的時候或者正式量產(chǎn)之前,建議自查一下勘誤表,,以防踩到“坑”,。請注意,雖然勘誤表里面的條目很多,,但真正跟你有關(guān)系的其實很少,,原因有二:一勘誤表里面的workaround已經(jīng)集成到SDK里面,二錯誤出現(xiàn)的條件非常極端,,你的應(yīng)用不會有這種情況,,所以不要被勘誤表長長的列表給嚇倒了。如果你使用的是最新版本的SDK和最新版本的芯片,,一般而言,,勘誤表跟你無關(guān),但如果你使用的是老版本SDK或者老版本芯片,,那么就一定要自查勘誤表了,。
11. 第11步(可選):認(rèn)證 根據(jù)產(chǎn)品需要,,你可以去做BQB認(rèn)證,SRRC認(rèn)證,,F(xiàn)CC認(rèn)證,,ETSI認(rèn)證,環(huán)保測試等,。Nordic產(chǎn)品本身已經(jīng)通過了上述所有測試和認(rèn)證,,對用戶來說,這些認(rèn)證工作,,更多的是一些文檔工作,。一般來說,推薦用戶去選擇一家專業(yè)的實驗室或者第三方機(jī)構(gòu)去做這些認(rèn)證,,這樣可以保證通過而且不耽誤項目進(jìn)度,。 Nordic提供了兩套射頻測試固件,一套是DTM測試代碼,,符合藍(lán)牙DTM標(biāo)準(zhǔn),,位于目錄:SDK安裝目錄\examples\dtm\direct_test_mode,具體說明請參考:https://infocenter./index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fble_sdk_app_dtm_serial.html&cp=5_1_4_5,;一套是Radio test測試代碼,,用于直接測試各個射頻通道物理性能,比如頻偏等,,位于目錄:SDK安裝目錄\examples\peripheral\radio_test,,具體說明請參考:https://infocenter./index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fnrf_radio_test_example.html&cp=5_1_4_6_29。BQB認(rèn)證或者SRRC認(rèn)證,,一般推薦使用DTM代碼,。另外如果你需要測試2.4G丟包率,也推薦使用DTM代碼,,這個在量產(chǎn)測試的時候非常有用,。當(dāng)然,SRRC認(rèn)證也可以使用radio test代碼,,radio test代碼除了可以測試藍(lán)牙和2.4G,,還可以用來測試802.15.4的物理層,比較適合用來進(jìn)行定頻測試以及頻偏測試等,。 BQB認(rèn)證分終端產(chǎn)品和底層component兩種認(rèn)證,,做終端產(chǎn)品認(rèn)證需要用到component認(rèn)證證書,即QDID,,大家可以到如下的藍(lán)牙聯(lián)盟官網(wǎng)查詢Nordic所有認(rèn)證產(chǎn)品的 QDID:https://launchstudio./Listings/Search,,在搜索框輸入“Nordic Semiconductor”,即可搜出Nordic所有QDID,。
除了上述認(rèn)證,,Nordic還提供如下報告:
12. 第12步:搭建量產(chǎn)燒寫環(huán)境 Nordic不提供量產(chǎn)燒寫器,,不過有很多第三方機(jī)構(gòu),比如希爾特,,以及Nordic代理商都有相關(guān)量產(chǎn)用的燒寫工具,。其實,支持SWD接口的Jlink燒寫器都可以用來燒寫Nordic產(chǎn)品(淘寶上有很多),。雖然Nordic不提供量產(chǎn)燒寫器,,但是Nordic提供了一個量產(chǎn)燒寫軟件nrfjprog,而且nrfjprog有可執(zhí)行文件,,DLL庫,,Python接口等多種存在形式,同時支持Windows,,Linux和Mac系統(tǒng),。nrfjprog的可執(zhí)行文件和動態(tài)庫在安裝nRF5x Command Line Tools時就會自動安裝好,可執(zhí)行文件nrfjprog放置在如下目錄:
在Windows環(huán)境變量中添加上述目錄后,,在CMD中輸入nrfjprog,,你將會看到:
可執(zhí)行文件的nrfjprog的使用說明請參考:https://infocenter./index.jsp?topic=%2Fug_nrf5x_cltools%2FUG%2Fcltools%2Fnrf5x_nrfjprogexe.html&cp=6_1_3。 如果你想基于nrfjprog DLL來開發(fā)自己的量產(chǎn)燒寫工具,,請參考:https://infocenter./index.jsp?topic=%2Fug_nrf5x_cltools%2FUG%2Fcltools%2Fnrf5x_nrfjprogdll.html&cp=6_1_4,。 現(xiàn)在Python非常流行,如果你想開發(fā)Python版的量產(chǎn)燒寫工具,,nrfjprog也提供了相關(guān)庫:pynrfjprog,,相關(guān)使用說明請參考:https://infocenter./index.jsp?topic=%2Fug_pynrfjprog%2FUG%2Fpynrfjprog%2Fpynrfjprog_lpage.html&cp=6_2。 如果你不想使用nrfjprog,,而想使用標(biāo)準(zhǔn)的SWD指令去直接操作nRF5芯片,,那么請參考white pager 027:https://infocenter./index.jsp?topic=%2Fnwp_027%2FWP%2Fnwp_027%2Fintro.html&cp=12_4。 方法多種多樣,,選擇適合你的就好。 13. 第13步:搭建生產(chǎn)測試環(huán)境 一般來說,,有2種生產(chǎn)測試方法:一是使用昂貴的專業(yè)設(shè)備來進(jìn)行生產(chǎn)測試,,比如Litepoint,Anritsu等,,二是使用Nordic的nRF51/52 DK作為gold sample去測試DUT,,成本低廉效果也不錯。具體請參考Nordic application note 034:https://infocenter./index.jsp?topic=%2Fstruct_appnotes%2Fstruct%2Fappnotes_nan34.html&cp=11_3 14. 第14步:小批量試生產(chǎn) 重點(diǎn)觀察產(chǎn)品一致性,,良率和產(chǎn)能,。 15. 第15步:大批量生產(chǎn) 產(chǎn)品上市,!
上面更多的是站在一個硬件工程師角度去評估,選型和開發(fā)一個產(chǎn)品,,除此之外,,軟件選型也是非常重要的。軟件開發(fā)的便捷性將直接影響產(chǎn)品的上市時間,,SDK的穩(wěn)定性和可維護(hù)性將直接影響后期人力資源的再投入,,對很多公司來說,“軟”投入已經(jīng)大大超過“硬”投入了,,所以軟件選型也變得越來越重要了,。很多人都覺得Nordic產(chǎn)品的功耗做得非常低,很了不起,,不過個人感覺,,Nordic真正的殺手锏優(yōu)勢不是低功耗,而是其提供的SDK開發(fā)起來非常方便,,運(yùn)行也非常穩(wěn)定,,開發(fā)者不需要把自己的精力花在幫Nordic找bug和解bug上,而只需專注在自己的業(yè)務(wù)邏輯開發(fā)上,。關(guān)于Nordic SDK開發(fā)環(huán)境搭建,,請參考: Nordic nRF51/nRF52開發(fā)環(huán)境搭建 |
|