历史上的今天
今天是:2024年10月12日(星期六)
2021年10月12日 | S3C2440裸机------Nor Flash原理及硬件操作
2021-10-12 来源:eefocus
1. nandflash和norflash的区别
我们的nandflash上面只有8条数据线,在数据线上既传输命令又传输数据,但是我们的norflash和内存接口是一样的,有地址线和数据线,norflash可以像内存一样读,但是不能像内存一样写。如果norflash也能像内存那样写的话,那就比较容易被破坏,如果想写norflash,要发出某些特定的命令,需要做一些特殊的操作才能烧写norflash。下图是norflash和nandflash的区别。
2.norflash的操作

上图是norflash的命令,
如果想复位norflash,那么只需要向任意地址写入F0即可。
2.1 读id
NOR手册上:
往地址555H写AAH
往地址2AAH写55H
往地址555H写90H
读0地址得到厂家ID: C2H
读1地址得到设备ID: 22DAH或225BH
退出读ID状态: 给任意地址写F0H
2440的A1接到NOR的A0,所以2440发出(555h<<1), NOR才能收到555h这个地址
UBOOT怎么操作?
往地址AAAH写AAH mw.w aaa aa
往地址554写55H mw.w 554 55
往地址AAAH写90H mw.w aaa 90
读0地址得到厂家ID: C2H md.w 0 1
读2地址得到设备ID: 22DAH或225BH md.w 2 1
退出读ID状态: mw.w 0 f0
2.2 读取CFI信息
NOR有两种规范, jedec, cfi(common flash interface)
所谓的jedec就是上面图片表格里面的这些命令,我们可以通过这些命令得到芯片的ID,擦除芯片,或者烧写数据,以前老的norflash都支持jedec接口,以前我们如果想获取norflash的容量,那么需要用命令读取ID,然后去和内核的数组进行比较,然后得到容量,现在新的norflash还要支持cfi接口,我们可以直接读取容量信息。
从上表中可以看到,在cfi模式下,我们读取地址27就可以得到容量0014,2的14H次方就是它的容量。
读取CFI信息
NOR手册:
进入CFI模式 往55H写入98H
读数据: 读10H得到0051
读11H得到0052
读12H得到0059
读27H得到容量
2440的A1接到NOR的A0,所以2440发出(555h<<1), NOR才能收到555h这个地址
UBOOT怎么操作?
进入CFI模式 往AAH写入98H mw.w aa 98
读数据: 读20H得到0051 md.w 20 1
读22H得到0052 md.w 22 1
读24H得到0059 md.w 24 1
读4EH得到容量 md.w 4e 1
退出CFI模式 mw.w 0 f0
2.3 写数据
md.w 100000 1 // 得到ffff
mw.w 100000 1234
md.w 100000 1 // 还是ffff 说明写不进去。不能像内存一样去写。
要按照下面的命令去写

NOR手册:
往地址555H写AAH
往地址2AAH写55H
往地址555H写A0H
往地址PA写PD
2440的A1接到NOR的A0,所以2440发出(555h<<1), NOR才能收到555h这个地址
UBOOT怎么操作?
往地址AAAH写AAH mw.w aaa aa
往地址554H写55H mw.w 554 55
往地址AAAH写A0H mw.w aaa a0
往地址0x100000写1234h mw.w 100000 1234
2.4再次烧写
再次往0x100000写入0x5678
因为原来0x100000上的数据不是0xffff,再次烧写失败,只有全是f的时候才能往里面写。
往地址AAAH写AAH
往地址554H写55H
往地址AAAH写A0H
往地址0x100000写5678h mw.w 100000 5678
写完之后读出来并不是5678,烧写失败。
先擦除

先解锁,然后发出擦除命令,然后再解锁,然后往扇区地址发出30h。
mw.w aaa aa
mw.w 554 55
mw.w aaa 80
mw.w aaa aa
mw.w 554 55
mw.w 100000 30
再烧写
mw.w aaa aa
mw.w 554 55
mw.w aaa a0
mw.w 100000 5678
————————————————
版权声明:本文为CSDN博主「陈 洪 伟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013171226/article/details/119188667
史海拾趣
|
有以下几个问题: 1、有功功率都可以转换为除热能之外的其他什么形式的能,转换为其他形式的能又如何计算,比如热能是I^2R,其他形式的能有没有计算方法。 2、无功功率是不是最终还要回到电源处。… 查看全部问答> |
|
int request_dma(unsigned int dmanr, const char * device_id) 参数dmanr是从0~3、5~7里面的随便挑一个就行了么? 还是需要怎么做来得到啊… 查看全部问答> |
|
共享很多通信好资料! 刚发现一个通信的论坛,内容蛮不错的,加散分喽~ 很多资料啊,都是免费的 无线通信部分: 无线通信基础 http://www.itgoal.net/viewthread.php?tid=6982&extra=page%3D1 天线基本知识及应用 http://www. ...… 查看全部问答> |
|
本人由于毕业设计的需要,目前只有英文资料,哪位大虾有关于Z80的中文资料或相关的文档,小弟不胜感激. 有的话 请发邮箱 lbp213213@sina.com 与我联系… 查看全部问答> |
|
Windows XP + VC 6.0 + WinXP_DDK + DriverStudio 3.2 1·前言 开发windows内核驱动程序是一个非常具有挑战性的工作,你得忍耐调试过程中操作系统 不断蓝屏、不断崩溃的噩梦,所以强烈建议你采用虚拟机做开发平台,这样即使把整个系统都搞蹦了,大不了从新装过虚拟机而已。那么搭建一个完整的 Windows ...… 查看全部问答> |
|
Lm3s8962 Lwip #include .c文件 不足 首先感谢EEWorld 网站提供的LM3S8962的开发板,由于春节放假,板子一直没有研究。现在回到工作岗位上,才开始研究开发板。 申请这块开发板的主要原因是看重LM3S8962使用网络功能不需要外加芯片的好处,一可以节约成本,二可以减少走线,所以就 ...… 查看全部问答> |
|
我手上有LM3S811的评估板,正在用来做我的毕业设计,驱动16*64点阵,想用8个IO口控制154和595的行列扫描实现点阵屏显示16*16的汉字,实现左移,右移,上移,下移等多种滚屏方式,主要就学习GPIO这块,首先实现一个LED的闪烁,再是流水灯等其他外设 ...… 查看全部问答> |
|
这几天一直在看F28035的文档资料以及摸索CCS4的编程。还要考虑数字电源的处理方法。第一次用TI的CPU,第一次用TI的编译器,要掌握它需要花些功夫啊。 关于ADC的处理,经过近来所看的ADC、PWM、CLA等部分的知识,认为选择附件中的 ...… 查看全部问答> |






