Nordic nRF54H20DK开发板开箱测评
<p>今天收到了Nordic最新的旗舰级BLE芯片 nRF54H20的开发板,做一个简单的开箱测评。包装简洁使用了牛皮纸盒,十分符合北欧人的环保理念(手动狗头)。</p><p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p>一、nRF54H20开发板概览</p>
<p> 打开包装之后里面是用防静电袋包装的开发板和NFC天线。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> nRF54H20开发板在Nordic开发板家族中的代号是PCA10175,目前的硬件版本是0.8.0。nRF54H20的开发板对比起上一代nRF5340的开发板来说简洁了不少,上面元器件的数量大大减少。USB口也从Micro-USB口改成了Type-C口(是因为欧盟强制要求的吗?再次手动狗头)。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p>整个开发板上四颗主芯片除了 Macronix 的64Mb Nor Flash外,其他三颗都是Nordic自己的芯片。</p>
<p>开发板的电源部分用上了Nordic自研的PMIC nPM1300,Jlink芯片则是Nordic的nRF5340。</p>
<p> </p>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<p> </p>
<p> 最后是压轴的nRF54H20,上面的丝印是N54H20CKAA,按照Nordic的命名规则可以得知这是nRF54H20 WLCSP封装的芯片,我有一个Nordic原厂的朋友释放给我一些资料,上面显示nRF54H20还有一个尺寸更大的BGA封装。</p>
<p>题外话:我那个Nordic原厂的朋友给我的资料上还显示nRF54系列还存在一个低配版的小老弟nRF54L15,据我那个朋友说这是现有的nRF52系列的升级版。改天让我这个原厂的朋友再给我搞一块nRF54L15的开发板来玩玩。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p>二、nRF54H20介绍</p>
<p>从我Nordic原厂那个朋友释放给我的资料来看,nRF54H20采用了3个主处理器+2个协处理器的多核架构。其中:</p>
<p>(1)256MHz的Arm M33是做为射频网络协议处理器(Net Core)</p>
<p>(2)320MHz的Arm M33是应用核(Application Core)。</p>
<p>这两个部分看起来和上一代的nRF5340的架构类似,设计出发点是让BLE\Thread\ANT\私有2.4G等射频网络协议运行在Net Core里面,Application Core的资源完全给到用户去跑自己的应用程序,用户的应用程序可以使用Application Core最高的优先级,二者之间数据交换采用共享一部分RAM区域的方式来实现。</p>
<p>(3)除此之外,还存在一个Security的核,这个核的作用应该是负责跑一些加密算法之类的,具体内部什么资源就不知道了,我那个Nordic原厂的朋友也没告诉我。</p>
<p>(4)最后还有两个RISC-V的协处理器,这两个核看起来是给外设用的,设计思路应该是System ON模式下让这两个核来处理外设的中断(毕竟Application Core 320MHz的运行的功耗有点吃不消)。</p>
<p>从我原厂朋友给我的这张图看来,nRF54H20还给了一个1M的RAM和1个2M的Flash,而且发射功率给到了10dBm,接收灵敏度更是做到了-100dBm。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p>这么来看,nRF54H20可谓是量大管饱,那么这么厉害的芯片要多少钱呢,扫下面这个二维码进群吧,我那个Nordic原厂的朋友会告诉你价格,同时还会给你释放nRF54系列的相关资料。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p> 三、开发板设置</p>
<p>我那个Nordic原厂的朋友还扔给我一个文档,是关于如何测试nRF54H20DK的链接如下:<a data-mce-href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/device_guides/working_with_nrf/nrf54h/ug_nrf54h20_gs.html#ug-nrf54h20-gs" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/device_guides/working_with_nrf/nrf54h/ug_nrf54h20_gs.html#ug-nrf54h20-gs">Technical Documentation (nordicsemi.com)</a></p>
<p>从文档里面来看,要预先给DK烧录BICR和SDFW、SCFW两个固件,文档里也给了这两个固件的下载链接</p>
<h1> </h1>
<p> </p>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<p> </p>
<p>根据这个文档描述,预先需要在电脑上安装</p>
<p><a data-mce-href="https://git-scm.com/" href="https://git-scm.com/">Git</a> or <a data-mce-href="https://git-scm.com/download/win" href="https://git-scm.com/download/win">Git for Windows</a> 、</p>
<p><a data-mce-href="https://curl.se/" href="https://curl.se/">curl</a></p>
<p>最新版本的最新版本的<a data-mce-href="https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools" href="https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools">nRF Command Line Tools</a></p>
<p><a data-mce-href="https://www.segger.com/downloads/jlink/" href="https://www.segger.com/downloads/jlink/">J-Link version 7.94e</a>.</p>
<p>可以直接点上面的超链接下载,官方的文档里也给了下载链接。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p> 除此之外还需要<a data-mce-href="https://www.nordicsemi.com/Products/Development-tools/nrf-util" href="https://www.nordicsemi.com/Products/Development-tools/nrf-util" target="_blank">nRF Util</a>,这个比较简单,直接在点击链接下载后放在某个目录下,然后在用户变量和环境变量中设置路径即可。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> 我这里是在C盘根目录下建了一个Nordic的文件夹,放在了里面,在用户变量和环境变量中分别设置路径</p>
<p> </p>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<p> </p>
<p> 最后在CMD中运行nrfutil --version,回复版本说明设置成功</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p>最后就是下载BICR、SDFW and SCFW这几个固件,这里需要将开发板插在电脑上(要接开发板的Debugger USB),在这几个固件的目录下运行CMD或者Power Shell。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p>这里要用到下面几条命令:</p>
<pre>
//查询目前连接在此电脑上的设备列表,此处会返回nRF54H20DK的相关信息
nrfutil device list
//下载BICR固件到开发板
nrfutil device program --options chip_erase_mode=ERASE_NONE --firmware bicr_ext_loadcap.hex --core Secure --serial-number <serial_number>
//下载SDFW and SCFW固件到开发板</pre>
<pre>
nrfutil device x-provision-nrf54h --firmware nrf54h20_soc_binaries_v0.5.0.zip --serial-number <serial_number>
//查询 lifecycle 状态
nrfutil device x-adac-discovery --serial-number <serial_number>
//设置 lifecycle 为 rot
nrfutil device x-adac-lcs-change --life-cycle rot --serial-number <serial_number>
</pre>
<pre>
//再次查询 lifecycle 状态
nrfutil device x-adac-discovery --serial-number <serial_number>
</pre>
<pre>
//复位开发板
nrfutil device reset --reset-kind RESET_PIN --serial-number <serial_number></pre>
<p>1、查询目前连接在此电脑上的设备列表、下载BICR、SDFW和SCFW固件到开发板。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p>2、查询lifecycle状态,显示为EMPTY,将lifecycle状态改为ROT</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p>3、再次查询lifecycle状态,显示为ROT,说明修改成功。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p>4、最后复位开发板</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> 5、这里要说明一下,官方给的文档中有一个updating FICR的步骤,这条是针对之前比较早的开发板,如果开发板上没有任何ES的字样,是不需要执行updating的,否则可能变砖(别问我怎么知道,问就是我有一个朋友的DK就是这么变砖的)。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p> 四、程序下载调试</p>
<p>设置好DK之后就是程序的编译下载了,因为nRF54系列全面转向了新的NRF CONNECT SDK,不再支持nRF5 SDK。</p>
<p>这里环境搭建可以参考官方的文档:<a data-mce-href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/installation/install_ncs.html" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/installation/install_ncs.html">Installing the nRF Connect SDK (nordicsemi.com)</a></p>
<p>最新的文档已经推荐使用nrfutil来下载SDK了,但是我个人还是更喜欢用west的方式</p>
<p>这里可以参考中国区原厂FAE的博客:<a data-mce-href="https://www.cnblogs.com/iini/p/14174427.html" href="https://www.cnblogs.com/iini/p/14174427.html">开发你的第一个nRF Connect SDK(NCS)/Zephyr应用程序 - iini - 博客园 (cnblogs.com)</a></p>
<p>按照博客中的方法安装好Choco和相关的工具之后,直接执行下面两条命令即可:</p>
<pre>
west init -m <a href="https://github.com/nrfconnect/sdk-nrf" target="_blank">https://github.com/nrfconnect/sdk-nrf</a> --mr v2.7.0
west update</pre>
<p>nRF54系列的SDK要使用NCS 2.7.0及以上的版本,下载SDK的时候需要注意。</p>
<p>NRF CONNECT SDK现在的编译环境也换成了VS Code + Nordic插件的方式,这里的编译环境搭建也可以参考上面中国区原厂FAE的博客。</p>
<p>这里需要注意,nRF54系列目前还在工程样机阶段,所以需要切换到pre-release版本</p>
<p> </p>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p> </p>
<p>1、程序编译</p>
<p>这里直接使用Nordic做的一个应用级别的Demo,nRF Desktop来测试,这个Demo用到了USB、BLE和Nordic自己做的一个跳频的2.4G协议LLPM,这个Demo支持Mouse,Keyboard,Dongle等功能,项目文档如下:<a data-mce-href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/README.html" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/README.html">nRF Desktop (nordicsemi.com)</a></p>
<p>将下载好的NCS2.7.0整个文件夹拖入VS Code中,然后设置好SDK和工具链</p>
<p>(1)点击Create a new application</p>
<p>(2)选择Copy a sample</p>
<p>之后在搜索栏中输入NRF Desktop,这一步的目的是将此例程拷贝出来放在SDK外部的文件夹下编译,这样去修改例程就不会将SDK中原始的工程改乱。</p>
<p>例如我是将在E:\NCS目录下创建了三个文件夹</p>
<p>E:\NCS\v2.7.0 主要是用来存放SDK</p>
<p>E:\NCS\my_ble_sample 主要用来将存放从SDK中拷贝出来的例程</p>
<p>E:\NCStoolchains 主要用来存放工具链</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p>完成上述步骤后就可以新建一个Build了,点击例程右上角的【文件夹+】 的图标,并在Board target中选择 nrf54h20dk/nrf54h20/cpuapp </p>
<p>查看此项目的文档得知,此例程可以通过模拟鼠标上报数据的方式,来测试报告率,只需要在编译的时候在Extra CMake arguments中加入以下宏即可</p>
<pre>
-DFILE_SUFFIX=release
-DCONFIG_DESKTOP_MOTION_SIMULATED_ENABLE=y
-DCONFIG_DESKTOP_MOTION_SIMULATED_EDGE_TIME=8192
-DCONFIG_DESKTOP_MOTION_SIMULATED_SCALE_FACTOR=5</pre>
<p>利用这个功能,我们可以测试nRF54H20的High Speed USB,来实现高回报率的功能</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> 将上述宏添加之后,因为nRF54H20是一个多核芯片,需要将Net core、Application等核的固件一起编译,所以需要选择Use sysbuild,最后点击Build Configutation</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> 编译完成后,可以看到例程路径下多了一个build开头的文件夹,这个里面就是最终编译生成的包含hex文件在内的相关文件。</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> 选择Use sysbuild 之后可以看到Radio Core的代码也被包含进来编译,编译出来的文件夹中有一个ipc_radio的文件夹,同时可以在VS Code中看到有一个ipc_radio的子项目,这个就是Net core的相关代码。</p>
<p>这里sysbuild实际上借助了例程sysbuild相关命名的文件启用相关的宏来实现的,感兴趣的读者可以自行查看nrf_desktop\sysbuild.cmake、nrf_desktop\sysbuild和nrf_desktop\configuration\nrf54h20dk_nrf54h20_cpuapp\sysbuild.conf或者sysbuild_release.conf这几个文件</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> 最后就是点击flash将程序下载到nRF54H20DK中,下载完成后显示Successfully</p>
<p> </p>
<div style="text-align: center;"></div>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p>2、8k回报率测试</p>
<p>将DK的nRF54H20 USB口插在电脑上(建议直接连在电脑的USB口上,不要接HUB),可以看到电脑上已经显示出一个Mouse设备,名称是Mouse nRF54H20</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> 然后使用HID报告率测试上位机来查看USB的报告率,nRF54H20的HighSpeed USB可以达到480Mbps,目前例程默认设置的是8K报告率</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> 这里我们测试可以看到实际的回报率稳定在7950Hz</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p>最后你如果对Nordic的nRF54系列感兴趣的话,可以加这个QQ群,来跟我们一起讨论学习</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
大佬,想问下这样的开发板怎么获取的,想要学习下
页:
[1]