如何设计基于stm32的nand flash(spi接口) U盘

为什么做这个U盘

主要是网上nor flash做单片机U盘的教程太多了,而做nand flash单片机U盘的太少,我在做这个的过程中遇到很多问题于是来总结一下

FLash驱动设计

这里我写好了一份华邦nand flash的驱动代码:
下载链接
1、将它添加到工程,然后用cubemx配置好stm32的spi接口(频率配置到8Mbit/s左右,太高会出错,太低U盘不能工作),修改驱动代码中的cs引脚映射到当前硬件的cs脚,修改spi指向当前spi handler。
2、测试为w25nxx_init函数能不能读取w25nxx芯片id,正确值为 0xEFAA21,能读到下面的基本就没问题了,否则还要调试第一步。
3、测试能否正常擦除,先用erase_block()擦除后用page_read()读,看看是不是1024个block都是0xff的值,如果不对就回到第一步。
4、测试能否正常写入,擦除,write_page()、execute(page_addr)写,然后读出来看看是不是正确的值。然后整个芯片的page看一遍是不是全对了。

继续更新敬请期待

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