USB FIFO 大小为啥不能超过320

项目场景:USB FIFO 大小为啥不能超过320

USB slver 多端点使用的时候异常


问题描述

使用GD32 F4 USB FS 开发两路CDC一路MSC;USB设备枚举成功,但是MSC无法打开

原因分析:

#define RX_FIFO_FS_SIZE                         128
#define TX0_FIFO_FS_SIZE                        64
#define TX1_FIFO_FS_SIZE                        64
#define TX2_FIFO_FS_SIZE                        64
#define TX3_FIFO_FS_SIZE                        64
  1. USB FIFO(First In, First Out,先进先出队列)大小通常受到USB控制器硬件规格的限制,特别是其内部FIFO RAM(随机存取存储器)的容量限制。关于USB FIFO大小为何不能超过320(通常指的是320个32位字,即1.25KB)。
  2. 在设备模式下,数据 FIFO 分为多个部分,其中包含 1 个 Rx FIFO 和 4 个 Tx FIFO,每个 Tx
    FIFO 对应着一个 IN 端点,所有的 OUT 端点通过共享 Rx FIFO 接收数据包。通过寄存器
    USBFS_GRFLEN 和 USBFS_DIEPxTFLEN (x=0…3),程序可配置数据 FIFO 的大小和起始
    偏移地址。 设备模式 FIFO 空间所描述的是 SRAM 中各 FIFO 的结构,图中的数值是
    以 32 位为单位![# 解决方案:
    #define RX_FIFO_FS_SIZE 64
    #define TX0_FIFO_FS_SIZE 64
    #define TX1_FIFO_FS_SIZE 64
    #define TX2_FIFO_FS_SIZE 64
    #define TX3_FIFO_FS_SIZE 64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值