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

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

3天内不再提示

先楫hpm6000的SPI外设使用四线模式操作读写华邦flash

先楫半导体HPMicro 来源:RCSN嵌入式 2023-07-12 13:51 次阅读

一、概述

在操作相关flash器件的时候,需要先发指令再读数据,或者先发指令再发地址再发dummy再读相关数据。而先楫的SPI控制器中,SPI传输包括了命令、地址和数据字段,提供了专用的寄存器来存储这些字段,不需要开发者自行去填充。本文使用hpm6200evk开发板,flash器件是华邦的W25Q64JV。使用hpm_sdk进行开发。

SPI四线模式,统称也就QSPI。

本文是作者在使用先楫的SPI调试flash器件的心得,仅仅作为参考。

二、开发流程

(一)外设引脚初始化

需要初始化下SPI时钟,由于SDK使用的是单线常规模式的SPI,所以引脚上我们还需要初始化IO2和IO3两个引脚。

e2df2cb0-2073-11ee-962d-dac502259ad0.png

e2f48876-2073-11ee-962d-dac502259ad0.png

(二)SPI模式初始化

华邦的W25Q64JV使用的SPI模式是mode0或者mode3。这里使用mode0。可以使用sdk的api接口spi_format_init进行初始化

e314c050-2073-11ee-962d-dac502259ad0.png

e3332ffe-2073-11ee-962d-dac502259ad0.png

(三)SPI频率

先楫的SPI SCLK可以达到80M,这里由于是杜邦线接的flash模块,波形会存在失真,使用该flash可以达到50M的QSPI速度。

使用SDK的spi_master_timing_init api接口进行SPI频率调整。

(四)指令操作(单线模式SPI操作)

1. 华邦相关flash都会有手册,这里使用了SDK的spi_transfer api接口封装了一个指令操作的API。下面根据这个api配合flash器件的手册命令进行说明。

比如使用90命令读取制造商设备ID的时候,使用单线模式,需要先发指令,再发两个dummy,之后就是读取。

e34da55a-2073-11ee-962d-dac502259ad0.png

那么使用spi_transfer赋值以下结构体

e36d6cd2-2073-11ee-962d-dac502259ad0.png

cmd_enable:使能命令段传输

addr_enable:使能地址段传输

addr_pahase_fmt:选择是单线模式还是四线模式传输地址

trans_mode:选择的传输模式,比如同时读写,仅写,仅读,写读,读写,写填充读,读填充写等

dmmy_cnt:填充的数量

依靠上述说明,可以使用单线模式,传输模式为填充再读。填充数量为2

e38a99e2-2073-11ee-962d-dac502259ad0.png

通过波形查看,是没什么问题的。

e3a4ac42-2073-11ee-962d-dac502259ad0.png

从以下可知,单线模式收发指令是没什么问题的。

e3d29260-2073-11ee-962d-dac502259ad0.png

(五)读写操作(四线模式QSPI操作)

这里举例读操作,读操作有好几条指令。这里举例使用Fast Read Quad I/O指令,也就是EBh指令。这里需要先发指令,再发地址(地址使用四线模式),再发三个填充dummy,之后再读。

e3e3619e-2073-11ee-962d-dac502259ad0.png

e3fd7886-2073-11ee-962d-dac502259ad0.png

擦除指令,可写入指令跟以上类似,这里测试sector0的0页地址。

e419dc24-2073-11ee-962d-dac502259ad0.png

对0页的256字节进行1到256赋值,然后再读取,这时候会是0~255 0变化。查看波形可以知道,读写正常。

e439cdf4-2073-11ee-962d-dac502259ad0.png

三、总结

先楫的spi外设支持常规单线SPI,双线duad spi,四线quad spi。有着专用的操作flash的寄存器。极大方便开发相关flash器件。

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

    关注

    112

    文章

    15223

    浏览量

    171191
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117721
  • FlaSh
    +关注

    关注

    10

    文章

    1550

    浏览量

    146646
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89600
  • 先楫半导体
    +关注

    关注

    9

    文章

    180

    浏览量

    1815

原文标题:开发者分享|先楫hpm6000的SPI外设使用四线模式操作读写华邦flash

