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

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

3天内不再提示

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

先楫半导体HPMicro 2023-07-31 23:03 次阅读

一、概述

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

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

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


二、开发流程

(一)外设引脚初始化

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

67246da2-2fb3-11ee-bbcf-dac502259ad0.png

673afab8-2fb3-11ee-bbcf-dac502259ad0.png

(二)SPI模式初始化

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

67540166-2fb3-11ee-bbcf-dac502259ad0.png

67748bac-2fb3-11ee-bbcf-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,之后就是读取。

679f0314-2fb3-11ee-bbcf-dac502259ad0.png

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

67c4d1fc-2fb3-11ee-bbcf-dac502259ad0.png

cmd_enable:使能命令段传输

addr_enable:使能地址段传输

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

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

dmmy_cnt:填充的数量


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

680cb86e-2fb3-11ee-bbcf-dac502259ad0.png


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

683c4cf0-2fb3-11ee-bbcf-dac502259ad0.png

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

68674c52-2fb3-11ee-bbcf-dac502259ad0.png

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

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

688f82da-2fb3-11ee-bbcf-dac502259ad0.png

68c03efc-2fb3-11ee-bbcf-dac502259ad0.png

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

68fa38d2-2fb3-11ee-bbcf-dac502259ad0.png


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

6926a674-2fb3-11ee-bbcf-dac502259ad0.png

三、总结

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

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

    关注

    10

    文章

    1573

    浏览量

    147035
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1628

    浏览量

    90121
  • 外设
    +关注

    关注

    0

    文章

    30

    浏览量

    11593
收藏 人收藏

    评论

    相关推荐

    有奖提问!半导体HPM6E00系列新品发布会!!

    半导体HPM6E00新品预览”的活动,盛况空前。 自此之后一直收到大家的信息,问什么时候能够买到HPM6E00,这不,我们来了~ 半导体在现有的
    发表于 06-20 11:45

    半导体HPM5300EVK开发板试用作品手册免费下载

    产品介绍: HPM5300系列MCU是上海半导体推出的一款高性能RISC-V内核通用微控制器。 HPM5300系列RISC-VCPU主频高达480MHz,内置288KBSRA
    发表于 12-28 10:25

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

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

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

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

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

    HPM5361EVK开发板试用体验】-- HPM5361初体验
    发表于 12-11 10:27

    AD5412非标的三线SPI如何与标准的四线SPI通信?

    AD5412非标的三线SPI如何与标准的四线SPI通信,芯片手册中的时序不是标准的SPI时序,使用GPIO口可以模拟时序,但是如果使用标
    发表于 12-01 06:31

    HPM5361EVK开发板试用体验】1上手HPM5361

    和控制能力。 丰富的外设接口:HPM5300EVK提供了一系列的外设接口,包括ADC输入SMA接口、标准的电机控制及传感器接口、2x20
    发表于 11-28 12:18

    想找一个半导体的HPM6750 使用linux剪裁操作系统的例程

    想找一个半导体的HPM6750 使用linux剪裁操作系统的例程,SDK里给了FREERT的,没有LINUX的。哪里可以下载的到?
    发表于 10-25 16:18

    半导体HPM5361EVK开发板开发资料免费下载

    HPM5300EVK 提供了一系列 HPM5300 微控制器外设的接口,包括一个 ADC 输入 SMA 接口和一个标准的电机控制及传感器
    发表于 10-20 11:21

    【新品体验】HPM5361EVK开发板免费试用

    HPM5300EVK提供了一系列HPM5300微控制器外设的接口,包括一个ADC输入SMA接口和一个标准的电机控制及传感器接口。
    发表于 10-20 10:57

    HPM6000系列微控制器DSP/FFT使用介绍

    电子发烧友网站提供《HPM6000系列微控制器DSP/FFT使用介绍.pdf》资料免费下载
    发表于 09-19 15:21 1次下载
    <b class='flag-5'>HPM6000</b>系列微控制器DSP/FFT使用介绍

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

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

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

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

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

    操作相关flash器件的时候,需要先发指令再读数据,或者先发指令再发地址再发dummy再读相关数据。而先楫的SPI控制器中,SPI传输包括了命令、地址和数据字段,提供了专用的寄存器来
    的头像 发表于 07-12 13:51 826次阅读
    先楫<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>

    HPM6000系列芯片内部模拟地和数字地

    HPM6000系列芯片内部模拟地和数字地是隔离开的吗?
    发表于 07-10 17:49