W25x80是华邦出的一款串行falsh存储器,
存储容量8M bit,通过SPI接口进行数据读写,具有写保护功能。它有4096个可编程页组成,每页256字节,每个扇区由16个页组成,用页编程指令每次可编程256字节,用扇区擦除指令每次可擦除4K字节,也可进行块擦除或整个新片擦除。芯片采用标准SPI接口控制,四线制,传输速率可支持到75MHz,使用快读双输出指令可更高。
本以为很简单的,结果浑浑噩噩搞了几天,大致能用,中间状况百出,至今还有几点没弄明白,继续折腾。
我觉得几点需要注意的地方:
1、传入要写的参数需要是全局变量
2、要严格注意时序
3、写之前必须先擦除目标区域,即目标区为0xff时可写。
4、读写时注意最小读写单元是页,最好整页操作或做充分的页地址判断
我利用Flash的存储写了个小程序进行演示。
程序上电会判断w25x80里是否有我们之前保存的数据(指示上次掉电前led灯状态),如果有则读出数据并恢复LED上次一样的显示,没有则默认全灭。
每次我们触摸屏幕选择LED的亮灭都会被记录下来以供下次开机调用。
视頻在这里:
源代码在这里:
[
本帖最后由 shower.xu 于 2012-5-31 09:43 编辑 ]