0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞萨RA系列FSP库开发实战指南之QSPI控制FLASH的指令

瑞萨嵌入式小百科 来源:野火电子 2026-03-03 10:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

23.2

控制FLASH的指令

对主机端(RA6M5)来说,只是它遵守最基本的QSPI通讯协议发送出的数据,但在设备端(FLASH 芯片)把这些数据解释成不同的意义,所以才成为指令。

查看FLASH芯片的数据手册《AT25SF321B》,可了解各种它定义的各种指令的功能及指令格式,见表23‑2。

表23‑2FLASH常用芯片指令表

(摘自规格书《AT25SF321B》)

910d5bec-15ed-11f1-90a1-92fbcf53809c.png

该表中的第一列为指令名,第二列为指令编码,第三至第N列的具体内容根据指令的不同而有不同的含义。其中带括号的字节参数,方向为FLASH向主机传输,即命令响应,不带括号的则为主机向FLASH传输。表中“A0~A23”指FLASH芯片内部存储器组织的地址;“M0~M7”为厂商号(MANUFACTURER ID);“ID0-ID15”为FLASH芯片的ID;“dummy”指该处可为任意数据;“D0~D7”为FLASH内部存储矩阵的内容。

在FLSAH芯片内部,存储有固定的厂商编号(M7-M0)和不同类型FLASH芯片独有的编号(ID15-

ID0),见表23‑3。

表23‑3 FLASH数据手册的设备ID说明

91f9f6d2-15ed-11f1-90a1-92fbcf53809c.png

通过指令表中的读ID指令“JEDEC ID”可以获取这两个编号,该指令编码为“9Fh”,其中“9Fh”是指16进制数“9F”(相当于C 语言中的0x9F)。紧跟指令编码的三个字节分别为FLASH芯片输出的“(M7-M0)”、“(ID15-ID8)”及“(ID7-ID0)”。

此处我们以该指令为例,配合其指令时序图进行讲解,见下图。

92a9bd60-15ed-11f1-90a1-92fbcf53809c.png

主机首先通过MOSI线向FLASH芯片发送第一个字节数据为“9Fh”,当FLASH芯片收到该数据后,它会解读成主机向它发送了“JEDEC指令”,然后它就作出该命令的响应:通过MISO线把它的厂商ID(M7-M0)及芯片类型(ID15-0)发送给主机,主机接收到指令响应后可进行校验。常见的应用是主机端通过读取设备ID来测试硬件是否连接正常,或用于识别设备。

对于FLASH芯片的其它指令,都是类似的,只是有的指令包含多个字节,或者响应包含更多的

数据。

实际上,编写设备驱动都是有一定的规律可循的。首先我们要确定设备使用的是什么通讯协议。

如上一章的EEPROM使用的是I2C,本章的FLASH 使用的是SPI。那么我们就先根据它的通讯协议,选择好RA6M5的硬件模块,并进行相应的I2C或SPI模块初始化。

接着,我们要了解目标设备的相关指令,因为不同的设备,都会有相应的不同的指令。如EEPROM中会把第一个数据解释为内部存储矩阵的地址(实质就是指令)。而FLASH则定义了更多的指令,有写指令、读指令、读ID指令等等。最后,我们根据这些指令的格式要求,使用通讯协议向设备发送指令,达到控制设备的目标。

为了方便使用,我们把FLASH芯片的常用指令编码使用宏来封装起来,后面需要发送指令编码

的时候我们直接使用这些宏即可。

列表1:FLASH指令编码表

左右滑动查看完整内容

/*FLASH 常用命令*/
#defineWriteEnable 0x06
#defineWriteDisable 0x04
#defineReadStatusReg 0x05
#defineWriteStatusReg 0x01
#defineReadData 0x03
#defineFastReadData 0x0B
#defineFastReadDual 0x3B
#definePageProgram 0x02
#defineBlockErase 0xD8
#defineSectorErase 0x20
#defineChipErase 0xC7
#definePowerDown 0xB9
#defineReleasePowerDown 0xAB
#defineDeviceID 0xAB
#defineManufactDeviceID 0x90
#defineJedecDeviceID 0x9F
/* 其它*/
#definesFLASH_ID 0x1F8701
#defineDummy_Byte 0xFF

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1749

    浏览量

    155551
  • 瑞萨
    +关注

    关注

    37

    文章

    22482

    浏览量

    90903
  • 指令
    +关注

    关注

    1

    文章

    623

    浏览量

    37550
  • QSPI
    +关注

    关注

    0

    文章

    55

    浏览量

    13370

