恶心啦好几个星期啦 ,今天终于实现对flash芯片的驱动啦.心情舒服多拉.

所以在这里想记下点东西,供大家分享,被像我一样恶心这么久...废话少说,进入正题把:

首先介绍一下芯片,这是一款SPI接口的2Mbyte大小的存储芯片.

我的硬件电路连接:

    #hold  #wp vdd都是高电平,

    so si clk   用与spi

    CE片选

 #wp接高电平,就可以随意读寄存器啦,BPL位的功能被禁止

#hold接高电平,可以随意传输数据,不会中断.

而且开机默认是全部块都保护的.

sst15vf016bFlash芯片的驱动基于msp430F149单片机_第1张图片



这是Flash中寄存器的值,其中只有BL0-3以及BPL可以读写,其他全部为读,但是BP3测试时,只可以读不可以写,个人感觉原因是:flash容量太小,BP3用于以后扩展使用.

wKioL1VMHvaiDfj7AACJeewQTt8915.jpg

flash的时序:上升沿时,flash接收命令,下降沿时,flash发送数据..

在读取flash发送的数据时,的同时发送一些dummy无用的命令,为读取数据提供时钟.


写命令:写命令时,必须在写之前片选好,写完命令之后拉高片选,以让命令进行执行.

读数据:读数据时,必须发送一些无用的命令,比如0xff,来为读取命令提供时钟.




这是基于msp430F149的flash驱动,关于单片机的SPI配置,请参考前篇.

当然,本次测试成功的时序:msp430f149时序模式的第一种.即上升沿发送,下降沿接受,没有时钟延迟.

    即CKPH,CKPL都为0



源码看附件