chore(vd960DBN): 固件版本 1.02.03 → 1.02.04 (SPI 存储适配)

内容: SPI Flash 识别去厂商代码 + 恢复 factory 配置写入 (板级验证通过)。
README/CHANGELOG/devlog 同步; 手册/规格书配套版本更新 (文档保持 V1.02, 同日补充不升版)
This commit is contained in:
wangfq
2026-08-19 15:23:35 +08:00
parent 881a774c0c
commit f231295790
6 changed files with 53 additions and 13 deletions
+22
View File
@@ -5,6 +5,28 @@
--- ---
## vd960DBN V1.02.04 — 2026-08-19DBN 通信板单侧更新)
> 本次为 **vd960DBN 单侧发布**(Loop 固件未变,协议未变更,可正常配套)。
**配套版本矩阵**
| 组件 | 版本 |
|------|------|
| vd960DBN 固件 (CH32V208, DLD960GA) | **1.02.04** |
| vd960Loop 固件 (AT32F421) | 1.0(不变) |
| DLD960Loop 串口协议(0x7F / 0x9F OTA | V1.05(不变) |
| DLD960 TCP JSON 协议(:5960 | V1.03(不变) |
| DLD960 IoT MQTT 协议 | V1.07(不变) |
| DLD960 BLE 协议 | V1.02(不变) |
### 🔧 SPI Flash 存储适配修复
- **识别去厂商代码**`W25Qxx` 宏去 `0XEF` 前缀、`SPI_Flash_ReadJEDEC_ID()` 删厂商校验、`storage_init` 低字节匹配——兼容其他厂家同容量型号(如 0x1A 厂商)
- **恢复 factory 配置写入**:解除 2026-08-13 止血(根因 8-17 已闭环),换新空片(W25Q128)后不再每次上电进出厂初始化,配置读写恢复正常
- **板级验证通过**2026-08-19):W25Q128 配置读写正常
---
## vd960DBN V1.02.03 — 2026-08-19DBN 通信板单侧更新) ## vd960DBN V1.02.03 — 2026-08-19DBN 通信板单侧更新)
> 本次为 **vd960DBN 单侧发布**(Loop 固件未变,协议未变更,可正常配套)。 > 本次为 **vd960DBN 单侧发布**(Loop 固件未变,协议未变更,可正常配套)。
+2 -2
View File
@@ -1,6 +1,6 @@
# vd_960 — DLD960 四通道车辆检测器(双 MCU 架构) # vd_960 — DLD960 四通道车辆检测器(双 MCU 架构)
> 当前发布:**vd960DBN V1.02.03**2026-08-19DBN 单侧更新)· 完整版本见 [CHANGELOG.md](CHANGELOG.md) > 当前发布:**vd960DBN V1.02.04**2026-08-19DBN 单侧更新)· 完整版本见 [CHANGELOG.md](CHANGELOG.md)
## 产品概述 ## 产品概述
@@ -41,7 +41,7 @@ DLD960 是一款基于环形线圈检测原理的四通道车辆检测器,支
| 子项目 | 目录 | MCU | 固件版本 | 功能 | | 子项目 | 目录 | MCU | 固件版本 | 功能 |
|--------|------|-----|---------|------| |--------|------|-----|---------|------|
| vd960Loop | `vd960Loop/` | AT32F421 | 1.0 | 线圈驱动、频率采样、车辆检测算法、0x7F 串口上报 | | vd960Loop | `vd960Loop/` | AT32F421 | 1.0 | 线圈驱动、频率采样、车辆检测算法、0x7F 串口上报 |
| vd960DBN | `vd960DBN/` | CH32V208 | 1.02.03 | 蓝牙管理、TCP/IPWCHNET)、MQTT、串口桥接、4G 扩展(RFU) | | vd960DBN | `vd960DBN/` | CH32V208 | 1.02.04 | 蓝牙管理、TCP/IPWCHNET)、MQTT、串口桥接、4G 扩展(RFU) |
> ⚠ 发布约束:自协议 V1.05 起(variation 2B无符号 → 3B有符号),**Loop 固件与 DBN 固件必须同版本配套发布**,禁止混刷。 > ⚠ 发布约束:自协议 V1.05 起(variation 2B无符号 → 3B有符号),**Loop 固件与 DBN 固件必须同版本配套发布**,禁止混刷。
+4 -3
View File
@@ -1,7 +1,7 @@
# DLD960 四通道车辆检测器 产品手册 # DLD960 四通道车辆检测器 产品手册
> Product Manual · 产品型号:**DLD960GA** > Product Manual · 产品型号:**DLD960GA**
> 文档版本 V1.02 · 2026-08-19 · 适用固件:整机 V1.02.03Loop 1.0 + DBN 1.02.03 > 文档版本 V1.02 · 2026-08-19 · 适用固件:整机 V1.02.04Loop 1.0 + DBN 1.02.04
--- ---
@@ -132,7 +132,7 @@ DLD960 是一款四通道环形线圈车辆检测器,一台设备即可覆盖
| 通信 MCU | 蓝牙 OTA | 小程序选择固件直接升级 | | 通信 MCU | 蓝牙 OTA | 小程序选择固件直接升级 |
| 检测 MCU | ISP 透传 | 小程序经蓝牙→通信 MCU 串口透传升级 | | 检测 MCU | ISP 透传 | 小程序经蓝牙→通信 MCU 串口透传升级 |
> ⚠ **双 MCU 固件必须使用同一发布包配套升级**(V1.0.0 起为强制要求),只升级一侧会导致内部通信数据错位。当前配套:Loop 1.0 + DBN 1.02.03 > ⚠ **双 MCU 固件必须使用同一发布包配套升级**(V1.0.0 起为强制要求),只升级一侧会导致内部通信数据错位。当前配套:Loop 1.0 + DBN 1.02.04
> >
> ⚠ **检测 MCU 升级完成后,若小程序无响应,请将设备断电重启**(DBN OTA 透传模式需重启恢复,V1.02.03 已知约束)。 > ⚠ **检测 MCU 升级完成后,若小程序无响应,请将设备断电重启**(DBN OTA 透传模式需重启恢复,V1.02.03 已知约束)。
@@ -148,6 +148,7 @@ DLD960 是一款四通道环形线圈车辆检测器,一台设备即可覆盖
| 继电器输出正常但平台无数据 | 网络配置错误;MQTT Topic/序列码不符 | 查 IP/Broker 配置;核对 dev_serial 与 Topic | | 继电器输出正常但平台无数据 | 网络配置错误;MQTT Topic/序列码不符 | 查 IP/Broker 配置;核对 dev_serial 与 Topic |
| 设备频繁自动重启 / 偶发数据丢失 | 通信 MCU 旧固件资源不足(V1.02.01 已修复) | 升级整机固件至 V1.02.01 及以上版本 | | 设备频繁自动重启 / 偶发数据丢失 | 通信 MCU 旧固件资源不足(V1.02.01 已修复) | 升级整机固件至 V1.02.01 及以上版本 |
| BLE OTA 升级失败/进度卡住 | 通信 MCU 旧固件 0x9F 透传缺陷(V1.02.03 已修复) | 升级整机固件至 V1.02.03 及以上版本 | | BLE OTA 升级失败/进度卡住 | 通信 MCU 旧固件 0x9F 透传缺陷(V1.02.03 已修复) | 升级整机固件至 V1.02.03 及以上版本 |
| 配置无法保存/每次上电恢复出厂 | 旧固件 factory 写入被禁用;换新存储芯片后参数区无出厂配置(V1.02.04 已修复) | 升级整机固件至 V1.02.04 及以上版本 |
| 事件重复上报 | 平台未按协议应答 event_report | 平台须回显 msg_id 应答(先落库后应答) | | 事件重复上报 | 平台未按协议应答 event_report | 平台须回显 msg_id 应答(先落库后应答) |
| 线圈断开告警 | 线圈开路/引线断裂 | 万用表量线圈回路电阻(正常几欧姆以内) | | 线圈断开告警 | 线圈开路/引线断裂 | 万用表量线圈回路电阻(正常几欧姆以内) |
@@ -177,6 +178,6 @@ DLD960 是一款四通道环形线圈车辆检测器,一台设备即可覆盖
| 版本 | 修订时间 | 修订说明 | 修订人 | | 版本 | 修订时间 | 修订说明 | 修订人 |
|------|----------|----------|--------| |------|----------|----------|--------|
| V1.02 | 2026-08-19 | 配套整机发布 V1.02.03BLE OTA 升级链路加固说明(检测 MCU 0x9F 响应帧透传回小程序,停等 ACK 完整);故障排查新增 OTA 失败条目;固件升级章节补断电重启提示 | wangfq | | V1.02 | 2026-08-19 | 配套整机发布 V1.02.03→V1.02.04:BLE OTA 升级链路加固说明(0x9F 响应帧透传,停等 ACK 完整);故障排查新增 OTA 失败 + 配置无法保存条目;固件升级补断电重启提示;存储兼容适配(去厂商代码 + 恢复 factory 写入) | wangfq |
| V1.01 | 2026-08-18 | 配套整机发布 V1.02.01:通信稳定性修复说明(UART2 DMA 防丢帧、异常重启修复);新增 BLE 脱机日志/传感快照读写说明(§5.1) | wangfq | | V1.01 | 2026-08-18 | 配套整机发布 V1.02.01:通信稳定性修复说明(UART2 DMA 防丢帧、异常重启修复);新增 BLE 脱机日志/传感快照读写说明(§5.1) | wangfq |
| V1.00 | 2026-07-16 | 初始版本,配套整机发布 V1.0.0 | wangfq | | V1.00 | 2026-07-16 | 初始版本,配套整机发布 V1.0.0 | wangfq |
+6 -6
View File
@@ -1,7 +1,7 @@
# DLD960 四通道车辆检测器 技术规格书 # DLD960 四通道车辆检测器 技术规格书
> Technical Specification · 产品型号:**DLD960GA** > Technical Specification · 产品型号:**DLD960GA**
> 文档版本 V1.02 · 2026-08-19 · 配套整机发布 V1.02.03 > 文档版本 V1.02 · 2026-08-19 · 配套整机发布 V1.02.04
--- ---
@@ -100,7 +100,7 @@ DLD960 是一款基于环形线圈(LC 振荡)检测原理的四通道车辆
| 外部存储 | SPI NOR Flash | 参数存储 + 日志存储 | | 外部存储 | SPI NOR Flash | 参数存储 + 日志存储 |
| 按键 | K1 多功能按键 | 复位等 | | 按键 | K1 多功能按键 | 复位等 |
### 5.1 协议矩阵(V1.02.03 配套) ### 5.1 协议矩阵(V1.02.04 配套)
| 协议 | 版本 | 通道 | 要点 | | 协议 | 版本 | 通道 | 要点 |
|------|------|------|------| |------|------|------|------|
@@ -166,14 +166,14 @@ DLD960 是一款基于环形线圈(LC 振荡)检测原理的四通道车辆
> ⚠ **自内部协议 V1.05 起,vd960Loop 与 vd960DBN 固件必须同版本配套刷写**variation 字段 2B→3B 帧格式变更,混刷导致数据静默错位)。 > ⚠ **自内部协议 V1.05 起,vd960Loop 与 vd960DBN 固件必须同版本配套刷写**variation 字段 2B→3B 帧格式变更,混刷导致数据静默错位)。
| 组件 | V1.02.03 配套版本 | | 组件 | V1.02.04 配套版本 |
|------|-------------------| |------|-------------------|
| vd960Loop 固件 | 1.0(不变) | | vd960Loop 固件 | 1.0(不变) |
| vd960DBN 固件 | 1.02.03 | | vd960DBN 固件 | 1.02.04 |
### 10.1 已知约束(V1.02.01 ### 10.1 已知约束(V1.02.01
- 固件版本三段式:`FIRMWARE_VER="1.02.03"`MAIN=1 / SUB=2 / SUBSUB=3);BLE 上报仅 MAIN/SUB 两字节(1.02),SUBSUB 只体现在字符串上报(MQTT/TCP JSON)。 - 固件版本三段式:`FIRMWARE_VER="1.02.04"`MAIN=1 / SUB=2 / SUBSUB=4);BLE 上报仅 MAIN/SUB 两字节(1.02),SUBSUB 只体现在字符串上报(MQTT/TCP JSON)。
- 设备无 RTC,时钟同步依赖平台下发(校准前 ts 为上电秒数)。 - 设备无 RTC,时钟同步依赖平台下发(校准前 ts 为上电秒数)。
- CH32V208 RAM 预算:BLE 协议栈固定占用低 16KB(不可裁剪),用户可用 48KB;固件经 RAM 瘦身优化,栈余量约 6KB,现场升级务必使用 V1.02.01 及以上版本。 - CH32V208 RAM 预算:BLE 协议栈固定占用低 16KB(不可裁剪),用户可用 48KB;固件经 RAM 瘦身优化,栈余量约 6KB,现场升级务必使用 V1.02.01 及以上版本。
- 传感快照区延后 3s 初始化(开机 3s 内传感数据不落盘,设计接受)。 - 传感快照区延后 3s 初始化(开机 3s 内传感数据不落盘,设计接受)。
@@ -186,6 +186,6 @@ DLD960 是一款基于环形线圈(LC 振荡)检测原理的四通道车辆
| 版本 | 修订时间 | 修订说明 | 修订人 | | 版本 | 修订时间 | 修订说明 | 修订人 |
|------|----------|----------|--------| |------|----------|----------|--------|
| V1.02 | 2026-08-19 | 配套整机发布 V1.02.03UART2 RX 0x9F OTA 透传机制说明(§2/§5/§7)、协议矩阵与版本配套矩阵更新、已知约束补充 OTA 无自动退出 | wangfq | | V1.02 | 2026-08-19 | 配套整机发布 V1.02.03→V1.02.04UART2 RX 0x9F OTA 透传机制说明(§2/§5/§7)、协议矩阵与版本配套矩阵更新、已知约束补充 OTA 无自动退出;存储适配(SPI 识别去厂商代码 + factory 写入恢复) | wangfq |
| V1.01 | 2026-08-18 | 配套整机发布 V1.02.01:版本矩阵更新、UART2 RX DMA 通信可靠性说明、已知约束补充 | wangfq | | V1.01 | 2026-08-18 | 配套整机发布 V1.02.01:版本矩阵更新、UART2 RX DMA 通信可靠性说明、已知约束补充 | wangfq |
| V1.00 | 2026-07-16 | 初始版本,配套整机发布 V1.0.0 | wangfq | | V1.00 | 2026-07-16 | 初始版本,配套整机发布 V1.0.0 | wangfq |
@@ -11,11 +11,11 @@
#include <stdint.h> #include <stdint.h>
#define PRODUCT_MODEL "DLD960GA" #define PRODUCT_MODEL "DLD960GA"
#define FIRMWARE_VER "1.02.03" #define FIRMWARE_VER "1.02.04"
#define HARDWARE_VER "1.0" #define HARDWARE_VER "1.0"
#define FIRMWARE_VER_MAIN 1 #define FIRMWARE_VER_MAIN 1
#define FIRMWARE_VER_SUB 2 #define FIRMWARE_VER_SUB 2
#define FIRMWARE_VER_SUBSUB 3 #define FIRMWARE_VER_SUBSUB 4
#define HARDWARE_VER_MAIN 1 #define HARDWARE_VER_MAIN 1
#define HARDWARE_VER_SUB 1 #define HARDWARE_VER_SUB 1
+17
View File
@@ -4,6 +4,22 @@
> >
> 项目定位: DLD960 通信板 — BLE 配网、TCP JSON 协议服务、Loop MCU 串口桥接 > 项目定位: DLD960 通信板 — BLE 配网、TCP JSON 协议服务、Loop MCU 串口桥接
## 2026-08-19 — 固件版本 V1.02.04SPI 存储适配两项修复)
### 内容
| 项 | 说明 |
|------|------|
| SPI Flash 识别去厂商代码 | `W25Qxx` 宏去 `0XEF` 前缀、`SPI_Flash_ReadJEDEC_ID()` 删厂商校验、`storage_init` 低字节匹配(f1d9ac4 |
| 恢复 factory 配置写入 | 解除 8-13 止血,空片首启写 magic+默认参数,配置读写恢复正常(8e58d5f + 881a774 |
| 版本号 | `cmcng.h` 三段式一致:FIRMWARE_VER="1.02.04" + MAIN=1/SUB=2/SUBSUB=4 |
**板级验证**:W25Q128 配置读写正常(用户 2026-08-19 确认)。
文档同步:README 当前发布/版本表、CHANGELOG V1.02.04 条目、产品手册/技术规格书配套版本(文档保持 V1.02,同日内补充不升版)。
---
## 2026-08-19 — 恢复 factory 配置写入(换新空片后"老是进入出厂初始化配置") ## 2026-08-19 — 恢复 factory 配置写入(换新空片后"老是进入出厂初始化配置")
### 背景 ### 背景
@@ -1470,6 +1486,7 @@ TCP 超时要等 ~2 分钟才触发 `SINT_STAT_TIM_OUT`,
| 版本 | 时间 | 说明 | | 版本 | 时间 | 说明 |
|------|------|------| |------|------|------|
| V4.7 | 2026-08-19 | 固件版本 1.02.03→1.02.04 (SPI 存储适配: 去厂商识别 + 恢复 factory 写入, 板级验证通过) |
| V4.6 | 2026-08-19 | 恢复 factory 配置写入: 解除 8-13 止血, 空片首启写 magic+默认参数 (换 W25Q128 后配置永久丢失修复) | | V4.6 | 2026-08-19 | 恢复 factory 配置写入: 解除 8-13 止血, 空片首启写 magic+默认参数 (换 W25Q128 后配置永久丢失修复) |
| V4.5 | 2026-08-19 | SPI Flash 识别去厂商代码: W25Qxx 宏去 0XEF 前缀, ReadJEDEC_ID 删厂商校验, storage_init 低字节匹配 (兼容多厂家) | | V4.5 | 2026-08-19 | SPI Flash 识别去厂商代码: W25Qxx 宏去 0XEF 前缀, ReadJEDEC_ID 删厂商校验, storage_init 低字节匹配 (兼容多厂家) |
| V4.4 | 2026-08-19 | UART2 DMA 下 BLE→Loop OTA 修复: lup_feed_byte_ota 0x9F 帧解析+透传回 BLE (停等 ACK), DMA poll OTA 模式切换/溢出阈值/tick 归零, 单测 8 例 | | V4.4 | 2026-08-19 | UART2 DMA 下 BLE→Loop OTA 修复: lup_feed_byte_ota 0x9F 帧解析+透传回 BLE (停等 ACK), DMA poll OTA 模式切换/溢出阈值/tick 归零, 单测 8 例 |