MSP430的内存建议


9

我正在使用TI MSP430开发一个测量应用程序,我想听听一些有关可以使用哪种类型的存储器的建议。

这个想法是在一段时间内使用它进行记录,然后在通过USB连接设备时将数据下载到PC。估计最多可容纳5MB数据,每个样本大约25字节数据。

一个简单的EEPROM芯片会做还是有更好的选择?


1
看起来您在拥有有效数据的大部分时间中都将为设备供电。那么,电池备用SRAM是否比EEPROM(或更佳的Flash)更合适?
Federico Russo

Answers:


7

我曾经使用过AT45D系列串行闪存芯片。它们具有内部SRAM缓冲区,可设置用于擦除/编程的页面。SPI接口读取和输出数据。


5

5MByte是要存储的大量数据。通过USB读出意味着您正在使用内置USB设备接口的新部件之一。否则,您将要使用USB到串行转换器(FTDI或类似产品),并且仅限于异步串行读取数据的数据速率。

您是否考虑过将SD存储卡连接到MSP,在其中存储数据,然后将其移动到PC上以读取存储的数据。我尚未为此设备编写接口,但是有很多接口。


是的,我将使用带有嵌入式USB的部件之一。理想的情况是使用MSC协议,但这给我的项目增加了很多复杂性。我可能会同意HID数据传输速率。我考虑过SD卡,但这会增加外壳的复杂性,因为必须防水。
Padu Merloti 2010年

2
我建议使用这种方法,因为SD卡将为您提供最大的存储空间。您现在说的是5MB,但是如果您以后想要更多,您将推到串行闪存的极限(并且您已经远远超出了EEPROM的极限)。如果防水是个问题(并且似乎有合适的USB选项),则可以通过USB读取SD卡,然后将其永久放入机箱中。我见过一些将SD卡焊接到板上的设计(注意:这可行,但我不推荐这样做)。
凯文·维米尔

知道了,这很有意义。我会考虑的选择。谢谢
Padu Merloti

是否有专门用于处理SD接口并实现文件系统的专用芯片,还是我仍然必须使用MSP430来实现文件系统和MSC类?
Padu Merloti 2010年

@Padu-我觉得这需要比注释更多的空间和格式,因此我添加了答复作为答案。
凯文·维米尔

3

在此应用中,串行闪存优于EEPROM。Atmel的阵容很棒。您的选择将在很大程度上取决于两件事:(1)您需要在微型计算机上编辑/划分日志,以及(2)MSP430上的RAM可用性。

与EEPROM不同,闪存只能从1写入0。将数据从0更改为1需要擦除部件的一部分,通常仅可用于页面或数据块。您需要将该页面缓冲到RAM中,擦除页面,在RAM中进行编辑,然后再将其写回(如果要更改某些内容)。

正如已经指出的,AT45D系列提供了许多部件,这些部件在芯片上具有RAM缓冲区,以方便此过程,而无需在微控制器上使用RAM。

最后,整个系列都是引脚兼容的,因此只需放下8-SOIC(150mil)的封装,然后如果以后需要其他选项时就可以换掉这些零件。


我同意您的意思,但是您可以在删除源之前修改要更改的字节的同时,将数据从源Flash页复制到目标Flash页。
mjh2007

@mjh-如果您的来源和目的地相同,并且/或者您没有免费页面怎么办?而且,这很慢:发送读取命令,发送地址,读取字节,必要时进行更改,擦除,发送写入命令,发送地址,写入字节,重复x256,x512或x4k。您的另一个选择是发送读取命令,发送读取地址,时钟N个周期,修改要更改的字节,擦除,发送写入命令,发送写入地址,N个时钟。这大约需要RAM缓冲区花费时间的1/3。
Kevin Vermeer

为什么数据记录器曾经需要在微型计算机上编辑日志?
davidcary

@davidcary-如果您的数据记录器除了记录一个长字节流之外什么也不做,那么您是对的-您将无需进行任何更改。如果它具有多个可能跨越页面/块边界的配置或日志文件,或者如果您想在文件末尾更改标题,则需要编辑内存而不擦除现有数据。
凯文·维米尔

此时,我只需要创建几个日志文件,无需修改它们,除非用户将设备插入USB并下载它,然后我需要擦除(或再次使用该空间)旧日志。
Padu Merloti 2010年

2

我建议使用AT25D系列,因为它看起来比AT45D易于使用。尽管速度稍慢,并且没有提供那么多的数据传输选项或SRAM缓冲区。它确实具有价格便宜的优势,并且对于大多数应用程序(如数据记录)仍然足够快。

如果您需要5MB的数据,则EEPROM不太可能正常工作,因为它们通常采用<1Mbit的封装。Atmel的闪存芯片最多支持64兆位或8MB。


1
我不同意。AT25D上最小的可擦写区域是4kB页,很少有微处理器具有那么多的可用RAM。我使用过AT25FS系列芯片,该芯片具有较小的擦除页(256字节),但小于5MB。使用缓冲系统意味着您不必担心RAM管理。当然,如果您不需要编辑日志,则AT25系列可以正常工作。
凯文·维米尔

是的,当应用程序需要写入某个字节,然后再更改该字节时,较大的擦除页会令人烦恼。但是,为什么数据记录器需要这样做?在我看来,对于数据记录应用程序而言,最小的可擦除段是256字节还是1 MB,这没有什么区别。
davidcary

1

[这是对伊恩回答后的评论的回应]。
SD卡只是SPI设备,因此不需要芯片/接口。其他协议包括2线接口(如I2C)和4线接口(具有复杂的CRC),但是SPI是最常用的协议。

没有可用于从TI MSP430的SD卡应用笔记这里。很简短,但其中包含示例代码。它可以处理对SD卡上各个扇区的读取和写入操作,如果您不打算将其插入PC,那么这可能就是您想要的。还可以查看来自MSU的Foust(推荐)或Evans的这些实现。

一旦有了读写扇区的基本功能,就可以通过USB抽象一个简单的自定义文件系统,或者使用现有的文件系统库。 FatFSEFSLDOSF都是后者的选择。如果要实现所有必需的功能似乎太难了,请记住,除了少数几个可以/将是存根。

但是,文件系统将在一定程度上通过USB接口进行抽象。如果您有一个真实的文件系统库,并且卡在可读的文件系统中,则这样会更容易,但是这需要工作。如果要编写自己的“文件系统”并保存USB实现的工作/时间/内存,则可以使它的定义既简单又灵活,因为日志1从0x0开始,日志2从0x10 0000开始,日志3从0x20 0000开始,并在0x30 0000处记录4。然后,您可以通过USB发送此数据。

从串行接口到大容量存储设备,USB接口可以像您想要的那样复杂。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.