全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

基于DWC2的USB驱动开发-DOEP接收相关的其他寄存器

时间:2023-07-19 10:50

人气:

作者:admin

标签: 驱动开发  USB  DWC2  寄存器 

导读:前面介绍了DOEP的DMA相关的寄存器,这一篇继续来讲剩下的寄存器。...

本文转走公众号欢迎关注

基于DWC2的USB驱动开发-DOEP接收相关的其他寄存器详解 (qq.com)

前言

前面介绍了DOEP的DMA相关的寄存器,这一篇继续来讲剩下的寄存器。

DOEPTSIZi

寄存器偏移地址0xB10 + i*20

RxDPID对于控制OUT端点表示可以接收连续的SETUP包数,只读

对于同步 OUT端点,用于表示最后接收的包的类型,只读。

图片

PktCnt软件写接收的包数,硬件处理完即指定的包数从RxFIFO搬运到用户存储之后,该值硬件更新递减,处理完变为0.

只有非Scatter/Gather DMA的DMA模式才有,Scatter/Gather DMA模式在描述符中定义

图片

传输数据的大小,软件写该寄存器表示有多少数据需要接收,硬件从RxFIFO搬运了指定数据到用户指定的DMA区域时产生接收完成中断,并且硬件更新该值,接收了多少数据就减少多少,减少到0说明接收完

只有非Scatter/Gather DMA的DMA模式才有,Scatter/Gather DMA模式在描述符中定义
图片

DOEPINTi

寄存器偏移地址

0xB08 + i*20

各中断状态位,写1清零
图片

其中XferCompl表示接收完,是最重要中断。其他中断状态,后面驱动讲接收中断处理时单独详讲。

比如如下OUT中断读出值为0x201即XferCompl=1和BNAIntr=1,即接收完成没有后续描述符需要处理了。
图片

DOEPCTLi

寄存器偏移地址0xB00 + i*20

几乎和DIEP对应的寄存器是对应的,参考上篇DIEP相关的介绍

图片

如下是OUT 中断时寄存器值

CTL寄存器值为0x48040,

接收中断时ENPena硬件自动清零了,

EPType为ISO端点

USBActEP=1表示端点是激活状态

包大小为0x40

图片

另外虽然是Scatter/Gather DMA模式实际我们观察DOEPTSIZi也是会递减变化的,

包括偏移0xB18 + i*20处的值(之前说的对于DOEP保留的对应DIEP的DTXFSTSi的寄存器)也是会递减的,只是手册描述保留了,实际IP应该还是有使用更新的,这个要去看IP的代码了,应该是不开放给用户。

总结

对于接收即OUT端点,

Scatter/Gather DMA模式就只需要配置两个寄存器

DOEPCTLi

DOEPDMAi为描述符链表的地址, 还需要填充描述符的内容

最后DOEPCTLi的EPEna置位,开始交给DMA去接收数据,此时软件不能再访问相关寄存器,必须等接收完成中断EPEna硬件清零,软件才能去访问。

非Scatter/Gather DMA模式,则还要配置DOEPTSIZi 和DOEPDMABi ,配置缓冲区和传输数据大小,Scatter/Gather DMA模式这两个寄存器不需要配置,对应信息在描述符中配置。

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信