其实做FW的看第五章就足够了;
前面的章节都是讲述硬件接口和原理;
本章是讲述怎么使用NAND的;
就是ONFI的命令字或者叫命令集合;
请看下表的命令集合:
O/M 表示是否要求强制支持;
1st cycle 和2nd cycle;表示有的命令需要1个cycle,有的是需要2个cycle 传递信息的;
每个cycle 对应DQ0:7传递一个信号,就是8bit,就是1BYTE;
所以1个cycle就是1byte;
比如00-30表示read命令;其他都类似;
如果把这些命令熟背抄写三遍,连续七天,刻进脑海,就可以称为专家了;这是真的;
读cmd:00-30表示读;00-32表示multi-plane read;00-31表示cache read;
这三者之间有什么差别:00-30 表示发送读命令到NAND,NAND处理,获取数据(需要时间)完毕返回数据;00-32表示因为一个DIE支持多个plane,所以给第一个plane发完命令00-32后,可以接着给第二个plane发读命令发00-32即可,,但是结束必须发送00-30/31;然后再收DQ的数据;
写cmd:80-10program;80-11 multi plane program;80-15 cache program;
此处提到了; 有些cmd是标准的,有些是预留给厂商自定义的;每个厂商酌情使用;
cycle type是说明这个cycle的功能;比如cmd表示此时cle打开了,DQ上传递的就是cmd命令字;
addr表示ALE打开了,此时DQ上传递的是address信息(address的概念前面讲了的);
DIN表示此时DQ上传递的是data数据;
比如reset时序图中,CLE打开,就可以发送FF的cmd命令字了;
比如read status 中每个bit都有含义定义的,非常重要,请参考说明;
比如 00-30 的时序如上所示:先发00,再发address,然后再发30h,需要等待一会再获取数据date output;
其他的命令都是类似,请自行研究下;
后面讲的都是有些特定功能,比如怎么set feature ,怎么cache read 或者training 等功能,还有calibration怎么做;
第五章完成;