a736015 发表于 2023-9-25 08:24

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

本帖最后由 a736015 于 2023-9-26 09:47 编辑

一、开发板开箱照片
开发板的全家福如下图照片。里面有一块nRF7002 DK的开发板(用防静电袋包装)、一份纸质说明、还有一个NFC的线圈。需要自备数据线。二、开发环境搭建
首先按官网(链接: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 Desktop和Toolchain 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的例程在nrf和zephyr文件夹内都有一个samples的文件夹,这两个文件夹内都有很多的例程。本次以nrf\samples\bluetooth\peripheral_uart的历程为例,打开后编译测试,可以测试安装的工具及SDK是否正常。打开VS Code软件,切换到nRF Connect一栏,点击Create a new application,Application type选择Freestanding,Application location选择新建项目的存储地址,Application template选择nrf\samples\bluetooth\peripheral_uart,Application name填写项目名称nrf\samples\bluetooth\peripheral_uart,然后点击Create Application创建项目。建好项目后,点击项目的Add Build Configuration,Board选择Nordic boards中的nrf7002dk_nrf5340_cpuapp,Configuration选择prj.conf,点击Build Configuration确认后进入编译。在编译过程中,可以在终端查看编译是否有问题。编译完成后,通过nRF Connect for Desktop的Programmer固件烧录到开发板中连接上开发板,在Programmer的SELECT 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_cpuapp,Vendor name输入厂商名称,Board root folder输入板的存放目录,点击Create Board创建新的板。由于板的文件比较多,要自己去完善,需要发不少功夫。我们可以直接把开发板的文件直接复制过来再修改,这样会比较快。在SDK目录v2.4.1\nrf\boards\arm\nrf7002dk_nrf5340下的文件,除了名称带有cpuapp_ns、cpunet外的文件,复制到刚才创建的board的boards\arm\myboard文件下下。把nrf7002dk_nrf5340_cpuapp.dts的名称改为myboard.dts,把nrf7002dk_nrf5340_cpuapp.yaml的名称改为myboard.yaml,把nrf7002dk_nrf5340_cpuapp_defconfig的名称改为myboard_defconfig      Kconfig、Kconfig.board、Kconfig.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.txt、board.cmake、nrf7002dk_nrf5340_cpuapp_defconfig这三个文件中的CONFIG_BOARD_NRF7002DK_NRF5340_CPUAPP改为CONFIG_BOARD_MYBOARD 在nrf5340_cpuapp_common.dts文件中,可以修改MCU的外围。比如,我把2个LED灯改为1个,另外一个用作PWM输出,把原来的led0的代码注释掉,把led1的信息改为led0的信息。到此,就建好自己的板了。五、BLE调光灯在开发板上有2个LED灯,LED2在蓝牙未连接时进行闪烁,当蓝牙连接后,LED2常亮;LED1用PWM控制,可以进行远程开关和调光。同时板上有2个按键,按键1作为LED1的开关灯按键,按键2作为LED1的亮度调节按键。软件功能需要创建2个服务,一个服务用于LED的亮度调节,1%-100%(0x01-0x64)的亮度,另外一个服务用于LED1的开关(0x00:关灯,0x01:开灯),当数据大于1个字节时,数据直接从串口输出,从窗口输入的数据,也会从这个服务发送出去。这2个服务的UUID是直接在网上自动生成的。按上面自己创建的板,用nrf\samples\bluetooth\peripheral_uart为模版创建项目    在项目目录的src下创建lamp.c和lamp.h文件在cmakelists.txt文件中,添加刚建的lamp.c文件    把prj.comf文件中的设备名称改为Dimming Lamp,把设备外观改为通用灯具1408(0x0580)。同时在该文件中添加CONFIG_PWM=y,使能PWM功能。在该文件中删除CONFIG_BT_NUS=y。    修改完以上内容后,就可以进行main.c、lamp.c和lamp.h这三个文件的编写了。这里就不具体介绍,附上这3个文件的源代码,详见附件代码。同时附上该项目的视频运行情况:详见附件视频。六、总结从拿到开发板到调完调光灯,碰到了一些麻烦,一个是SDK的下载需要用到梯子,不然根本就下载不全,这方面我觉的原厂还是需要做下改善;另外一个就是创建自己的板,需要用到DeviceTree去管理配置,而本人于对DeviceTree没有研究,所以就把例程上的文件拷贝过来稍作调整。nRF5340出来包含nRF52系列功能的超级集,在性能方面和安全性方面又都做了提升,同时将电流消耗降至最低,可以满足更多的应用场景需求;此外,在国内的智能应用中,一直偏向于Wi-Fi和Bluetooth LE,Nordic之前一直缺少Wi-Fi的产品,这两年终于推出了Wi-Fi的产品,可以提供无缝Wi-Fi连接和基于Wi-Fi的定位(本地Wi-Fi集线器的SSID嗅探)功能,可轻易集成到广泛的应用中。nRF Connect SDK提供了全面统一开发平台,包括一套工具和软件库,集成了 Zephyr RTOS 和各种示例、应用程序协议、协议栈、库和硬件驱动程序,使开发人员能够快速、轻易地将无线连接功能添加到产品中。
代码:
视频:https://player.youku.com/embed/XNjA0OTkzNTM5Mg==


页: [1]
查看完整版本: Nordic nRF7002开发板试用体验---从开发环境的搭建到蓝牙调光灯的调试