TLE9877使用EEPROM完成数据读写
本帖最后由 zh123zh 于 2024-12-6 13:09 编辑我目前在使用TLE9877芯片的Flash内的EEPROM空间完成数据读写功能,地址范围为0x1100F000~0X1100FFFF,共4k占据一个扇区。
遇到的问题是:
1、EEPROM只能是按页写入,是一次至少写入一页的内容吗?能不能跨页写入呢?
2、设计了一次单独写入一个字节的函数,但是内部还是通过数据的方式调用ProgramPage()函数写入一页的内容,而且如果不从一页的起始地址开始写入,那么起始地址开始自动填充0xFF直到该页写入数据的地址,那么是必须要从首地址开始写入数据吗?
3、单字节写入设计,而不是向新地址写入时都将数组的数据全部写入。
4、数据读取也是一次只能读取一页的数据吗?能不能跨页读取呢?
5、有没有推荐的数据写入读取的校验函数设计呢?
好像一次不能跨页读写,这个应该是内部构造决定的。我记得应该可以按照单元写的。如果一次性写入的数据很少的话,不妨按照单元方式写。 即使是U盘这样的介质,也有固定单元大小,比如512字节。如果不足,一样会有浪费。 EEPROM通常是按页写入的,这意味着你一次至少需要写入一页的内容。跨页写入通常是不支持的,因为EEPROM的物理结构决定了它必须以页为单位进行写入操作。如果你尝试跨页写入,可能会导致数据损坏或写入失败。 你提到的单字节写入函数内部调用ProgramPage()函数写入一页的内容,这是正确的。EEPROM的写入机制要求你从页的起始地址开始写入数据。如果你不从页的起始地址开始写入,那么从起始地址到你实际写入数据的地址之间的部分会自动填充为0xFF。 为了确保数据的正确性和完整性,建议你从页的起始地址开始写入数据。 每次写入一个字节时,实际上是在写入一页数据。因此,你需要确保在写入之前,先将该页的其他数据读取出来,然后与新数据合并,再写入整个页
页:
[1]