//检查指令是否执行成功
C: 16 66 00
//发送烧录Instruction Flash指令
W: 16 00 02
//发送行号iRow指令
W: 16 01 FF 01
//发送Instruction Flash数据到缓冲区,文档只介绍了0x04指令,没有介绍0x24,0x44
W: 16 04 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF
//发送Instruction Flash数据到缓冲区,为什么是0x24?
W: 16 24 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF
//发送Instruction Flash数据到缓冲区,为什么是0x44?
W: 16 44 FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
//发送校验和
W: 16 64 A2 48
//延时2ms
X: 2
//检查指令是否执行成功
C: 16 66 00
//这是让BQ芯片计算校验和的指令吗?
W: 16 00 05
//上一条指令的校验和
W: 16 64 05 00
//延时170ms
X: 170
//这个是校验和吗?算法是什么
C: 16 04 83 FA 72 9E
//这是让BQ芯片计算校验和的指令吗?
W: 16 00 05
//上一条指令的校验和
W: 16 64 05 00
//延时170ms
X: 170
//这是让BQ芯片计算校验和的指令吗?为什么要发第二次?
C: 16 04 83 FA 72 9E
//这条指令(01)的功能是什么?
W: 16 00 01
//发送01指令的参数
W: 16 01 00 00
//这条指令作用是什么?
W: 16 03 05
//这条指令作用是什么?
W: 16 04 54 54 15
//上一条指令的校验和:
//(0x01+0x00+0x00+0x05+0x54+0x54+0x15)=C3
W: 16 64 C3 00
//延时2ms
X: 2
//检查指令是否执行成功
C: 16 66 00
//这条指令(05)的功能是什么?
W: 16 00 05
//上一条指令的校验和
W: 16 64 05 00
//延时170ms
X: 170
//这条指令作用是什么?
C: 16 04 D8 4E 48 9E
//退出ROM模式
W: 16 00 0F
//上一条指令的校验和
W: 16 64 0F 00
//延时4000ms
X: 4000
1.上面很多指令在文档里并没有介绍,或者我还没有找到这些指令的文档,谁能提供一下链接呢?
2.如果没有文档,能否帮我把上面的复制出来,修改一下注释,再回复?
3.每一个iROW的校验和没有问题,我计算出来与文件一致,但是整个文件的校验和,我计算出来的
是0x0051043F,在文件中并没有找到这个值,请问整个FLASH校验值的算法是怎么样的?
4.全部指令FLASH(固件)固定为48KB吗?我发现此文件最后一个ROW是0x1FF,那么:
0x200*32*3=49152Bytes=48KBytes
5.SLUA504A有提到,要先把Instruction Flash(IF)的开始两个Rows读出来,最后写回去,但是我从这个bqfs文件
没有看到这样的操作,何解?
6.SLUA504A的Page 11流程的第5个图好像有误,假如iRow=0xHHLL,那么应该发送:
16 01 LL HH
或者
16 01 LL
16 02 HH
也就是说,这个图是从Figure8复制过来的,HH为00的只适用于文件很小的DFI烧写,不适合IF烧写.
希望大侠解答一下,非常感谢!别忘了指令的注释部分有很多问题哦!