经过2天的学习从不了解NAND FLASH,到驱动NAND FLASH完成一些简单的写,擦除,读取状态,复位等操作。

方法:使用正点原子的ST32F103ZET6和NAND FLASH(K9F1G08U0E)相连接

先看此图:

1.此芯片位宽位8,I/O口从0-7分别连接到FSMC_D0-FSMC_D7(PD14,PD15,PD0,PD1,PE7,PE8,PE9,PE10)

2.CLE是命令锁存使能-就是引脚在搞电平传输的是命令,ALE地址锁存使能-高电平,传输的是地址。CLE连接PD12,ALE连接PD13(这二条线也是FSMC的地址线A17和A16)

3.WE是写使能(低电平有效写入数据)PD5-FSMC_NWE,RE是读使能(低电平有效读取数据)PD4-FSMC_NOE,CE是片选此芯片(低电平有效选择NAND芯片)PD7-FSMC_NE1,WP是写保护(此芯片本身上拉就是没有写保护,当WP接地后芯片被保护无法写入数据)PD6,R/B(是准备就绪/正在工作状态,输出低电平表示忙,高表示就绪)PG6-FSMC_INT2。

说下地址传输格式的问题

此芯片是传输四个字节一共32位,其中A10到A0表示页内偏移(此芯片一页有2K字节,偏移表示从字节0开始计数)但是此字节很少用因为芯片的读/写以页为单位,芯片的擦除以块为单位。

举例:假如我写2048字节到块1页3上,和块1页5上,这时我想擦除块1页3,其实也把块1页5擦除了。擦除是以块为单位

A17-12表示页地址(1个block(块)有64页)

A27-A18表示块地址(表示0-1013块也就是一个Zone)

一页2K,一个块有64页(64*2=128k=0.125M),一个Zone有1024个块1024*0.125=128M,由于此芯片有1G,所以有1024/128=8个Zone。

举例想访问块3页5上偏移100字节的,1st-0x64就是100字节,2nd0x00,3rd有A19-A12但是是页地址和块地址混合。0xc5-1100 0101,11就是A19到A18就是块3,00 0101就是A17-A12表示页5

在程序中表示:

还是以块3页5举例,5+(3+(0*1024))*64 = 197,这里ROW_ADDRESS就是197就是0xc5

带进去3rd就是0xc5,4th就是0x00

功能命令操作码

举一个例子READ ID

此NAND FLASH挂在BANK2上,我上面连的线也是连到BANK2上的,所以起始地址是0x7000 0000,BANK3起始是0X8000 0000。我查阅资料发现0x7000 0000到0x8000 0000不全是我们能用的空间,在BANK2上。

CMD_AREA表示高电平下进行引脚命令传输-0x90

然后ADDR_AREA拉高表示传输地址0x00

最后用32位的指针指向起始地址,强张取出一个32位的数据里面包含了商家厂家和芯片的内部信息等。

得出这些信息

未完--还有关于FSMC时序的问题和读写擦除命令和使用

时间2022/5/6--学习复习使用。

使用STM32F103ZET6驱动NAND FLASH(K9F1G08U0E)相关推荐

  1. MTD设备驱动--NAND flash

    前面的文章MTD设备驱动(http://blog.csdn.net/paomadi/article/details/9262307)讲了mtd设备的架构组织 其中讲述了调用int add_mtd_pa ...

  2. Nand flash驱动的编写与移植

    1 Nand flash工作原理     S3C2410板的Nand Flash支持由两部分组成:Nand Flash控制器(集成在S3C2410 CPU)和Nand Flash存储 芯片(K9F12 ...

  3. ARM9 2410移植之Nand flash 驱动的编写与移植

    1 Nand flash 工作原理 S3C2410 板的Nand Flash 支持由两部分组成:Nand Flash 控制器(集成在S3C2410 CPU)和Nand Flash 存储 芯片(K9F1 ...

  4. [转]ARM9 2410移植之Nand flash 驱动的编写与移植

    1 Nand flash 工作原理 S3C2410 板的Nand Flash 支持由两部分组成:Nand Flash 控制器(集成在S3C2410 CPU)和Nand Flash 存储 芯片(K9F1 ...

  5. 三星K9F1G08U0E(128MB,NAND FLASH) STM32平台驱动程序(模拟时序)

    STM32平台下模拟时序驱动K9F1G08U0E,主要目的为了解.学习NAND FLASH的功能特性,没有使用STM32的FSMC(火龙开发板硬件为模拟时序驱动),纯粹自娱自乐,如对你有帮助,不胜荣幸 ...

  6. linux下nand flash驱动工作原理,Linux下Nand Flash 驱动代码分析

    随着越来越多的平台支持从Nand Flash 中启动,掌握Nand Flash 的驱动编写有着重要的现实意义,由于内核已经完成了大部分的工作,实际工作中大部分工程师对Nand Flash 驱动只是简单 ...

  7. 块设备驱动之NAND FLASH驱动程序

    转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25240909 一.框架总结 二.硬件原理 相比于nor flash.我们能够清 ...

  8. linux驱动编写(nand flash驱动)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 很长一段时间,nand flash都是嵌入式的标配产品.nand flash价格便宜,存储量大, ...

  9. linux下nand flash驱动工作原理,1.3.4. Nand flash驱动工作原理

    1.3.4. Nand flash驱动工作原理 在介绍具体如何写Nand Flash驱动之前,我们先要了解,大概的整个系统,和Nand Flash相关的部分的驱动工作流程,这样,对于后面的驱动实现,才 ...

最新文章

  1. Vb自动读取本地HTML,VB获取网页源代码的五种方法
  2. SQL 表之间的更新
  3. 设置3d rotationY 旋转之后元件大小改变解决方案
  4. 用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr
  5. 未越狱设备提取数据_从三星设备中提取健康数据
  6. java打开别人的代码报错_同样的代码,别人的可以运行我的报错,求解答
  7. 生物科研神器!30分钟把人家一天的工作都给干完了!
  8. Spring Boot 多环境配置(properties和yaml方法的比较)
  9. 对计算机网络考研知识点归纳(不断更新中T)
  10. html.ex.day02
  11. 【基于HTML技术的趣味“2048”小游戏】(效果+源代码)
  12. 表格中自动布局注意和使用自动计算行高
  13. EDA项目 出租车计价器 赏析
  14. Linux——DHCP篇
  15. JVC摄像机mp4视频丢失恢复方法
  16. 基于opencv的SFR算法
  17. 长坂坡被赵云挑翻50多员武将资料全部资料(转)
  18. 成长的代价和教育的意义
  19. ALTIUM DESIGNER+KEYSHOT快速渲染电路板
  20. msp432快速入门第二节之sdk的详解

热门文章

  1. 《无人生还》——阿加莎·克里斯提
  2. 城市商业传说:打飞的吗?无人的那种
  3. [学习笔记·翻译稿] Video Based Face Recognition by Using Discriminatively Learned Convex Models
  4. 城市生态规划的主要内容(附:生态规划建设指标)
  5. linux常用的基础指令
  6. Leaflet调用谷歌地图、天地图、智图地图、高德题图一键搞定
  7. linux ssh关闭icmp,ICMP协议服务器怎么开启关闭ICMP协议?
  8. SMART原则的误区
  9. darknet训练yolov4模型
  10. 组建物联网卡流量池 帮助平衡设备流量使用不均现象