|
由于工作的需要,研究了一下ATMEL公司出品的一款串行输入输出的FLASH芯片--AT25FS01。越来越感觉到这种型号的FLASH特别难用。每次擦写芯片之前必须向该芯片写入一个WRSR命令,其实多发这么一个命令,我也就忍了,最让人恼火的是对芯片编程的字节数和对芯片擦除的字节数不一样。对芯片进行编程时,每个编程命令一次最多编写一页,也就是256个字节,而擦除芯片时,每个擦除命令一次至少擦除16页,256×16个字节。也就是说,每次我要对某一页重新编程的时候,我必须先找到一块256×16字节的RAM,把16页的数据写入到RAM里面;然后把要编程的数据写入到RAM里面;最后擦除FLASH的16页,把RAM中的数据写入到FLASH中。
这些操作使得编写的代码比较冗长,还浪费资源--我必须额外使用一块RAM芯片,导致我在画PCB的时候在布局布线方面还要额外花费一些心思。
好在这次我们使用的芯片是Altera公司的CycloneIII系列FPGA,里面提供的RAM足够我使用,避免了上面的问题,真是不幸中的万幸。
附上这款芯片的verilog模型,也不知道这个模型是否正确。