调试U-Boot笔记(九)-- NorFlash芯片说明摘抄
2023-09-14 08:58:19 时间
【Read Array Data】
设备自动切换到Read array data模式,在完成擦除与写入操作之后设备会自动切换到Read array data模式。在执行擦除命令时,系统在执行读操作时,除了访问到了正在擦除的扇区会时受到阻塞外,其它都能正常访问。
【Reset Command】
这个命令可以终止已进行但还没有执行的擦除或写入操作,使之回到Read array data模式。一旦擦除或写入操作开始,reset命令只有在擦除命令完成之后才生效。 【Autoselect Command Sequence】
这个命令可以让主机访问到设备的生产商、设备码、扇区的是否有写保护。表4里已列出所有的命令。 Autoselect Command Sequence由两个unlock周期开始,然后进入autoselect模式。之后系统可以无限次数地读任何地址而不但需要再次执行命令串。 XX00H -- 生产厂家
XX01H -- 设备码
每个扇区地址+04H -- 该扇区的保护状态,1:保护,0:未保护 【Word/Byte Program Command Sequence】 系统可以通过BYTE#引脚决定写入的是字还是字节。编程操作有4个总线周期操作:
(1)两个解锁序列
(2)要编程的地址
(3)要编程的数据
之后设备将自动进入编程操作,不再需要主控做任何操作。 当编程操作完成之后,设备自动进入Read array data模式,系统可以通过DQ7与DQ6来检测设备的状态。 在编程操作期间,任何编程操作都会被忽略。 值得注意的是:硬复位会立即终止编程操作。在硬复位之后必须重新启动编程操作。 编程操作可以跨越扇区边界的,一个位只能从0改写成1。只有擦除能使1变成0。 【Unlock Bypass Command Sequence】 unlock bypass 功能允许系统写入数据比Standard更快些。 unlock bypass命令触发由两个unlock周期。第3个写入的bypass command, 20h。设备就进入了bypass模式。
第一个周期就是unlock bypass program命令, A0h。第二个周期包括Address与Data。附加数据。 在unlock bypass模式期间,只有Unlock bypass program与Unlock bypass reset命令是可用的。
想要退出unlock bypass模式,系统发起两个unlock bypass reset命令序列,每一个写入90H,第二周期数据为00H。地址已无关重要,命令执行之后设备回到read array data模式。 【Chip Erase Command Sequence】 命令序列详见表格。 在擦除期间,其它操作都会被忽略。但是硬复位会立即终止擦除操作。 系统可以通过检查DQ7,DQ6,DQ2,或RY/BY#。 【Sector Erase Command Sequence】 命令序列详见表格。 在命令序列写入之后,会有50us的超时等待。在这超时期间,其它的扇区地址与擦除命令可以写入。命令之间的时间不能超过50秒,否则后来的一次擦除操作 将被执行,擦除操作启动。为了保证所有的命令得到执行,强列建议写命令期间关闭中断。如果两个指令间的间隔小于50us,就没有必要再去检查DQ3。 在50us内,接受到Sector erase或Erase Suspend命令,设备就重回到read array data. 系统可以通过检测DQ3来探查扇区是否超时。在WE#上升沿后就开始计算超时。 【Erase Suspend/Erase Resume Commands】 这个命令用于终止扇区擦除操作,并让设备回到read array data模式。在扇区擦除50us超时期间有效。正在进行擦除与编程操作过程中,这个命令是被忽略的。 二、读取状态 【DQ7: Data# Polling】 在擦除操作过程中,DQ7输出0。当完成了擦除操作或进入Erase suspend状态,DQ7输出1。 在完成擦除操作之后,如果所有要擦除的都处于保护状态,那么DQ7会在大约100us时间内处于激活状态,然后设备进行read array data状态。如果只是部分被保护,那么设备只擦除未保护的扇区,忽略被保护的。 【DQ6: Toggle Bit I】 【DQ2: Toggle Bit II】 【DQ5: Exceeded Timing Limits】 执行擦除或编程操作不成功超时位。 通常会出现在编程时试图对已是0的位置1操作,只有擦除操作才能将0改变成1。 在这种情况下,操作停止,DQ5上产生1。 只有reset命令才能使设备回到read array data模式。 【DQ3: Sector Erase Timer】 扇区擦除超时是否开始执行标志位。 当写入扇区擦除命令序列后,设备会有50us的超时时间,等待连续命令。当50us的等待超时结束,DQ3就会被置1,然后设备就开始执行擦除操作。 在写入完扇区擦除命令序列后,主机应该读取DQ7或DQ6来确保设备是否接受命令。然后再读取DQ3,如果该位为1,说明扇区擦除操作已经开始,所有的命令都会在执行期间被忽略,直到完成。如果DQ3=0,说明还没有超时,设备还能接收更多的扇区擦除命令。 【RY/BY#: Ready/Busy#】 这些引脚是开漏输出的,当正在执行擦除或编程时,该电平Low。当完成了操作之后,电平为高。
【Unity3D 灵巧小知识点】 ☀️ | Unity中如何使用代码切换场景 Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
李名赫 博主从事的是物联网行业,目前在某知名智能家居科技公司担任家庭智能中心研发主管。欢迎交流!
这个命令可以终止已进行但还没有执行的擦除或写入操作,使之回到Read array data模式。一旦擦除或写入操作开始,reset命令只有在擦除命令完成之后才生效。 【Autoselect Command Sequence】
这个命令可以让主机访问到设备的生产商、设备码、扇区的是否有写保护。表4里已列出所有的命令。 Autoselect Command Sequence由两个unlock周期开始,然后进入autoselect模式。之后系统可以无限次数地读任何地址而不但需要再次执行命令串。 XX00H -- 生产厂家
XX01H -- 设备码
每个扇区地址+04H -- 该扇区的保护状态,1:保护,0:未保护 【Word/Byte Program Command Sequence】 系统可以通过BYTE#引脚决定写入的是字还是字节。编程操作有4个总线周期操作:
(1)两个解锁序列
(2)要编程的地址
(3)要编程的数据
之后设备将自动进入编程操作,不再需要主控做任何操作。 当编程操作完成之后,设备自动进入Read array data模式,系统可以通过DQ7与DQ6来检测设备的状态。 在编程操作期间,任何编程操作都会被忽略。 值得注意的是:硬复位会立即终止编程操作。在硬复位之后必须重新启动编程操作。 编程操作可以跨越扇区边界的,一个位只能从0改写成1。只有擦除能使1变成0。 【Unlock Bypass Command Sequence】 unlock bypass 功能允许系统写入数据比Standard更快些。 unlock bypass命令触发由两个unlock周期。第3个写入的bypass command, 20h。设备就进入了bypass模式。
第一个周期就是unlock bypass program命令, A0h。第二个周期包括Address与Data。附加数据。 在unlock bypass模式期间,只有Unlock bypass program与Unlock bypass reset命令是可用的。
想要退出unlock bypass模式,系统发起两个unlock bypass reset命令序列,每一个写入90H,第二周期数据为00H。地址已无关重要,命令执行之后设备回到read array data模式。 【Chip Erase Command Sequence】 命令序列详见表格。 在擦除期间,其它操作都会被忽略。但是硬复位会立即终止擦除操作。 系统可以通过检查DQ7,DQ6,DQ2,或RY/BY#。 【Sector Erase Command Sequence】 命令序列详见表格。 在命令序列写入之后,会有50us的超时等待。在这超时期间,其它的扇区地址与擦除命令可以写入。命令之间的时间不能超过50秒,否则后来的一次擦除操作 将被执行,擦除操作启动。为了保证所有的命令得到执行,强列建议写命令期间关闭中断。如果两个指令间的间隔小于50us,就没有必要再去检查DQ3。 在50us内,接受到Sector erase或Erase Suspend命令,设备就重回到read array data. 系统可以通过检测DQ3来探查扇区是否超时。在WE#上升沿后就开始计算超时。 【Erase Suspend/Erase Resume Commands】 这个命令用于终止扇区擦除操作,并让设备回到read array data模式。在扇区擦除50us超时期间有效。正在进行擦除与编程操作过程中,这个命令是被忽略的。 二、读取状态 【DQ7: Data# Polling】 在擦除操作过程中,DQ7输出0。当完成了擦除操作或进入Erase suspend状态,DQ7输出1。 在完成擦除操作之后,如果所有要擦除的都处于保护状态,那么DQ7会在大约100us时间内处于激活状态,然后设备进行read array data状态。如果只是部分被保护,那么设备只擦除未保护的扇区,忽略被保护的。 【DQ6: Toggle Bit I】 【DQ2: Toggle Bit II】 【DQ5: Exceeded Timing Limits】 执行擦除或编程操作不成功超时位。 通常会出现在编程时试图对已是0的位置1操作,只有擦除操作才能将0改变成1。 在这种情况下,操作停止,DQ5上产生1。 只有reset命令才能使设备回到read array data模式。 【DQ3: Sector Erase Timer】 扇区擦除超时是否开始执行标志位。 当写入扇区擦除命令序列后,设备会有50us的超时时间,等待连续命令。当50us的等待超时结束,DQ3就会被置1,然后设备就开始执行擦除操作。 在写入完扇区擦除命令序列后,主机应该读取DQ7或DQ6来确保设备是否接受命令。然后再读取DQ3,如果该位为1,说明扇区擦除操作已经开始,所有的命令都会在执行期间被忽略,直到完成。如果DQ3=0,说明还没有超时,设备还能接收更多的扇区擦除命令。 【RY/BY#: Ready/Busy#】 这些引脚是开漏输出的,当正在执行擦除或编程时,该电平Low。当完成了操作之后,电平为高。
【Unity3D 灵巧小知识点】 ☀️ | Unity中如何使用代码切换场景 Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
李名赫 博主从事的是物联网行业,目前在某知名智能家居科技公司担任家庭智能中心研发主管。欢迎交流!
相关文章
- 【Spring Boot】Spring Boot之使用ImportSelector类实现动态注册Bean
- Spring Boot [使用 Druid 数据库连接池]
- 调试U-Boot笔记(二)
- Spring Boot Serverless 实战 | Serverless 应用的监控与调试
- 用Spring Boot颠覆Java应用开发
- Spring Boot 2.0 的快速入门(图文教程)
- Spring Boot 整合 Redis 实现缓存操作
- 使用heroku java buildpack 发布spring boot jar到deis云平台
- 学习 Spring Boot:(二十九)Spring Boot Junit 单元测试
- Spring Boot 项目打包问题集锦: jar依赖多出boot-inf 文件夹问题/多环境动态打包/缺少BOOT-INF目录问题等...
- spring boot 连接mysql mongodb with jpa
- 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件
- u-boot TFTP: 'Access violation' (2)
- Spring Boot保护Web应用程序
- Spring Boot Admin的介绍及使用
- 【java】Spring Boot --深入SpringBoot注解原理及使用
- Why does PXE boot with grub2 and UEFI fails with error “File not found“ ?