硬件原理分析
引脚功能
CLE
高电平ALE
低电平时传输命令CLE
低电平ALE
高电平时传输地址ALE
和CLE
低电平时传输数据CLE
片选信号低电平有效,因为LDATA信号是多芯片共用的RnB
状态引脚,高电平表示空闲,低电平表示正忙WE
引脚上升沿锁存写入数据RE
下降沿后延迟tREA
读出数据
可以看到WE上升沿通知nand写入数据,RE下降沿后延迟tREA
输出数据
直接操作和nand控制器操作对比
命令列表
使用uboot体验nand操作
uboot安装参考上一篇文章韦东山一期视频学习笔记-Norflash
####读ID
1.选中芯片NFCONT
(0X4E000004)bit1置1选中芯片,md.l 4E000004 1
读出寄存器值(因为是32bit寄存器)
可以看到芯片没有选中,mw.l 4E000004 1
使能nand flash
2.发出命令0x90NFCMMD
(0X4E000008)写入0x90,mw.b 4E000008 90
(b
写入1字节)
3.发出地址0x00NFADDR
(0X4E00000C)写入0x00,mw.b 4E00000C 00
(b
写入1字节)
4.读数据
读取NFDATA
(0X4E000010)uboot命令md.b 4E000010 1
5.读Device Code
读取NFDATA
(0X4E000010)uboot命令md.b 4E000010 1
可以看到读出的数据和芯片手册一致
6.退出读ID状态Resetmw.b 4E000008 ff
读0地址内容
使用uboot命令nand dump 0
可以查看nand内数据
读操作时序
发出以下命令进行读0地址测试
mw.l 4E000004 1 //使能nand flash
mw.b 4E000008 00 //发出命令
mw.b 4E00000C 00 //发出地址
mw.b 4E00000C 00 //发出地址
mw.b 4E00000C 00 //发出地址
mw.b 4E00000C 00 //发出地址
md.b 4E000010 1 //读数据
可以看出运行结果和uboot命令直接读取nand flash结果一致