打印
[活动]

Nordic nRF7002开发板试用体验---从开发环境的搭建到蓝牙调光灯的调试

[复制链接]
505|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a736015|  楼主 | 2023-9-25 08:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 a736015 于 2023-9-26 09:47 编辑

一、开发板开箱照片
开发板的全家福如下图照片。里面有一块nRF7002 DK的开发板(用防静电袋包装)、一份纸质说明、还有一个NFC的线圈。需要自备数据线。 [size=10.5000pt]二、开发环境搭建
首先按官网(链接:https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.4.1/nrf/getting_started.html)的自动安装方式安装nRF Connect for Desktop(链接:
https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop/download#infotabs),打开后下拉选择Toolchain Manager右边的Install进行安装。
   
Toolchain Manager安装完成打开后,进入SETTINGS修改SDK的安装目录
设置好目录后,返回SDK ENVIRONMENTS进行安装
安装过程中会弹出J-LINK的安装,默认一直下一步完成安装
SDK安装完成后,选择“Open VS Code”打开
若提示需要安装VS Code,点击Install VS Code到官网上下载安装。安装好VS Code后,关掉nRF Connect for DesktopToolchain Manager,并重新打开
再次打开Open VS Code”,提示需要安装VS Code扩展,点击“Install missing extensions”进行安装
安装完扩展后,点击Open VS Code”打开,
打开后提示需要安装命令行工具,点击Install nRF Command Line Tools”到网站下载命令行工具,下载后一直下一步直到安装完成。
但是打开SDK的目录,发现SDK是不全的。
接下来在Toolchain Manager中更新SDK
到此,nRF Connect SDK开发需要的工具及SDK已经下载完成。SDK的目录如下
三、打开SDK的例程
nrfzephyr文件夹内都有一个samples的文件夹,这两个文件夹内都有很多的例程。
本次以nrf\samples\bluetooth\peripheral_uart的历程为例,打开后编译测试,可以测试安装的工具及SDK是否正常。
打开VS Code软件,切换到nRF Connect一栏,点击Create a new applicationApplication type选择FreestandingApplication location选择新建项目的存储地址,Application template选择nrf\samples\bluetooth\peripheral_uartApplication name填写项目名称nrf\samples\bluetooth\peripheral_uart,然后点击Create Application创建项目。
建好项目后,点击项目的Add Build ConfigurationBoard选择Nordic boards中的nrf7002dk_nrf5340_cpuappConfiguration选择prj.conf,点击Build Configuration确认后进入编译。
在编译过程中,可以在终端查看编译是否有问题。
编译完成后,通过nRF Connect for DesktopProgrammer固件烧录到开发板中
  连接上开发板,在ProgrammerSELECT DEVICE选择开发板进行连接
   
Programmer的点击Add file添加固件,固件在项目文件夹内的build\zephyr下面,选择merged_domains.hex,点击Erase &write进行烧录。
烧录完成后,手机打开nRF Connect,连接开发板的蓝牙Nordic_UART_Service,在电脑端用串口调试工具,就可以通过蓝牙与手机进行发送数据。串口调试工具发送数据时,需要在数据末尾添加回车换行。
四、创建新的板
VS Code点击Create a new board可以创建自己的板,Name输入自己板的名称,SoC选择nrf5340_cpuappVendor name输入厂商名称,Board root folder输入板的存放目录,点击Create Board创建新的板。
由于板的文件比较多,要自己去完善,需要发不少功夫。我们可以直接把开发板的文件直接复制过来再修改,这样会比较快。在SDK目录v2.4.1\nrf\boards\arm\nrf7002dk_nrf5340下的文件,除了名称带有cpuapp_nscpunet外的文件,复制到刚才创建的boardboards\arm\myboard文件下下。
nrf7002dk_nrf5340_cpuapp.dts的名称改为myboard.dts,把nrf7002dk_nrf5340_cpuapp.yaml的名称改为myboard.yaml,把nrf7002dk_nrf5340_cpuapp_defconfig的名称改为myboard_defconfig
        
KconfigKconfig.boardKconfig.defconfig这三个文件中的BOARD_NRF7002DK_NRF5340_CPUAPP改为BOARD_MYBOARD
myboard.dts中的model和由"Nordic NRF7002 DK NRF5340 Application"改为"Myboard"compatible"nordic,nrf7002-dk-nrf5340-cpuapp"改为"vendor-name,myboard"
CMakeLists.txtboard.cmakenrf7002dk_nrf5340_cpuapp_defconfig这三个文件中CONFIG_BOARD_NRF7002DK_NRF5340_CPUAPP改为CONFIG_BOARD_MYBOARD
在nrf5340_cpuapp_common.dts文件中,可以修改MCU的外围。比如,我把2LED灯改为1个,另外一个用作PWM输出,把原来的led0的代码注释掉,把led1的信息改为led0的信息。
到此,就建好自己的板了。
五、BLE调光灯
在开发板上有2LED灯,LED2在蓝牙未连接时进行闪烁,当蓝牙连接后,LED2常亮;LED1PWM控制,可以进行远程开关和调光。同时板上有2个按键,按键1作为LED1的开关灯按键,按键2作为LED1的亮度调节按键。
软件功能需要创建2个服务,一个服务用于LED的亮度调节,1%-100%0x01-0x64)的亮度,另外一个服务用于LED1的开关(0x00:关灯,0x01:开灯),当数据大于1个字节时,数据直接从串口输出,从窗口输入的数据,也会从这个服务发送出去。这2个服务的UUID是直接在网上自动生成的。
按上面自己创建的板,用nrf\samples\bluetooth\peripheral_uart为模版创建项目
   
在项目目录的src下创建lamp.clamp.h文件
cmakelists.txt文件中,添加刚建的lamp.c文件
   
prj.comf文件中的设备名称改为Dimming Lamp,把设备外观改为通用灯具14080x0580)。同时在该文件中添加CONFIG_PWM=y,使能PWM功能。在该文件中删除CONFIG_BT_NUS=y
   
修改完以上内容后,就可以进行main.clamp.clamp.h这三个文件的编写了。这里就不具体介绍,附上这3个文件的源代码,详见附件代码。
同时附上该项目的视频运行情况:详见附件视频。
六、总结
从拿到开发板到调完调光灯,碰到了一些麻烦,一个是SDK的下载需要用到梯子,不然根本就下载不全,这方面我觉的原厂还是需要做下改善;另外一个就是创建自己的板,需要用到DeviceTree去管理配置,而本人于对DeviceTree没有研究,所以就把例程上的文件拷贝过来稍作调整。
nRF5340出来包含nRF52系列功能的超级集,在性能方面和安全性方面又都做了提升,同时将电流消耗降至最低,可以满足更多的应用场景需求;此外,在国内的智能应用中,一直偏向于Wi-FiBluetooth LENordic之前一直缺少Wi-Fi的产品,这两年终于推出了Wi-Fi的产品,可以提供无缝Wi-Fi连接和基于Wi-Fi的定位(本地Wi-Fi集线器的SSID嗅探)功能,可轻易集成到广泛的应用中。
nRF Connect SDK提供了全面统一开发平台,包括一套工具和软件库,集成了 Zephyr RTOS 和各种示例、应用程序协议、协议栈、库和硬件驱动程序,使开发人员能够快速、轻易地将无线连接功能添加到产品中。

代码: 代码.rar (5.87 KB)
视频:https://player.youku.com/embed/XNjA0OTkzNTM5Mg==


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

66

帖子

0

粉丝