Answers:
5MByte是要存储的大量数据。通过USB读出意味着您正在使用内置USB设备接口的新部件之一。否则,您将要使用USB到串行转换器(FTDI或类似产品),并且仅限于异步串行读取数据的数据速率。
您是否考虑过将SD存储卡连接到MSP,在其中存储数据,然后将其移动到PC上以读取存储的数据。我尚未为此设备编写接口,但是有很多接口。
在此应用中,串行闪存优于EEPROM。Atmel的阵容很棒。您的选择将在很大程度上取决于两件事:(1)您需要在微型计算机上编辑/划分日志,以及(2)MSP430上的RAM可用性。
与EEPROM不同,闪存只能从1写入0。将数据从0更改为1需要擦除部件的一部分,通常仅可用于页面或数据块。您需要将该页面缓冲到RAM中,擦除页面,在RAM中进行编辑,然后再将其写回(如果要更改某些内容)。
正如已经指出的,AT45D系列提供了许多部件,这些部件在芯片上具有RAM缓冲区,以方便此过程,而无需在微控制器上使用RAM。
最后,整个系列都是引脚兼容的,因此只需放下8-SOIC(150mil)的封装,然后如果以后需要其他选项时就可以换掉这些零件。
我建议使用AT25D系列,因为它看起来比AT45D易于使用。尽管速度稍慢,并且没有提供那么多的数据传输选项或SRAM缓冲区。它确实具有价格便宜的优势,并且对于大多数应用程序(如数据记录)仍然足够快。
如果您需要5MB的数据,则EEPROM不太可能正常工作,因为它们通常采用<1Mbit的封装。Atmel的闪存芯片最多支持64兆位或8MB。
[这是对伊恩回答后的评论的回应]。
SD卡只是SPI设备,因此不需要芯片/接口。其他协议包括2线接口(如I2C)和4线接口(具有复杂的CRC),但是SPI是最常用的协议。
没有可用于从TI MSP430的SD卡应用笔记这里。很简短,但其中包含示例代码。它可以处理对SD卡上各个扇区的读取和写入操作,如果您不打算将其插入PC,那么这可能就是您想要的。还可以查看来自MSU的Foust(推荐)或Evans的这些实现。
一旦有了读写扇区的基本功能,就可以通过USB抽象一个简单的自定义文件系统,或者使用现有的文件系统库。 FatFS,EFSL或DOSF都是后者的选择。如果要实现所有必需的功能似乎太难了,请记住,除了少数几个可以/将是存根。
但是,文件系统将在一定程度上通过USB接口进行抽象。如果您有一个真实的文件系统库,并且卡在可读的文件系统中,则这样会更容易,但是这需要工作。如果要编写自己的“文件系统”并保存USB实现的工作/时间/内存,则可以使它的定义既简单又灵活,因为日志1从0x0开始,日志2从0x10 0000开始,日志3从0x20 0000开始,并在0x30 0000处记录4。然后,您可以通过USB发送此数据。
从串行接口到大容量存储设备,USB接口可以像您想要的那样复杂。