Nordic 的BLE系列芯片從第一代的nRF51系列,到第二代的nRF52系列,發展到目前最新的第三代的nRF5340,目前市場中使用最多的nRF52系列一共有七款芯片,它們是:nRF52805、nRF52810、nRF52811、nRF52820、nRF52832、nRF52833、nRF52840,其硬體(主要是RAM、FLASH、PHY及支持協議)的不同,滿足了不同領域的需求,本系列文章將著重介紹Nordic的nRF52系列和nRF5340從前期選型、原理圖設計、Layout、天線匹配及RF頻偏除錯的程序,希望能對廣大使用Nordic芯片的開發者有所幫助,
一、芯片選型
1、粗略選型
Nordic官網中有一個產品比較頁:https://www.nordicsemi.com/products/bluetooth-low-energy,打開此頁面,我們可以看到Nordic目前一些主流型號的芯片的配置情況,在這個頁面中詳細列出了芯片 CPU的主頻、Flash、RAM、供電范圍、支持的硬體通訊介面(UART、I2C、I2S、SPI、HSPI、QSPI、USB、ADC)等資訊,根據這些資訊,開發者可以粗略篩選出2-3顆符合自己需求的芯片,

3、Flash和RAM資源選擇,
確定大致的選型后,可以根據實際應用的具體需求再去進一步評估所需的Flash和RAM,Nordic的SDK中有豐富的例程,基本涵蓋了市面上一些常見的應用,這些例程實際上已經幫開發者搭好了框架,開發者可以在這些例程的基礎上開發,去增加相應的功能即可,而不是從零開始,所以我們可以借助SDK中的例程大小大致來評估實際應用所需的flash和RAM大小,
Nordic目前有兩套SDK,老的nRF5 SDK現在已經進入維護階段,Nordic不會在其中增加新的功能,未來新的功能都是放在NRF CONNECT SDK(簡稱NCS)中更新,nRF52系列的芯片支持兩套SDK,但nRF5340只支持NCS,
關于環境的搭建,可以參考Nordic 中國區的FAE寫的博客:https://www.cnblogs.com/iini/p/9043565.html、https://www.cnblogs.com/iini/p/14174427.html,這兩篇文章分別介紹了nRF5 SDK和NCS的環境搭建方法,
搭建好環境后,我們可以到SDK中找到相應的例程,例如需要開發一個手環應用,我們可以打開ble_app_hrs例程,可以看到HRS下有5名為PCA100XX的檔案夾,這對應這此例程支持的DK板型號,PCA10040為NRF52840DK、PCA10040e為NRF52810DK、PCA10056為NRF52840DK、PCA10056e為NRF52811DK,有些例程下還有PCA10010和PCA10010e兩個檔案夾,分別對應NRF52833和NRF52820,PCA10059為NRF52840 Dongle,

查看例程所用的Flash和RAM的使用情況,需要借助SES編譯例程,編譯完成后,我們可以看到HRS例程幾乎用掉了NRF52810的全部Flash和RAM(SES編譯計算的Flash和RAM是包括了MBR、協議堆疊、application三部分的),這說明nRF52810不太適合做心率手環的應用,需要另選其他芯片,

再次編譯nRF52840的工程,可以看到NRF52840的Flash和RAM使用情況,再結合其他要增加的功能(DFU、驅屏外設等)來做判斷,

4、 封裝選擇
nRF52系列和nRF5340芯片都有多個封裝可以選擇,開發者可以根據實際產品對體積的要求及成本角度出發,選擇封裝,每款芯片的手冊中都有此芯片的不同封裝資訊,如下圖是nRF52840不同封裝資訊,此內容可在該芯片的 Product Specification 中查到,



二、原理圖設計
1、參考設計資料
選定適合的芯片后,就可以開始設計原理圖了,Nordic官方提供了豐富的硬體參考設計資料:
在Nordic官網上可以除了有芯片的設計參考之外,Nordic的官方DK(Development Kit)的設計資料也是全開源的,可以在官網上找到,
我們以nRF52840為例,首先進入Nordic官網:https://www.nordicsemi.com,

點擊右上角搜索芯片,在這里可以搜到芯片和對應DK的相關頁面,我們搜索nRF52840,可以看到在這里搜到了nRF52840 Dongle、DK以及芯片的相關資訊,

在搜索頁面打開nRF52840,在nRF52840介紹頁面中點擊 Compatible downloads 可以看到芯片的參考設計下載鏈接,如果你選擇的是其他封裝的,可以在左側Reference layout and BOM Resources中切換,



芯片的參考設計是一個Zip壓縮包,將其下載并解壓后,可以看到一共有四個檔案夾

Altium Designer files 檔案夾中是可以用Altium打開的檔案,芯片的封裝可以直接從其中拷貝出來,如果你使用的是其他設計軟體,如PADS,需要將此檔案夾中的.PcbDoc檔案匯入到你使用的設計軟體中,具體方法請上網搜索,如果匯入不成功或者你覺得比較麻煩的話也在網上搜索其他人畫好的庫,或者根據芯片手冊中的引腳相對位置關系直接自己畫封裝,

