四、SPI——2、NOR FLASH

news2024/11/15 19:51:51

一、NOR FLASH介绍

        FLASH是常用的用于储存数据的半导体器件,它具有容量大,可重复擦写、按“扇区/块”擦除、掉电后数据可继续保存的特性。

        FLASH是有一个物理特性:只能写0,不能写1,写1靠擦除

        FLASH主要有NOR FlashNAND Flash两种类型,NOR和NAND是两种数字门电路。

二、NM25Q128 简介

        NM25Q128,串行闪存器件,属于NOR FLASH中的一种,容量为128 Mb。擦写周期可达10W次,可以将数据保存达20年之久。

        SPI数据传输时序:支持模式0(CPOL = 0 , CPHA = 0)和模式3(CPOL = 1, CPHA = 1)。

        数据格式:数据长度8位大小,先发高位,再发低位(MSB)。   

        传输速度:支持标准模式104M bit/s。

        原理图(战舰版,F103):

        

        CS : 片选信号输入。

        SO : 数据输出。

        WP : 写保护功能。

        HOLD : 暂停通讯。

        CLK : 时钟输入。

        SI : 数据输入。

三、NM25Q128存储结构

                                                           图1 NM25Q128存储结构图

        1 page = 1 byte * 256
        1 sector = 1 page * 16
        1 block = 1 sector * 16
        25Q128 = 1 block * 256

        地址范围(0x0 ~ 0xFFFFFF)

        25Q128存储容量128M bit,即16M Byte(128M bit / 8 = 16M Byte)

四、NM25Q128常用指令、读/擦除/写 步骤

① 常用指令:

指令(HEX)

名称

作用

0X06

写使能

写入数据/擦除之前,必须先发送该指令

0X05

SR1

判定FLASH是否处于空闲状态,擦除用

0X03

读数据

用于读取NOR FLASH数据

0X02

页写

用于写入NOR FLASH数据,最多写256字节

0X20

扇区擦除

扇区擦除指令,最小擦除单位(4096字节)

② 写使能 Write Enable (06H)

        执行Page Program页写,Sector Erase扇区擦除,Block Erase块擦除,Chip Erase片擦除
Write Status Register写状态寄存器等指令前,需要写使能。

                                                          图2  写使能时序图

其中,SI 从机输入。SO从机输出,CS片选。

③ 读状态寄存器Read Status Reg1(05H)

05h,SR1,状态寄存器1。

35h,SR2,状态寄存器2。

15h,SR3,状态寄存器3。

④ 读时序 Read Data Bytes(03H)

 发送24位地址,需要分3次发送,因为NM25Q128支持8个字节。

如果一直要读取数据,则需要一直发送脉冲(SCLK)。

⑤ 页写时序 PageProgram (02H)

 

页写命令最多可以向FLASH传输256个字节的数据

⑥ 扇区擦除时序 Sector Erase(20H)

        FLASH存储器的特性决定了它只能把原来为“1”的数据位改写成“0”,而原来为“0”的数据位不能直接改写为“1”。       

 ⑦ 状态寄存器表

BUSY位 指示当前状态     0:空闲状态(硬件自动清除)          1:当前处于忙碌状态

WEL位   执行WriteEnable指令该位为1,可以页写/扇区or块or片擦除/写状态寄存器         
             0:写禁止,不能页编程/扇区or块or片擦除/写状态寄存器

⑧ NM25Q128读操作步骤

1、发送读命令(0X03)

2、发送0X03读数据指令

3、读取数据,主机发送空字节(0XFF),给从机脉冲,从机发送数据,主机读取数据,支持连续读

⑨ NM25Q128擦除扇区步骤

1,发送写使能命令(0X06)

2,等待NOR FLASH空闲

3,发送擦除扇区命令(0X20)

4,发送地址(24位),发送要擦除的字节地址,自动擦除该地址所在扇区

5,等待空闲,等待擦除完成

⑩ NM25Q128写操作步骤(极简)

1,擦除扇区(0X20)

2,发送写使能命令(0X06)

3,发送页写命令(0X02),发送页写命令后,一次最多写入256字节

4,发送要写入的地址(24位)

5、发送要写入的数据,一次最多写入256字节

6、等待写入完成(等待空闲状态)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2101256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE初阶】JVM内存划分和类加载过程以及垃圾回收

