.bqfs文件的指令问题,麻烦高手帮我解答一下,非常感谢!
//检查指令是否执行成功
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烧写.
希望大侠解答一下,非常感谢!别忘了指令的注释部分有很多问题哦!
Sheldon大虾,SOS
抱歉,现在才看到帖子。关于bqfs/ddfs文件下载相关驱动我们提供了Linux/Android的驱动,可以参考链接,http://processors.wiki.ti.com/index.php?title=Linux/Android_Software_Solutions_for_TI_Single-cell_Gas_Gauges
附件是关于dffs/bqfs文件的解释
你提到的很多内容是和dfi下载相关的,bqfs和dffs文件本身很多指令我们是不提供具体含义给客户的,用户只需要按照说明执行写,回读比较,延时这几种命令即可,关于校验部分dffs和bqfs文件本身就是带有的,具体体现在C:这个回读比较的命令。
附件是bqfs和dffs的下载参考代码
谢谢Sheldon Cai
这个Linux驱动仍然是直接解释bqfs脚本的,并未对bqfs的有效与否进行分析。
大神,请问之前你做bqfs文件烧录的问题解决了么?我也遇到这个问题...想了解下C: 16 04 D8 4E 48 9E命令究竟什么意思!因为我update firmware的时候这条指令compare不匹配,循环多次wait+compare都不行...这个compare究竟是比较的什么东东啊?