1.qqice/Adafruit_nRF52_Arduino
-
社区维护活跃
-
支持BLE
-
(理论上)支持NFC
-
支持从NRF52833的USB口通过DFU烧入程序
-
需要额外刷入单独的bootloader
-
编写代码时需要打开串口,否则将无法从NRF52833的USB口烧入程序(如果您遇到了这个问题,可以清空flash后再次刷入一次bootloader即可恢复)
-
无需刷入bootloader,开箱即用
-
理论上支持BLE,但需要额外刷入SoftDevice
-
暂不支持从NRF52833的USB口通过DFU烧入程序
-
暂不支持NRF52833的USB串口功能,需要外接USB转TTL工具读取串口
| 功能 | Adafruit_nRF52_Arduino支持状态 | arduino-nRF5支持状态 | 代码示例 |
|---|---|---|---|
| GPIO | ✅ | ✅ | RGB_Blink |
| UART | ✅ | ✅ | SerialPassthrough |
| I2C | ✅ | ✅ | IMU_BasicReadings |
| SPI | ✅(使用外接SPI屏幕测试成功) | ✅(使用外接SPI屏幕测试成功) | 暂无 |
| BLE | ✅(需使用adafruit版本的SDK) | ❓ | 任意一个BLE示例 |
| NFC | ❓(手头没有NFC天线,暂时测不起来) | ❓ | |
| UWB | ✅ | ❓ | 参考“外设支持”中DW3110 |
| 外设 | 协议 | 状态 | 库 | 代码示例 |
|---|---|---|---|---|
| LIS2DH12TR | I2C | ✅ | SparkFun_LIS2DH12_Arduino_Library | IMU_BasicReadings |
| DW3110 | SPI | ✅ | qqice/UWB-DW3000-NRF52 | 见仓库examples |
| 引脚 | 功能 | 备注 |
|---|---|---|
| PIN_BUTTON_BOTTOM | 下面的按钮 | 上面的那个是重置按钮 |
| LED_RED_TOP | 顶部红色LED | 通过LED_BUILTIN调用 |
| LED_RED_BOT | 底部红色LED | |
| LED_GREEN | 绿色LED | |
| LED_BLUE | 蓝色LED | |
| PIN_SERIAL1_RX | 硬件串口RX | 通过Serial1调用 |
| PIN_SERIAL1_TX | 硬件串口TX | 通过Serial1调用 |
| ACC_SDA | 内置加速度计SDA | 通过Wire1调用 |
| ACC_SCL | 内置加速度计SCL | 通过Wire1调用 |
| PIN_ACC_IRQ | 内置加速度计中断 | |
| SDA | 外部I2C SDA | 通过Wire调用 |
| SCL | 外部I2C SCL | 通过Wire调用 |
| SS | 外部SPI 片选 | 通过SPI调用 |
| MOSI | 外部SPI MOSI | 通过SPI调用 |
| MISO | 外部SPI MISO | 通过SPI调用 |
| SCK | 外部SPI SCK | 通过SPI调用 |
| SS1/DW_CS | 内置DW3110(UWB芯片)SPI 片选 | |
| MOSI1/DW_MOSI | 内置DW3110(UWB芯片)SPI MOSI | |
| MISO1/DW_MISO | 内置DW3110(UWB芯片)SPI MISO | |
| SCK1/DW_SCK | 内置DW3110(UWB芯片)SPI SCK | |
| DW_RST | 内置DW3110(UWB芯片)复位 | |
| DW_IRQ | 内置DW3110(UWB芯片)中断 |
安装流程为:
2.1. 打开Arduino IDE
2.2. 从开发板管理器中安装官方的Adafruit_nRF52_Arduino或arduino-nRF5
请观察以下截图,确保下载了正确的SDK!!!
Adafruit_nRF52_Arduino
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
arduino-nRF5
https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json
2.3. 从我的github仓库中下载修改后的Adafruit_nRF52_Arduino或arduino-nRF5
2.4. 将下载的文件解压覆盖到Arduino的对应文件夹中
2.5. 重启Arduino IDE
安装流程为:
3.1. 打开Arduino IDE
3.2. 去上文提及支持的外设库的github仓库中下载zip文件
3.3. 在如图所示的地方添加zip文件
3.4. 重启Arduino IDE
烧录流程为:
1.1. 将DWM3001CDK的JLink口连接到电脑(如图所示)
1.2. 打开JFlashLite
1.3. 选择NRF52833_XXAA,点击OK
1.4. 下载bootloader
1.5. 参照图片中的设置选择刚刚下载的bootloader,点击Program Device
1.6. 等待烧录完成,拔下JLink口,将DWM3001CDK重新通过NRF USB口接入电脑
1.7. Arduino IDE中识别到新的设备,选择Qorvo DWM3001C Module Development Kit
1.8. 大功告成!
Q:参照上述步骤烧录完bootloader后,在Arduino IDE中烧录完一个程序以后就识别不到设备了,怎么办? A:这是因为你烧录的程序没有打开串口。Adafruit_nRF52_Arduino库将nRF的USB口做成了一个额外的串口,通过这个串口,Arduino IDE能够识别设备并将设备置入下载模式并烧录程序。如果你烧入的程序没有打开串口,再次启动时USB口就会封闭,Arduino IDE也将无法识别/下载。解决方法是清空flash,重新烧写bootloader。具体操作为:在烧录bootloader步骤中,执行到1.5时,先点击Erase Chip,然后再次烧录bootloader即可。