TI中文支持网
TI专业的中文技术问题搜集分享网站

SM28VLT32-HT: 存储数据问题

Part Number:SM28VLT32-HT

尊敬的TI大神们:

目前我有个高温产品的开发项目,项目中用到了存储器,选择了SM28VLT32-HT这款产品,使用中遇到了一个这个问题

单片机采样STM8AF5288与SM28VLT32-HT的通讯采用模拟SPI方式,原理图见下图

模拟SPI的驱动程序见下图

写数据时的流程如下

由于SM28VLT32-HT功耗过高,使用时我关闭了BANK0~BANK7以及PUMP的供电,在需要写入数据时根据需要写入的地址判断是写的哪个BANK,每条数据长度20个WORDS,然后开启相应的供电写入数据。

目前按照这种方式可以将数据写入,但是读取数据时发现数据在1640条时就不对了,数据应该没有写入成功,见下图

1640条数据对应的FLASH地址为十进制32800,该地址应该是bank0 的sector2区域,百思不得其解。还请大神指点一二,不胜感激!

user5860766:

今天又调试了一下,发现只要地址超过0x00008000也就是十进制32768读取的数据就是0,擦除sector0后再读取该数据还是0,不知什么情况

,

Amy Luo:

您好,

看您电路图中VCORE的电压是1.8V,但是datasheet 推荐的最小电压是1.8V,我担心随着更多数据的写入,功耗越来越大,供电电压有电压降,不能满足最小1.8V的供电造成的,因此请确保VCORE供电电压在1.8V ~1.98V之间:

,

user5860766:

您好,按照您的提示我将1.8V提高到了1.9V,现象还是一样,具体见下图

我编写了测试代码,擦除sector0和sector1  然后读取地址0和32767的数据都是0xFFFF,但是读取32768地址的数据就变成了0x0000,按道理来说也应该是0xFFFF才对啊,不知道什么原因

,

user5860766:

您好

应该是擦除没有成功,以下是我的擦除函数

擦除的地址是24位的,这个是每个sector的首地址吗?也就是每个sector包含32K的数据,地址是0   32000  64000 。。。。吗?

按照这个地址擦除应该不对,我按照0   32768  65536 。。。。。。这个地址擦除就能成功,但是这样的话每个sector的容量不就是32768个word了吗?一共64个sector这样算下来32768*64=2097152个word,整片存储一共不是才2M  words吗?还请指点

,

user5860766:

您好 

下图是我对整片芯片地址的理解,不知道哪里理解的不对吗?

,

user5860766:

您好

应该是擦除没有成功,以下是我的擦除函数

擦除的地址是24位的,这个是每个sector的首地址吗?也就是每个sector包含32K的数据,地址是0   32000  64000 。。。。吗?

按照这个地址擦除应该不对,我按照0   32768  65536 。。。。。。这个地址擦除就能成功,但是这样的话每个sector的容量不就是32768个word了吗?一共64个sector这样算下来32768*64=2097152个word,整片存储一共不是才2M  words吗?还请指点

,

Amy Luo:

是的,总共32Mbits=2M*16bits=2M  words;

2M words包含8 banks,每bank 8个sectors,每sector  32k words =32*1024=32768 words ;每bank 8*32 =256K words=256*1024 words;

sector 地址应该是0   32768  65536 

这个文档您看了没:Using the SM28VLT32-HT With Power Saving Features (Rev. A)

赞(0)
未经允许不得转载:TI中文支持网 » SM28VLT32-HT: 存储数据问题
分享到: 更多 (0)