原文标题:控制FLASH的指令——瑞萨RA系列FSP库开发实战指南(78)

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA系列MCU FSP开发实战指南(09)存储器映射

    3.3 存储器映射 前文所述,寄存器与RAM、FLASH一样都是芯片内部的一种存储设备。那么,当我们需要访问它们的时候,我们需要知道它们的存储地址。 3.3.1 存储器映射表 如下图所示为RA
    的头像 发表于 04-16 15:52 1609次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b>MCU <b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b>(09)存储器映射

    RA系列FSP开发实战指南I2C读写EEPROM实验

    使用官方提供的FPS进行编程,官方提供的FPS具有方便、快捷、简洁的特性。
    的头像 发表于 01-27 10:02 3447次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C读写EEPROM实验

    RA系列FSP开发实战指南QSPI通讯协议简介

    QSPI是Queued SPI的简写,是Motorola公司推出的SPI接口的扩展,比SPI应用更加广泛。在SPI协议的基础上,Motorola公司对其功能进行了增强,增加了队列传输机制,推出了队列
    的头像 发表于 03-03 10:56 3355次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b><b class='flag-5'>QSPI</b>通讯协议简介

    RA系列FSP开发实战指南QSPI读写外部Flash芯片实验

    因为本章节的QSPI Flash相关实验例程需要用到板子上的串口功能,因此我们可以直接以前面的“19_UART_Receive_Send”工程为基础进行修改。
    的头像 发表于 03-03 13:57 4137次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b><b class='flag-5'>QSPI</b>读写外部<b class='flag-5'>Flash</b>芯片实验

    e2studio(1)----芯片搭建FSP环境

    视频教学 样品申请 请勿添加外链 e2studio软件 e2studio是的集成开发环境,FSP 提供了众多可提高效率的工具,用于开发
    发表于 09-30 15:28

    RA6E2地奇星开发板试用】开发板介绍及环境搭建

    物联网、工业控制、智能硬件等场景。 核心参数一览 项目 规格 主控芯片 R7FA6E2BB3CNE( RA6E2 系列) 内核 Arm
    发表于 12-22 00:40

    RA4系列开发板体验】开发环境搭建和新手点灯指南

    RA4系列开发板体验】开发环境搭建和新手点灯指南
    发表于 11-24 22:54

    RA4系列开发板体验】10. 我的试用总结

    之前发帖:【RA4系列开发板体验】1. 新建工程+按键控制LED【
    发表于 12-10 22:34

    RA4系列开发板体验】体验过程

    拿到板子之后,做了几个实验过程,过程如下:1、在好奇心驱动下,逐步接触;参照网上的实例,学习开发环境一、开箱验货二、搭建环境参考“ 【
    发表于 12-18 16:20

    【野火启明6M5开发板体验】开箱+认识开发板+资料

    按键检测29. WiFi——模块通讯板尺寸:3、资料:*附件:[野火EmbedFire]《RA系列FSP
    发表于 12-20 23:28

    e2studio(1)----芯片搭建FSP环境

    e2studio是的集成开发环境,FSP 提供了众多可提高效率的工具,用于开发针对
    的头像 发表于 11-14 17:08 3151次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>e2studio(1)----<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>芯片<b class='flag-5'>之</b>搭建<b class='flag-5'>FSP</b>环境

    【有奖直播预报名】电子RA系列产品开发工具FSP4.0.0新特性介绍

    为使用电子RA系列ARM微控制器的嵌入式系统设计提供简单易用且可扩展的高质量软件。 直播主题
    的头像 发表于 11-22 12:20 1534次阅读

    【视频教程】RA单片机FSP开发(3)FSP架构-解释Blinky架构[上]

    干货分享 前篇回顾 【视频教程】RA单片机FSP开发(1)环境搭建(带RASC) 【视频教程】
    的头像 发表于 12-06 12:15 1929次阅读

    使用e² studio FSP基于RA2E1定时器配置PWM输出

    使用e² studio FSP基于RA2E1定时器配置PWM输出
    的头像 发表于 08-01 00:13 2016次阅读
    使用<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>e² studio <b class='flag-5'>FSP</b>基于<b class='flag-5'>RA</b>2E1定时器配置PWM输出

    电子RA系列控制器的可扩展性强的配置软件包 (FSP)安装下载与使用指南

    电子RA系列控制器的可扩展性强的配置软件包 (FSP)安装下载与使用
    的头像 发表于 06-11 17:21 1895次阅读