QSPI Flash存储控制器(DMA外设控制器)

本文详细介绍了QSPIFlash存储控制器如何通过DMA接口与AHB总线上的DMA控制器进行数据传输。DMA接口在间接操作模式下工作,用于内部SRAM和AHB数据总线之间的数据交换。两个独立的DMA接口分别服务于读写操作,传输过程中涉及流控、水印寄存器和多种信号交互。此外,还讨论了配置DMA接口传输长度以及如何根据SRAM容量触发DMA请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QSPI Flash存储控制器(DMA外设控制器)

        这里说的DMA外设控制器,并不是AHB总线上的DMA控制器。QSPI Flash存储控制器通过DMA外设控制器与AHB总线上的DMA进行相关SRAM状态和流控的信息通信。为了明确区别,我们把QSPI Flash存储控制器这边的DMA外设控制器,称为“DMA接口”;而将AHB总线上的DMA称为“DMA控制器”。

        ***   AHB总线上的DMA控制是指,CoreLink DMA控制器DMA-330核心。  ***

        DMA接口只能在间接操作模式下,用于内部SRAM和AHB数据总线之间的数据传输。有两个相同DMA接口,一个用于间接读访问控制器;一个用于间接写访问控制器。对于间接读访问控制器,当数据从Flash传输到内部SRAM之后,QSPI控制器触发DMA请求;对于间接写访问控制器,传输命令一触发,QSPI控制器就立即触发DMA请求,并且一直持续DMA请求直到整个间接写传输完成。DMA过程的流控与水印寄存器有关。

信号名方向说明
drtype[1:0]DMA接口-->DMA控制器

请求DMA传输类型(single,burst),

另外还有一个flush操作

datype[1:0]DMA控制器-->DMA接口确认DMA传输类型
drlastDMA接口-->DMA控制器最后一次DMA请求
drvalidDMA接口-->DMA控制器请求DMA
drreadyDMA控制器-->DMA接口确认DMA请求
davalidDMA控制器-->DMA接口DMA完成
dareadyDMA接口-->DMA控制器确认DMA完成

  

  1. DR总线,drvalid和drready两根信号线,用于DMA接口向DMA控制器请求DMA操作,还用于DMA接口向DMA控制器确认Flush请求。
  2. DA总线,davalid和daready两根信号线,用于DMA控制器向DMA接口汇报数据传输完成,还用于DMA控制器向DMA接口请求flush操作。

        DMA接口配置寄存器(0x20),定义了在burst类型下一个burst传输的字节长度,定义了在single类型下一个single传输的字节长度。这两个长度应该都是2的幂次。       

        一旦触发间接操作,DMA接口就获知了传输的数据量。DMA接口将这些数据分成一组组的burst或一组组的single,最后剩余数据组成一组single。软件来保证最好没有剩余数据。

        举个例子,如果SRAM长度为256字节,需要从Flash设备读取的数据量为512字节,驱动将DMA的burst传输长度设置为256字节,那么当第一个256字节在SRAM中时,DMA接口就会触发DMA请求。只有当第二个256字节传输到SRAM中,才会触发第二次DMA;因为SRAM只有256字节,也就是说在启动第二次DMA之前必须取空SRAM。

        DMA接口还可以获知SRAM填充水平。

       

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值