工具/软件:
大家好:
我正在尝试将补丁下载到 TPS25762-Q1、但似乎没有完成。
正在通过 I2C2发送补丁。
一个初始问题是、修补程序数据应该以256个字节的块发出。 我假设是 patch_size/256 +1个块、每个块从地址和数据寄存器开始。 当补丁未进行256字节对齐(就像我的情况一样)时会发生什么情况? 只发送剩余的数据或填充256字节中的其余部分?
一切都进展顺利、直到告知补丁完成。 发出 PBMC 后、CMD2和 DATA2寄存器的读数均为零、但 MODE 寄存器会保持在 PTCH 中、直到5秒超时到期(然后恢复为 APP)。 直到在5秒超时之后、IRQ 才会置为无效。
下面是流程和结果:
读取 INT_EVENT2、直到它不为零 (不是 INT_EVENT1、因为我们使用 I2C2)
结果: 0x0B
读取模式、直至其为"PTCH"
结果:0x04 0x50 0x54 0x43 0x48 (PTCH)
配置补丁:
写入 DATA2: (补丁大小为15744/0x3D80)补丁地址为0x35
0x23 (地址)
0x11 (DATA2寄存器)
0x06 (长度)
0x80 (补丁 LSB)
0x3D (补丁 MSB)
0x00 (补丁上部 LSB)
0x00 (补丁上部 MSB)
0x35 (补丁地址)
0x32 (补丁超时- 5秒)
将 PBM 写入 CMD2
0x23 (地址)
0x10 (CMD2寄存器)
0x04 (命令长度)
0x50 (P)
0x42 (B)
0x4D (M)
0x73 (s)
读取 CMD2:
等待字节1为零且字节1-4不是"!CMD"
结果:0x04 0x00 0x00 0x00 0x00 0x00 0x00
读取 DATA2:
等待字节1为零
结果:0x40 0x00 0x00 0x00……
以256字节的块写出补丁:
循环:
0x35 (补丁地址)
0x11 (数据寄存器)
0x?? (补丁数据- 256字节长)
结束循环
等待1ms
将 PBMC 写入 CMD2
0x23 (地址)
0x10 (CMD2)
0x04 (命令长度)
0x50 (P)
0x42 (B)
0x4D (M)
0x63 (c)
读取 CMD2、直到字节1为零且字节1-4不是"!CMD"
结果:CMD2:0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x00
读取 DATA2直到字节1为零
结果:Data2:0x40 0x00 0x00 0x40 0x80……
(IRQ 在超时之前从不置为无效)
读取模式、直至处于"APP"状态
结果:模式:0x04 0x50 0x54 0x43 0x48 (PTCH)
持续到超时、然后切换到 APP。
我要清楚地谈谈器件、但我不能完全确定为什么它会保持在 PTCH 模式、而不是进入 APP 模式。 我不发出 PBMe 命令、因为一旦下载补丁并且 CMD2和 DATA2寄存器为0x00、便应释放 IRQ。 不幸的是、这并没有发生。
如有任何建议、将不胜感激!
-马特

