This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ4050的dataflash读取(用上位机)

Other Parts Discussed in Thread: BQ40Z50-R1

如图,准备写个上位机读取CUV的值,试了好几种方式都没读取出来,麻烦各位做过的朋友帮帮,

告知读取的方式即可,谢谢

  • 请问你用的是哪个BQ,若果是BQ40Z50-R1,先确认其他数据能否正常读取,用EV2300或者MCU去读取。DataFlash操作要先对BQ解锁,用ManufacturerAccess 命令去处理,详见BQ40Z50-r1 TRM 117页。而且,DF的操作只能用block操作,即,每次不管读或者写都需要操作32Bytes,有CRC校验的话还要加入CRC校验。写DF要在FULLUNSEAL下进行,读DF在UNSEAL下即可进行。

    大致步骤:1.先确认ManufacturerBlockAccess()是否已经使能,如果没有先使能ManufacturerBlockAccess().功能: wr+44+2+21+00+CRC;     

                        2.UNSEAL解锁:a. wr+44(CMD)+length(2)+14+04+CRC;

                                                        b.wr+44+2+72+36+CRC;  (04143672为BQ的默认解锁密码)

                        3.读DF。假如DF的起始地址为0x4000。则,你要读取的CUV在0x4480-0x449f段:a. wr+44+2+80+44+CRC;(向44写入DF地址);

                                                                                                                                                                              b.wr+44+rd+0x22(length)+80+40+data1.....+data32+CRC;

                            其中,I2类型读到的data2和data3就是你所需要的值了。

                        4.SEAL(上锁):wr+44+2+30+00+CRC;

  • 刚刚用EV2300测试一下,测试OK,另外请教一下FULLUNSEAL是怎么做的?顺便跟您咨询一下这个写的流程,我担心我们BOSS要求以后也会做,谢谢您

  • FULLUNSEAL和UNSEAL原理一样:先进行UNSEAL ,再:a.    wr+44+2+FF+FF+CRC;

                                                                                                                 b.   wr+44+2+FF+FF+CRC;  //FULLUNSEAL的默认密码为FFFFFFFF

    其实,最好 的方法就是用逻辑分析仪抓EV2300和BQ的通讯数据,所有的读写操作一目了然。

  • 好的,谢谢您~

  • 前辈,问一下,不要有存储地址的吗
  • 使用的是:BQ40Z50-R1,我想请问下我现在把HPE位置“1”了,为什么通讯过程中还是没有开启PEC校验?