README.md 3.1 KB

蓝牙控制器固件

目前在 qume 下运行此协议栈需要搭配蓝牙 Controller 芯片,以下固件都是在 Zephyr 环境下编译 hci 相关例程生成的,经实际使用测试,工作稳定。

参考:hci-uarthci-usb

hci_uart_nrf52840dk.hex

nrf52840dk

该固件使用的是 nrf52840dk 开发板,HCI 传输层为 H4 协议,波特率 115200,使用硬件控制流 CTS/RTS。

Windows 平台下载该固件比较简单,将 nrf52840dk 插入电脑,电脑会自动识别一个 JLINK U 盘,用鼠标将固件拖入该 U 盘即可。

JLINK U 盘

Linux 平台下载该固件较为麻烦,需要使用工具 J-Link Software and documentation packnRF Command Line Tools

下载固件流程:

  1. 擦除芯片内程序

    nrfjprog --eraseall -f nrf52
    
  2. 写入固件

    nrfjprog --program hci_uart_nrf52840dk.hex -f nrf52
    
  3. 复位并启动

    nrfjprog --reset -f nrf52
    

可参考:nordic-segger

qemu 环境下使用提示

使用 nrf52840dk 开发板 JLink 虚拟串口进行交互,当识别到 JLink 时,虚拟串口也可以被识别。

# 参考以下命令替换原有命令, /dev/ttyACM0 按照被识别的实际串口修改
qemu-system-arm -M vexpress-a9 -smp cpus=2 -kernel rtthread.bin -nographic -sd sd.bin -serial mon:stdio -serial /dev/ttyACM0

hci_usb_nrf52840dongle.hex

nrf52840dongle

该固件使用的是 nrf52840dongle 开发板,HCI 传输层为 USB 协议。

下载该固件需要使用 nRF Util,输入 pip3 install nrfutil 即可安装。

下载固件:

  1. 按下 RESET 按钮进入 bootloader
  2. 利用 nrfutil 打包固件

    nrfutil pkg generate --hw-version 52 --sd-req=0x00 \
        --application hci_usb_nrf52840dongle.hex \
        --application-version 1 hci_usb_nrf52840dongle.zip
    
  3. 写入固件,注意 Linux 环境下使用 /dev/ttyXXX 设备,Windows 使用 COMx,macOS 也类似。

    nrfutil dfu usb-serial -pkg hci_usb_nrf52840dongle.zip -p /dev/ttyACM0
    

可参考:Zephyr-nrf52840dongle

qemu 环境下使用提示

此固件会被识别成 hci 设备, 具体使用可参考 QEMU 运行 BLE