lvs是內核裡面的功能,在內核中叫做ipvs 用戶空間使用ipvsadm這個工具包提供的工具來管理內核中的ipvs功能 ipvsadm 命令 ipvsadm核心功能: 集群服務管理:增、刪、改 集群服務的RS管理:增、刪、改 查看 使用 ipvsadm 管理集群服務:增、改、刪 增、修改: ipvs ...
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了。