Bill of Materials 檔案夾中是參考設計對應的BOM表,在BOM表中可以清楚看到Nordic推薦使用的阻容感器件及高低頻晶體的型別和精度及引數,


Production files檔案夾中則主要是板子的Gerber檔案,方便設計者查看官方參考設計中每一層的走線,

Schematic and Layout pdf files檔案夾中是原理圖的PDF和Layout分層匯出的PDF,

看到這里,你可能會有一個疑問,為什么每一個檔案夾中,都有很多個config,比如nRF52840的參考設計中,每個檔案夾中都有7個config,實際上每個config都是一種參考設計,四個檔案夾中每個config名稱相同的檔案是同一個參考設計,是一一對應的關系,即Altium Designer files中的nrf52840_qiaa_config1.PcbDoc對應的Altium 原理圖是nrf52840_qiaa_config1.SchDoc,對應的BOM是Bill of Materials 中的nrf52840_qiaa_config1_bom,對應的Gerber檔案是nrf52840_qiaa_config1為名稱的一系列檔案,對應的PDF原理圖和Layout分層圖是nrf52840_qiaa_config1_schematic.pdf和nrf52840_qiaa_config1_pcb.pdf,這些參考設計的區別在與有的使用芯片的DC/DC模式,有的直接使用USB供電,這些區別會放在第二部分 2、芯片電源模式選擇 部分詳細敘述,
介紹完芯片的參考設計資料,前面我們還提到官方DK的設計資料也是開源的,進入DK的頁面,滑動到下方選擇Downloads,可以看到官方DK的設計資料的下載鏈接,



DK的設計資料包也是一個Zip壓縮包,下載并解壓后,可以看到兩個檔案夾,PCA10056是nRF52840 DK的設計資料,PCA641100是DK附帶的NFC天線的設計資料,

打開PCS10056檔案夾,其子檔案夾結構和芯片的參考設計類似,
2、芯片電源選擇
上一章節我們講了同一個芯片有好多種參考設計,它們的區別在于不同芯片選擇的主供電電源不同和是否有使用芯片的DCDC模式,我們繼續以nRF52840 QIAA的參考設計包為例,
從nrf52840_qiaa_config1、nrf52840_qiaa_config2、nrf52840_qiaa_config3、nrf52840_qiaa_config6中可以看到,這四個參考設計使用了不同的電源做為芯片的主供電,nrf52840_qiaa_config1、nrf52840_qiaa_config2、nrf52840_qiaa_config3用到了芯片的USB,所以給芯片的VBUS引腳供電,其中nrf52840_qiaa_config1參考設計直接用VBUS當作芯片主電源給VDDH引腳供電,

nrf52840_qiaa_config2則使用了單獨的VDDH做為芯片主電源給VDDH引腳供電,這兩個參考設計的相同點在于,沒有為VDD引腳供電,而是將VDD當作Output,即所謂的High Voltage mode,在High Voltage mode下可以把VDD當做電源輸出來為其他設備例如傳感器供電,

而nrf52840_qiaa_config3和nrf52840_qiaa_config6使用了VDD_nRF當作芯片主電源給VDD和VDDH引腳供電,這種方式被稱作Normal Voltage mode,


nRF52840芯片規格書中對于High Voltage mode和Normal Voltage mode的描述如下:

這里需要注意的是QFN48封裝的nRF52840,即nRF52840 QFAx中是沒有高電壓模式的,
從規格書里可以看到NRF52840在高壓模式下是支持將VDD當作Output來給其他設備供電,可以通過配置REGOUT0暫存器來配置特定電壓


VDD支持的輸出電壓范圍取決于VDDH引腳提供的電源電壓,從規格書中可以看到VDDH與VDD的最小差值為0.3V,即當VDDH供電為3.6V時,VDD最大輸出電壓為3.3V,從下面這個表我們還可以看出,VDD最大的輸出電流為25ma(發射功率小于4dBm時),所以開發者在設計NRF52840的硬體時,如果是較簡單的系統,如系統只有NRF52840和一個傳感器,且系統由鋰電池或USB供電,直接由NRF52840的VDD給傳感器供電,但是需要注意傳感器的峰值功耗不應大于下表,

最后是電源腳供電電壓的值的問題,如下表是NRF52840的VDD、VDDH、VBUS三個腳所支持的電壓范圍,此內容可以在規格書的Power and clock management一章中找到,


小結:此章節僅以nRF52840為例,不是所有Nordic芯片都支持高壓模式與VDD External circuitry supply,切勿生搬硬套到其他型號的Nordic芯片,開發者在開發程序中需要閱讀所選擇芯片的規格書去做設計,此章節只是提供一個如何根據官方參考設計結合規格書做硬體設計的思路,
3、晶振選擇
Nordic的芯片一般外圍需要兩顆晶振,一顆低頻的32.768K,一顆高頻的32M,低頻晶振負載提供時鐘源,高頻晶振負載提供射頻運行時的頻率基準源,

