release(golden): 托底线整体替换为生产实装版原样复制(v26.1.0.3)并重编 B 槽固件

- 生产仓库(GitLab ceramixnano_eddy_cmake_vscode dev@151828f,已在机器上实装)原样复制 8 文件:Src/command.c、i2c.c、ldc1612.c、tmp112.c;Inc/command.h、i2c.h、ldc1612.h;CommunicationProtocol.md(copy 后 fc 逐字节核验一致)
- 保留 B 槽专属构建(LD 0x0800B000/0x4BF8、VTOR 0xB000、gap-fill 0xFF、BUILD_VARIANT=golden),仅 VERSION_PATCH 2→3 对齐生产
- 与 dev 线从此的功能差异属预期(勿"修复"):LDC1612 驱动电流 GEN(8)(生产 2026-03-23 调参,dev 线仍 GEN(18))、命令集 M1~M4+M999/M9999(无 M5/M6)、M4 无符号温度算法、旧 8 位寄存器地址 i2c 驱动(配套 tmp112/ldc1612 整组生效);IIC 新驱动留待后续 A 线版本
- 保底判定值 v26.1.0.2 → v26.1.0.3;两个版本号均永不再用于 OTA 升级包;dev 线后续 A 版本必须 > V1.0.3(当前 dev 同为 V1.0.3,正式发布前须升版)
- 重编译:text+data = 12,036B;向量表校验通过(复位向量 0x0800CC2C 落 B 槽)
- FACTORY 工厂镜像(BL EDDY V0.1.0 + B 满槽 + flag,A 擦除态)已打包:Build\golden\CeramixNano-EDDY_FACTORY_B-V1.0.3_2026-10-25.bin,12 项字节校验全过
This commit is contained in:
2026-10-25 13:13:41 +08:00
parent 722b02e755
commit c7433a8df7
11 changed files with 321 additions and 560 deletions
+9 -21
View File
@@ -148,17 +148,11 @@ ldc1612_status_t ldc1612_init(void) {
*/
ldc1612_status_t ldc1612_config_single_channel(uint8_t channel) {
i2c_result_t status;
uint16_t freq_divider;
if (channel > 1) {
return LDC1612_STATUS_INVALID_PARAM;
}
freq_divider = ldc1612_calculate_freq_divider(channel);
if (freq_divider == 0) {
return LDC1612_STATUS_INVALID_PARAM;
}
/* 配置顺序严格按照TI官方文档要求 */
/* Step 1: 确保传感器处于睡眠模式 - 配置前必须 */
@@ -167,34 +161,28 @@ ldc1612_status_t ldc1612_config_single_channel(uint8_t channel) {
delay_ms(10);
/* Step 2: 配置频率分频 - 必须在其他配置之前 */
status = ldc1612_write_register(SET_FREQ_REG_START + channel, freq_divider);
if (status != I2C_RESULT_SUCCESS) return LDC1612_STATUS_ERROR;
uint16_t freq_divider = ldc1612_calculate_freq_divider(channel);
ldc1612_write_register(SET_FREQ_REG_START + channel, freq_divider);
delay_ms(5);
/* Step 3: 配置LC稳定时间 - 影响测量精度 */
status = ldc1612_write_register(SET_SETTLECOUNT_REG_START + channel, LDC1612_SETTLECOUNT_CH0);
if (status != I2C_RESULT_SUCCESS) return LDC1612_STATUS_ERROR;
ldc1612_write_register(SET_SETTLECOUNT_REG_START + channel, LDC1612_SETTLECOUNT_CH0);
/* Step 4: 配置转换时间 - 影响测量速度和精度 */
status = ldc1612_write_register(SET_CONVERSION_TIME_REG_START + channel, LDC1612_RCOUNT_TIME_CH0);
if (status != I2C_RESULT_SUCCESS) return LDC1612_STATUS_ERROR;
ldc1612_write_register(SET_CONVERSION_TIME_REG_START + channel, LDC1612_RCOUNT_TIME_CH0);
/* Step 5: 配置转换偏移 */
status = ldc1612_write_register(SET_CONVERSION_OFFSET_REG_START + channel, SET_CONVERSION_OFFSET_CH0);
if (status != I2C_RESULT_SUCCESS) return LDC1612_STATUS_ERROR;
ldc1612_write_register(SET_CONVERSION_OFFSET_REG_START + channel, SET_CONVERSION_OFFSET_CH0);
/* Step 6: 配置驱动电流 - 影响传感器灵敏度 */
status = ldc1612_write_register(SET_DRIVER_CURRENT_REG + channel, LDC1612_DRIVE_CURRENT);
if (status != I2C_RESULT_SUCCESS) return LDC1612_STATUS_ERROR;
ldc1612_write_register(SET_DRIVER_CURRENT_REG + channel, LDC1612_DRIVE_CURRENT);
/* Step 7: 配置多路复用器 - 设置通道选择和滤波 */
// ldc1612_configure_mux_register(LDC1612_MUX_AUTOSCAN_DISABLE, LDC1612_MUX_RR_SEQUENCE_0, LDC1612_MUX_FILTER_ALL_LOW, LDC1612_MUX_FILTER_NONE);
status = ldc1612_write_register(MUX_CONFIG_REG, LDC1612_MUX_CONFIG);
if (status != I2C_RESULT_SUCCESS) return LDC1612_STATUS_ERROR;
ldc1612_write_register(MUX_CONFIG_REG, LDC1612_MUX_CONFIG);
/* Step 8: 配置错误输出 */
status = ldc1612_write_register(ERROR_CONFIG_REG, LDC1612_ERROR_CONFIG_DEFAULT);
if (status != I2C_RESULT_SUCCESS) return LDC1612_STATUS_ERROR;
ldc1612_write_register(ERROR_CONFIG_REG, LDC1612_ERROR_CONFIG_DEFAULT);
/* Step 9: 最后启动传感器 - 必须最后一步 */
status = ldc1612_write_register(SENSOR_CONFIG_REG, LDC1612_SENSOR_CONFIG_CH0);
@@ -344,4 +332,4 @@ uint16_t ldc1612_check_status_and_log_errors(void) {
// 读取STATUS寄存器会自动清除错误标志,但不会清除DRDY和UNREADCONV标志
return status;
}
}