大家好,
我现在想用MCU通过I2C更改dataflash里的数据,我发现如果写入dataflash的话可以得到一个ACK,但是如果读出来似乎还是更改之前的数据。今天也检查了设备是在unseal mode, 所以应该这个方面不存在问题。 想问一下到底是因为什么才会导致这种原因呢?还有请问每次读写一定要写32 bytes吗?下面贴上我的 .gg 文件的前几行和我发送的指令,请帮我看看是不是忘写了什么,希望能帮我解答一下, 谢谢!
.gg file:
* Texas Instruments Data Flash Binary Image File.
* All values are hexadecimal and begin at Data Flash Offset zero.
*
* File created on Tue Oct 09 09:51:02 2018
* Device Name bq28z610
* Device Identifier bq28z610 v0.19 build 24
* Off-
* set +0 +1 +2 +3 +4 +5 +6 +7
0000: 45 2F 05 C2 28 BF 0C 78
0008: 65 40 D5 8A 82 49 00 00
0010: 40 00 00 00 00 00 00 00
0018: 00 FF FF FF FF FF FF FF
0020: FF FF FF FF FF FF FF FF
0028: FF FF FF FF FF FF FF FF
0030: FF FF FF FF FF FF FF FF
我的指令:
W: AA 3E 00 40 45 2F 05 C2 28 BF 0C 78 65 40 D5 8A 82 49 00 00 40 00 00 00 00 00 00 00
W: AA 3E 20 40 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Star Xu:
Using I2C Communications With the bq34110, bq35100.pdfI 2C Communications您参考一下
Rosa Chen:
回复 Star Xu:
您好,
感谢您的回复,今天已经找到问题了。是因为在写完每条指令之后需要发送checksum,数据长度和指令60(不是3e)到地址0xAA。下面是英文论坛找到的帖子连接,有需要的朋友可以看看。
e2e.ti.com/…/2336247