nRF52832有兩頻率的時鐘,64MHz高速時鐘和32.768kHz的低速時鐘,這兩個時鐘可由以下電路產生,可通過配置config.h檔案來軟體選擇各自的時鐘源,

產生64MHz高速時鐘的途徑有兩個:
(1)64MHz 片上時鐘;
(2)用外部32MHz晶振產生64MHz時鐘;
產生32.768kHz低速時鐘的途徑有三個:
(1)32.768MHz片上RC振蕩器,精度為+/-250ppm.
(2)用外部32.768kHz晶振產生的32.768kHz的時鐘;
(3)由64MHz的時鐘綜合而成的32.768kHz的時鐘;

一般而言,內部的64MHz片上時鐘的抖動較大不建議使用,無法滿足2.4GHz BLE頻率的PLL要求,所以在BLE中,高速時鐘必須由外部32MHz晶振產生,
對于低速時鐘,如果對時鐘精度沒有很高的要求,對于PCB面積受限的應用,可以選擇使用內部RC,從而省掉外部的32.768K和負載電容,
兩顆晶振的引數要求如下:


可以直接按照Nordic官方DK用的晶振引數去選型

4、LDO與DCDC供電模式選擇
如下圖是nrf52840_qiaa_config2和nrf52840_qiaa_config4參考設計的原理圖,這兩個參考設計都是用了高電壓模式供電,但兩者的區別是nrf52840_qiaa_config4的DCC腳和DCCH上接了電感,這里就要引入nRF51/52/53系列芯片的一個重要硬體概念:LDO和DCDC


如下是規格書中芯片的LDO和DCDC模式的介紹,簡單的概括就是DCDC模式的功耗會比LDO模式的功耗低

我們可以從Nordic官方給出的在線功耗評估工具來直觀的看二者在功耗上的差距:https://devzone.nordicsemi.com/power/w/opp/2/online-power-profiler-for-bluetooth-le
從下面兩張圖可以看出,同樣使用nRF52840,3.3V供電,發射功率為0dBm,使用外部低頻晶振,設定廣播周期為100ms的情況下,DCDC模式的平均功耗為90uA,而LDO模式的平均功耗為140uA,


5、GPIO的選擇
NRF51/52/53系列芯片的外設(除ADC、QSPI、HSPI)是可以在GPIO上自由映射的,沒有限定特定的腳位,我們可以從芯片規格書中看到,以NRF52840 QIAA為例,可以從下表中看到部分GPIO的Description中標注了Analog input,這就是可以用做ADC的GPIO,

同樣的QSPI腳在Recommended usage中也有標注出來

這里需要注意標注有 low frequency I/O only的GPIO,

關于此類GPIO,Noridc官方的描述是此類GPIO可以用做外設,但是在射頻開啟時不建議用做10KHz以上的外設,如UART、SPI、I2C、I2S等,射頻開啟的情況下用這些GPIO做高速外設會影響射頻性能,

看到這里可能部分初學者會對芯片DEC腳的作用產生疑問,芯片帶有DEC的腳位是芯片的退耦腳,需要外接退耦電容,退耦電容的接法和值在芯片的參考設計中已經給出,直接照搬參考設計即可,關于退耦電容的作用,感興趣的讀者可以自行搜索,簡單來說,退耦電容是用來消除輸入的電流在芯片中產生的震蕩和自激電流用的,

關于外設的型別和數量,可以在芯片規格書的首頁看到,以NRF52840為例:

如果你對選擇外設和GPIO有困難,也可以直接選擇Nordic官方DK使用的外設介面,可以在SDK的PCA100xx.h檔案夾中找到,繼續以NRF52840為例,NRF52840對應的外設頭檔案為PCA10056.h


如果你選擇的是其他的芯片,如NRF52832,去對應的PCA10040.h即可,下面是Nordic系列芯片對應的開發板名稱
PCA10040對應NRF52832
PCA10010對應NRF52810
PCA10056對應NRF52840
PCA10056e對應NRF52811
PCA10010對應NRF52833
PCA10010e對應NRF52820
PCA10028對應NRF51422/51822/51802
6、天線與匹配電路
按照Nordic給出參考設計,設計完最小系統,并選定外設的GPIO和供電電源之后,就剩下天線和匹配電路了,天線可以選擇現成的2.4G陶瓷天線或是PCB天線,也可以以IPEX座的形式將天線引出到板外,使用體積更大的外接天線獲得更好的信號,具體關于天線和匹配電路的問題,我會放在下一篇文章里面去詳細講,這里需要注意的是,Nordic給出的參考設計并沒有預留天線的匹配電路,所以建議開發者在設計硬體原理圖的時候,預留一個Π型匹配電路,方便后期除錯天線,參考電路如下,R1、C25、C26共同組成了Π型匹配網路,初始值可以預留為R1=0R、C25=C25=N.C.,

總結:本文提供的是使用Nordic芯片做硬體設計的基本思路,按照上述步驟完成Nordic芯片的硬體設計之后,就可以進行下一步的Layout了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520542.html
標籤:嵌入式
上一篇:記錄一次sshd服務啟動失敗
