DAPLink + OpenOCD 烧录笔记


EPD-nRF5 是一款专为电子墨水屏设计的开源固件,支持通过蓝牙传输图像、设置日历模式(包括农历、节气、节假日及调休显示)等功能。项目配套了一个基于浏览器的网页版上位机,用户可以通过手机或电脑轻松实现图片传输、屏幕控制和个性化设置。

该项目适用于多种主控芯片(如 nRF51822、nRF51802、nRF52811、nRF52810)和墨水屏驱动(如 UC8176、UC8276、SSD1619、SSD1683、JD79668),兼容黑白、三色、四色等多种墨水屏类型。可通过JLink,DAPLink烧写。

以下是上述项目使用 DAPLinkOpenOCD 烧录固件的记录,适用于 nRF51822 或类似目标设备(如墨水屏控制器)。教程以烧录EPD_128K_full.hex 为例。固件可在项目Releases处下载。

1. 准备工作

(1)下载所需工具

  1. OpenOCD

  2. 固件文件

    • 下载地址:EPD-nRF5 Releases
    • 下载适合你设备的固件文件(如 EPD_128K_full.hex)。
  3. DAPLink 调试器

    • 确保你的 DAPLink 调试器已正确安装驱动程序,并能够被系统识别。

2. 硬件连接

根据目标设备的引脚定义,按照以下方式连接 DAPLink 和目标设备:

DAPLink 引脚目标设备引脚
SWCLKCLK
SWDIODIO
GNDGND
VCC (3.3V)VCC

注意

  • 驱动板上的方形孔为 1 脚(Pin 1)。
  • 如果有其他引脚(如 TXD),不需要连接。
  • 确保目标设备已正确供电(可以通过 DAPLink 提供 3.3V 电源,或使用外部电源)。

3. 配置 OpenOCD

(1)检查 OpenOCD 的默认路径

OpenOCD 的配置文件通常位于安装目录下的 scripts 文件夹中。

确保该目录包含以下文件:

  • interface/cmsis-dap.cfg(调试接口配置文件)
  • target/nrf51.cfg(目标设备配置文件)

如果这些文件不存在,请重新安装 OpenOCD。


4. 烧录固件

(1)擦除芯片

运行以下命令擦除目标设备的 Flash:

openocd -f interface/cmsis-dap.cfg -f target/nrf51.cfg -c "init" -c "reset halt" -c "nrf51 mass_erase" -c "exit"

说明

  • nrf51 mass_erase 命令会擦除整个芯片的 Flash 和设置。
  • 如果目标设备被保护或锁定,此命令可能会失败。

(2)烧录 .hex 文件

运行以下命令烧录 EPD_128K_full.hex 文件:

openocd -f interface/cmsis-dap.cfg -f target/nrf51.cfg -c "init" -c "reset halt" -c "program C:/path/to/EPD_128K_full.hex verify reset exit"

说明

  • program 命令用于烧录固件。
  • verify 参数会在烧录完成后验证数据是否正确写入。
  • reset 参数会在烧录完成后重启目标设备。
  • exit 参数会在操作完成后退出 OpenOCD。

(3)日志输出示例

如果一切正常,你会看到类似以下日志:

Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWD DPIDR 0x0bb11477
Info : [nrf51.cpu] Cortex-M0 r0p0 processor detected
Info : [nrf51.cpu] Examination succeed
Info : Programming Finished
Info : Verify OK
Info : Resetting Target

5. 验证刷机结果

(1)检查屏幕显示

  • 刷机完成后,注意:墨水屏不会有任何变化,请打开蓝牙上位机查看,通常可检索到新设备类似NRF_EPD_XXXX

(2)蓝牙连接测试

  1. 打开支持蓝牙的设备(电脑或手机)。

  2. 在浏览器中打开以下链接:

    https://tsl0922.github.io/EPD-nRF5/
    
  3. 按照页面说明连接到墨水屏设备,测试传图、设置日历模式等功能。


6. 唤醒设备

如果设备进入低功耗模式,可以通过以下方法唤醒:

(1)NFC 唤醒

  • 手机开启 NFC 功能,并保持在扫描界面。
  • 将手机靠近墨水屏设备的 NFC 区域。
  • 唤醒成功后:
    • 三色版本:LED 灯会闪一下。
    • 双色版本:没有 LED 灯,只能通过蓝牙确认是否唤醒成功(蓝牙名称格式为 NRF_EPD_XXXX)。

(2)蓝牙唤醒

  • 打开手机或电脑的蓝牙功能,搜索设备名称(如 NRF_EPD_XXXX)。
  • 连接成功即可唤醒设备。

7. 常见问题及解决方法

无法找到 .cfg 文件

  • 确保 OpenOCD 的 scripts 文件夹路径正确。

  • 使用绝对路径指定 .cfg 文件。例如:

  openocd -f "path/to/scripts/interface/cmsis-dap.cfg" -f "path/to/scripts/target/nrf51.cfg" -c "init" -c "reset halt"

Comments

Leave a comment