文章出处:【微信号:HPMicro,微信公众号:先楫半导体HPMicro】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    HPM5361EVK开发板试用体验】认识和了解HPM5361EVK开发板

    内核通用微控制器。 HPM5361EVK是基于HPM5300系列高性能RISC-V内核MCU,的一款开发板。支持双精度浮点运算及强大的DSP扩展,主频480MHz,内置1 MB
    发表于 12-24 22:39

    HPM5361EVK开发板试用体验】HPM5361EVK开发板初体验

    HPM5361EVK是基于HPM5300系列高性能RISC-V内核MCU的一款开发板。支持双精度浮点运算及强大的DSP扩展,主频480MHz,内置1 MB
    发表于 12-24 22:58

    半导体HPM6750EVKMINI评估板免费试用

    国产高性能MCU来啦,本次给大家带来HPM6000系列旗舰产品HPM6750,它采用双RISC-V内核,主频高达816MHz,创下了高达9220 CoreMark™和 4651
    发表于 04-12 10:40

    半导体重磅推出HPM6300系列—— 高性能,低功耗,高性价比

    6700高性能的特点,在成本,功耗,DSP等各个方面做了进一步的优化,并推出了QFP封装,进一步扩大MCU产品在市场上的覆盖范围。”半导体CEO曾劲涛说,“整个
    发表于 05-07 17:16

    如何使用Segger Embedded Studio开发HPM6750?

    进行调试,Segger J-Link也已经官方支持HPM6000系列的芯片,只是该开发板没有提供标准的JTAG调试接口,因此需要客户自己通过焊接引出对应的调试引脚来连接J-Link,具体
    发表于 07-26 14:48

    半导体HPM6700系列正式合入OpenHarmony社区主干

    ,面向高性能电机控制和数字电源的运动控制系统,以及信息安全模块如实时加解密和安全启动。采用开源RISC-V,开源RTOS,拥有架构和外设的自主产权。自上市以来,HPM6750就因高
    发表于 11-11 10:03

    实现创新升级替代,半导体助力中国MCU “快道超车”

    更加智能、复杂的运算。MCU的主频快速提升,从一两百兆提升到800MHz及以上,甚至跨入GHz领域。的半导体的HPM6000 系列在40纳米工艺上实现了GHz的突破,并在多核、FPU、DSP等领域
    发表于 04-10 18:39

    请问HPM6000系列MCU如何使用硬件DSP单元?

    HPM6000系列MCU如何使用硬件DSP单元?
    发表于 05-26 06:18

    HPM6000系列微控制器片上闪存使用指南

    HPM6000系列MCU片上Flash使用指南
    发表于 06-01 06:20

    HPM6000系列微控制器片上闪存使用指南

    HPM6000系列MCU片上Flash使用指南
    发表于 06-02 08:54

    hpm6000SPI外设使四线模式操作读写flash

    这些字段,不需要开发者自行去填充。本文使用hpm6200evk开发板,flash器件是的W25Q64JV。使用hpm_sdk进行开发。
    发表于 06-28 20:01

    HPM6000系列微控制器的BOOT 模式的说明以及相应的外部电路设计建议

    1.简介HPM6000系列MCU目前提供了不同的启动方式,方便客户在研发生产等不同阶段使用。本文提供了HPM6000系列微控制器的BOOT模式的说明以及相应的外部电路设计建议。2.BOOT模式
    的头像 发表于 07-21 15:15 1052次阅读
    <b class='flag-5'>HPM6000</b>系列微控制器的BOOT <b class='flag-5'>模式</b>的说明以及相应的外部电路设计建议

    基于SPI配合DMA实现理论速度性能

    在《先楫hpm6000SPI外设使四线模式操作读写
    的头像 发表于 07-21 10:17 2100次阅读
    基于<b class='flag-5'>SPI</b>配合DMA实现理论速度性能

    细说SPI主机发送性能最大化实现方案

    一、背景在《先楫hpm6000SPI外设使四线模式操作
    的头像 发表于 07-31 23:03 1457次阅读
    细说<b class='flag-5'>SPI</b>主机发送性能最大化实现方案

    先楫hpm6000SPI外设使四线模式操作读写华邦flash

    这些字段,不需要开发者自行去填充。本文使用hpm6200evk开发板,flash器件是华邦的W25Q64JV。使用hpm_sdk进行开发。SPI四线
    的头像 发表于 07-31 23:03 646次阅读
    先楫<b class='flag-5'>hpm6000</b>的<b class='flag-5'>SPI</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'>flash</b>