恶心啦好几个星期啦 ,今天终于实现对flash芯片的驱动啦.心情舒服多拉.
所以在这里想记下点东西,供大家分享,被像我一样恶心这么久...废话少说,进入正题把:
首先介绍一下芯片,这是一款SPI接口的2Mbyte大小的存储芯片.
我的硬件电路连接:
#hold #wp vdd都是高电平,
so si clk 用与spi
CE片选
#wp接高电平,就可以随意读寄存器啦,BPL位的功能被禁止
#hold接高电平,可以随意传输数据,不会中断.
而且开机默认是全部块都保护的.
这是Flash中寄存器的值,其中只有BL0-3以及BPL可以读写,其他全部为读,但是BP3测试时,只可以读不可以写,个人感觉原因是:flash容量太小,BP3用于以后扩展使用.
flash的时序:上升沿时,flash接收命令,下降沿时,flash发送数据..
在读取flash发送的数据时,的同时发送一些dummy无用的命令,为读取数据提供时钟.
写命令:写命令时,必须在写之前片选好,写完命令之后拉高片选,以让命令进行执行.
读数据:读数据时,必须发送一些无用的命令,比如0xff,来为读取命令提供时钟.
这是基于msp430F149的flash驱动,关于单片机的SPI配置,请参考前篇.
当然,本次测试成功的时序:msp430f149时序模式的第一种.即上升沿发送,下降沿接受,没有时钟延迟.
即CKPH,CKPL都为0
源码看附件
时间: 2024-11-08 07:56:16