1.w25q128 介绍
当我们有比较多的数据需要掉电存储时,上一篇文章所介绍的 24c02 (256个字节eeprom)就不够了。此时我们会用到另外一种类型的存储器,即 flash。比如具有 spi 接口的 w25q128。这颗小芯片虽然也只有简单的 8 个引脚,但存储容量却达到了128m-bit,也就是 16m 字节,同时它的读写速度可以达到 66mb/s。但是由于 stm32f030 不支持 quad/dual spi,只能以标准 spi 方式读写,所以速度会低一些。以下是 w25q128 的主要特点:
a.133mhz spi clock。
b.10万次擦写寿命,20年数据保持时间。
c.每颗具有64-bit唯一序列号 unique id。
d.每次可以写入 1 到 256 字节数据。
e.写之前需要对目的地址所在扇区进行擦除操作。
( winbond w25q128 datasheet )
我们通过以下连线使 w25q128 连至 stm32f030 的 spi1:
w25q128 stm32f030
pin 1 /cs pa4 也可以用其它 gpio 引脚
pin 2 do pa6 spi1_miso
pin 3 /wp ( vcc )
pin 4 gnd ( gnd )
pin 5 di pa7 spi1_mosi
pin 6 clk pa5 spi1_sck
pin 7 /hold or /reset ( vcc )
pin 8 vcc ( vcc )
2.代码
代码的开发如果想提高效率,一个方法就是充分利用前人的成果,而不是自己一再的去造轮子。对于w25q128 我们可以从github上找到驱动代码:/zixunimg/ofweekimg/github.com/nimaltd/w25qxxgnu general public license v3.0我们把它集成进spi例程里,完成 w25q128 的读写功能。step 1,下载后把解压的文件夹 w25qxx-master 放在 stm32cube_fw_f0_v1.11.0driversbspcomponents
step 2, 我们用 keil 打开下面这个工程:stm32cube_fw_f0_v1.11.0projectsstm32f030r8-nucleoexamplesspispi_fullduplex_compollingmdk-armproject.uvprojx在项目(stm32f030r8-nucleo)上点鼠标右键,选择add group...新建 group 并改名称为 driversbspcomponentsw25qxx-master
『本文转载自网络,皇冠最新app版本的版权归原作者所有,如有侵权请联系删除』