Nordic nRF52系列/nRF5340硬體設計(一)選型及原理圖設計

来源:https://www.cnblogs.com/HannibalWang/archive/2022/10/26/16659101.html
-Advertisement-
Play Games

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.htmlhttps://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了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本次案例代碼實現思路: 本次案例代碼實現思路: 打開考試網站 selenium --> 瀏覽器驅動 --> 操作瀏覽器 <模擬人的行為做操作瀏覽器> 獲取答案 獲取答案網站鏈接 獲取問題以及答案內容 對比題目以及答案 選出正確答案 獲取問題答案選項 和正確的答案進行對比 如果正確答案和選擇答案一致, ...
  • 前言 好記性不如爛筆頭,之前做項目的時候很熟練很順手就沒有寫筆記。因為排期問題項目中斷幾個月之後需要重新拾起來,結果發現自己現在忘記得差不多了,於是還是決定寫點東西記錄一下。即便是簡單的項目設置,忘記的時候也還是很痛苦啊。QAQ 1 版本信息 Unity 版本:2022.1.18f1c1 Visua ...
  • 前情概要 隨著容器和雲技術的發展, 大量的應用運行在雲上的容器中, 它們的好處是毋庸置疑的, 例如極大的提高了我們的研發部署速度, 快速的擴縮容等等, 但是也存在一些小小的問題, 例如難以調試. 基於VM的部署我們可以通過安全的方式登錄到主機上做一些你想做的事情, 但是雲上的容器那就是不太方便了(目 ...
  • 一:背景 1.講故事 前段時間有位朋友在微信上找到我,說他的程式偶發性崩潰,讓我幫忙看下怎麼回事,上面給的壓力比較大,對於這種偶發性崩潰,比較好的辦法就是利用 AEDebug 在程式崩潰的時候自動抽一管血出來,看看崩潰點是什麼,其實我的系列文章中,關於崩潰類的dump比較少,剛好補一篇上來,話不多說 ...
  • 泛型(Generic) 允許延遲編寫類或方法中的編程元素的數據類型的規範,直到實際在程式中使用它的時候。即定義的時候沒有指定具體的參數類型,把參數類型的聲明推遲到了調用的時候才指定參數類型。 日常代碼編寫中泛型使用較多的類比如List,Dictionary,本次使用泛型重寫List類,加深理解。 首 ...
  • 關於 Air32F103-Template, 項目地址: https://gitee.com/iosetting/air32f103-template, 這是為 GCC Arm 工具鏈準備的 AIR32F103x 項目開發模板 ...
  • 記錄一次sshd服務啟動失敗 問題描述: 伺服器開機之後發現無法通過遠程連接伺服器終端,但是伺服器並未宕機,於是考慮到sshd服務出現異常 解決思路: 查看伺服器sshd服務運行情況 [root@haha-main-130 var]# systemctl status sshd -l ● sshd. ...
  • 結構圖: 環境準備 lvs [root@lvs ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=none NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...