目录 🌲内存划分 🚩堆(线程共享) 🚩栈 🚩元数据区 🍃类加载过程 🚩双亲委派模型 🎄垃圾回收机制(GC) 🚩找到谁是垃圾(不被继续…

纷享销客CRM渠道分销之多维度数据分析介绍

预设渠道报表驾驶舱 基于渠道分销场景,系统预设了一个全面的渠道订货数据驾驶舱,旨在通过直观的数据分析,为企业提供深度的市场洞察和业务决策支持。该驾驶舱提供渠道订货的概览,快速把握整体订货动态。 渠道订货波动分析&#…

Scratch 角色绘制

引言 在Scratch这款强大的可视化编程环境中,不仅可以通过编程来实现各种有趣的互动项目,还能利用内置的绘图编辑器来创造独一无二的角色。本文将引导你如何使用Scratch中的绘图编辑器,绘制出属于你自己的简单图形角色。 准备工作 首先&#…

【数据分享】2000—2023年我国250米分辨率逐月植被覆盖度(FVC)栅格数据

植被覆盖度(Fractional Vegetation Cover,简称FVC)是指植被(包括叶、枝、茎)在水平地面的垂直投影面积占研究区总面积的百分比。植被覆盖度是生态学、地理学、气候学等多个学科研究的基础数据,对于理解生态…

多线程——创建

线程的创建与启动 Java中,所有的线程对象都必须是Thread类或其子类的实例。 三种创建方式: 集成Thread类创建线程类 继承Thread类,重写run方法,run方法的方法体代表线程需要完成的任务,称为线程执行体。 创建子类的实…

鸿蒙开发5.0【Code Linter实现代码检查】

Code Linter针对ArkTS/TS代码进行最佳实践/编程规范方面的检查。 检查方法: 编辑器自带Code Linter。 在已打开的代码编辑器窗口单击右键点击Code Linter,或在工程管理窗口中鼠标选中单个或多个工程文件/目录,右键选择Code Linter执行代码检…

2024年医疗器械企业5款CRM系统对比评测

医疗器械行业是一个多学科交叉、知识密集型、资金密集型的高新技术产业,进入门槛较高,产品种类繁多,技术含量较高。 随着医改的深入推进,医疗器械集采常态化成为行业新常态,中国的医疗器械行业不仅面临着巨大的市场潜…

zabbix6.4配置监控k8s 1.28集群

zabbix6.4配置监控rke2 rancher k8s集群 1. 说明1.1 为什么要使用zabbix6.x监控k8s1.2 部署环境1.3 部署前的一些问题 2. 使用helm3部署zabbix proxy和zabbix agent2.1 添加仓库2.2 修改配置2.3 部署2.4 确认部署情况 3. 在zabbix web页面配置连接zabbix proxy3.1 添加Proxy代理…

kali (linux) 配置windows远程桌面(mstsc.exe)连接

Kali 安装 tightvncserver 一、软件说明 1) tightvncserver是一个轻量级,只能建立桌面,不能查看TTY7/TTY1正在显示的桌面,但x11vnc可以,相比x11vnc安全传输差一些。反之,x11 vnc:安全传输较好,但占用资源比 tightvncs…

PB级内存计算项目实战-富华保险

一、保险项目的基本介绍 项目名称:富华阳光人寿保险 1. 行业背景介绍 在保险行业中,最为核心技术就是精算,精算简单来说就是根据人的年龄来计算应交保费问题,通过精算,让整个保险行业更加专业化,精细化 从而取代之间依靠经验判断的方式 精算到目前为止,并不仅仅计算保费,主要包…

Leetcode 1143. 最长公共子序列 记忆化搜索 优化 C++实现

Leetcode 1143. 最长公共子序列 问题:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对…

一体化智能电动窗帘:开启智能生活新时尚

史新华 在科技不断进步的今天,人们对生活品质的追求也越来越高。电动窗帘作为智能家居的重要组成部分,以其便捷、智能、时尚的特点,正逐渐走进千家万户。 添加图片注释,不超过 140 字(可选) 一、电动窗帘…

KEYSIGHT U2020 X系列 USB峰值和均值功率传感器

​ _是德(KEYSIGHT) _ U2020 X系列 USB峰值和均值功率传感器 苏州新利通仪器仪表 U2020 X 系列功率传感器得到 Keysight BenchVue 软件的支持。使用 BenchVue 软件,您无需编程便可轻松控制功率计记录数据,并以各种形式显示测量结果。 只需将传感器…

AI大模型与量子纠缠理论的结合,以及相关应用思考

大家好,我是微学AI,今天给大家介绍一下AI大模型与量子纠缠理论的结合,以及相关应用思考。将大模型(LLM)的基本原理与量子纠缠理论相结合是一个高度抽象的概念。我们首先需要理解这两个领域的基本原理,然后探…

#ARM开发 笔记

课程介绍 ARM开发 --> Linux移植 --> 驱动开发 前后联系:ARM和系统移植为驱动开发学习做准备工作 所需知识:C语言基础及STM32需要的硬件知识 学习方法 学习流程、思想和解决问题的方法即可 知道驱动的基本框架以及基本开发要求 底层课程导学 接口技…

NTFS安全权限和文件共享

一.常见文件系统 NTFS 描述: Windows最常使用的文件系统(New Technology File System)微软公司开发的一种专用于 Windows 操作系统的文件系统。 特点: 效率性 可以提高磁盘的读写性能; 可靠性 加密文件系统访问控制列…

Vue组件:使用Prop实现父组件向子组件传递数据

1、Prop 基本用法 由于组件实例的作用域是孤立的,因此子组件的模板无法直接应用父组件的数据。如果想要通过父组件向子组件传递数据,就需要定义 Prop。Prop 是父组件用来传递数据的一个自定义属性,这样的属性需要定义在组件选项对象的 props…

并发集合(二):CopyOnWriteArrayList

1、CopyOnWriteArrayList介绍 CopyOnWriteArrayList 是一个线程安全的ArrayList。 CopyOnWriteArrayList 是基于Lock锁和线程副本的形式来保证线程安全的, 在写数据时,先获取Lock锁,然后复制一个副本,添加数据时&…

Delphi7实现Json对象的序列化与反序列化

在高版本的 Delphi 中,实现序列化和反序列化非常简单。然而,在 Delphi 7 中,这个过程仍然需要一些额外的努力。为了简化这个问题,我花了一些时间封装了一个支持序列化和反序列化的 JSON 解析库。 type{$M}TStartupParameters cla…

MySQL的服务器与客户端:架构解析与实践

文章目录 MySQL的服务器和客户端服务端处理客户端请求连接管理解析与优化查询缓存语法解析查询优化 存储引擎不同的存储引擎查看支持的存储引擎为不同的表设置存储引擎 MySQL是一个广泛使用的开源关系数据库管理系统,其核心架构由服务器端和客户端两大部分组成。本文…