打印
[USB驱动]

USB枚举失败 希望各位给点建议

[复制链接]
2147|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 xuqingli123 于 2018-7-16 11:20 编辑

__ALIGN_BEGIN static uint8_t usbd_audio_CfgDesc[AUDIO_CONFIG_DESC_SIZE] __ALIGN_END =
{
        /* USB Microphone Configuration Descriptor */
        0x09,                                 /* bLength */
        0x02,    /* bDescriptorType */
        LOBYTE(AUDIO_CONFIG_DESC_SIZE),       /* wTotalLength */
        HIBYTE(AUDIO_CONFIG_DESC_SIZE),
        0x02,                                 /* bNumInterfaces */
        0x01,                                 /* bConfigurationValue */
        0x00,                                 /* iConfiguration */
        0xC0,                                 /* bmAttributes : Self Powered */
        0x32,                                 /* bMaxPower = 100 mA*/
        /* 09 byte*/
/* ---------------------------------------------------------------------------*/
        /* ------------------ AudioControl Interface ------------------ */
        /* USB Microphone Standard AC Interface Descriptor */
        0x09,            /* bLength */
        0x04,        /* bDescriptorType */
        0x00,                                 /* bInterfaceNumber */
        0x00,                                 /* bAlternateSetting */
        0x00,                                 /* bNumEndpoints */
        0x01,               /* bInterfaceClass */
        0x01,          /* bInterfaceSubClass */
        0x00,             /* bInterfaceProtocol */
        0x00,                                 /* iInterface */
        /* 09 byte*/
/* ---------------------------------------------------------------------------*/
        /* USB Microphone Class-specific AC Interface Descriptor */
        0x09,            /* bLength */
        0x24,      /* bDescriptorType */
        0x01,                 /* bDescriptorSubtype */
        0x00,          /* 1.00 */             /* bcdADC */
        0x01,
        0x29,                                 /* wTotalLength */
        0x00,
        0x01,                                 /* bInCollection */
        0x01,                                 /* baInterfaceNr */
        /* 09 byte*/

        /* USB Microphone Input Terminal Descriptor */
        0x0C,       /* bLength */
        0x24,      /* bDescriptorType */
        0x02,         /* bDescriptorSubtype */
        0x01,                            /* bTerminalID */
        0x01,                                 /* wTerminalType : Microphone 0x0201 */
        0x02,
        0x00,                                 /* bAssocTerminal */
        0x01,                                 /* bNrChannels */
        0x00,                                 /* wChannelConfig : Mono sets no position bits */
        0x00,
        0x00,                                 /* iChannelNames */
        0x00,                                 /* iTerminal */
        /* 12 byte*/

        /* USB Microphone Audio Feature Unit Descriptor */
        0x08,                                 /* bLength */
        0x24,      /* bDescriptorType */
        0x06,           /* bDescriptorSubtype */
        0x02,                            /* bUnitID */
        0x01,                            /* bSourceID */
        0x01,                                 /* bControlSize */
        0x03,                                 /* bmaControls(0) Mute & Volume */
        0x00,                                 /* ?? bmaControls(1) / iTerminal */
        /* 8 byte*/

        /*USB Microphone Output Terminal Descriptor */
        0x09,                                 /* bLength */
        0x24,      /* bDescriptorType */
        0x03,        /* bDescriptorSubtype */
        0x03,                            /* bTerminalID */
        0x01,                                 /* wTerminalType : USB Streaming */
        0x01,
        0x00,                                 /* bAssocTerminal */
        0x02,                            /* bSourceID */
        0x00,                                 /* iTerminal */
        /* 09 byte*/
/* ---------------------------------------------------------------------------*/
        /* --------------- AudioStreaming Interface --------------- */
        /* USB Microphone Standard AS Interface Descriptor - Audio Streaming Zero Bandwith */
        /* Interface 1, Alternate Setting 0                                             */
        0x09,            /* bLength */
        0x04,        /* bDescriptorType */
        0x01,                                 /* bInterfaceNumber */
        0x00,                                 /* bAlternateSetting */
        0x00,                                 /* bNumEndpoints */
        0x01,               /* bInterfaceClass */
        0x02,         /* bInterfaceSubClass */
        0x00,             /* bInterfaceProtocol */
        0x00,                                 /* iInterface */
        /* 09 byte*/
/* ---------------------------------------------------------------------------*/
        /* USB Microphone Standard AS Interface Descriptor - Audio Streaming Operational */
        /* Interface 1, Alternate Setting 1                                           */
        0x09,            /* bLength */
        0x04,        /* bDescriptorType */
        0x01,                                 /* bInterfaceNumber */
        0x01,                                 /* bAlternateSetting */
        0x01,                                 /* bNumEndpoints */
        0x01,               /* bInterfaceClass */
        0x02,        /* bInterfaceSubClass */
        0x00,             /* bInterfaceProtocol */
        0x00,                                 /* iInterface */
        /* 09 byte*/

        /* USB Microphone Class-specific AS General Interface Descriptor */
        0x07,  /* bLength */
        0x24,      /* bDescriptorType */
        0x01,              /* bDescriptorSubtype */
        0x03,                            /* bTerminalLink : Unit ID of the Output Terminal*/
        0x01,                                 /* bDelay */
        0x01,                                 /* wFormatTag : AUDIO_FORMAT_PCM */
        0x00,
        /* 07 byte*/

        /* USB Microphone Audio Type I Format Type Descriptor */
        0x0B,                               /* bLength */
        0x24,      /* bDescriptorType */
        0x02,          /* bDescriptorSubtype */
        0x01,                  /* bFormatType */
        0x01,                                 /* bNrChannels */
        0x04,                                 /* bSubFrameSize : 2 Bytes per audio subframe */
        0x18,                                 /* bBitResolution : 16 bits per sample */
        0x01,                                 /* bSamFreqType */
        //B3VAL(USBD_AUDIO_FREQ),               /* tSamFreq : Audio sampling frequency coded on 3 bytes */
//        B3VAL(48000),
        B3VAL(32000),
//        B3VAL(16000),
//        B3VAL(8000),
        /* 11+9 byte*/

        /* USB Microphone Standard AS Audio Data Endpoint Descriptor */
        0x09,    /* bLength */
        0x05,         /* bDescriptorType */
        0x81,                          /* bEndpointAddress : IN endpoint 1 */
        0x05,                                 /* bmAttributes ¶Ëµã´«ÊäÀàÐÍ */
        LOBYTE(AUDIO_IN_PACKET),              /* wMaxPacketSize */
        HIBYTE(AUDIO_IN_PACKET),
        0x01,                                 /* bInterval : one packet per frame */
        0x00,                                 /* bRefresh */
        0x00,                                 /* bSynchAddress */
        /* 09 byte*/

        /* USB Microphone Class-specific Isoc. Audio Data Endpoint Descriptor */
        0x07,                                 /* bLength */
        0x25,                                 /* bDescriptorType */
        0x01,                                 /* bDescriptor */
        0x01,                                 /* bmAttributes */
        0x00,                                 /* bLockDelayUnits */
        0x00,                                 /* wLockDelay */
        0x00,
        /* 07 byte*/
};想枚举出来24位的,但是枚举失败,不知道错在什么地方了,希望各位大佬帮帮忙

相关帖子

沙发
xuqingli123|  楼主 | 2018-7-13 12:46 | 只看该作者

使用特权

评论回复
板凳
jinxuan97| | 2018-7-14 10:21 | 只看该作者
Host 支持 24bits吗? 系统提示什么错误?

使用特权

评论回复
地板
computer00| | 2018-7-15 00:24 | 只看该作者
端点大小够不够?

使用特权

评论回复
5
eydj2008| | 2018-7-16 07:56 | 只看该作者
有个同学 叫我做这个 , 我还没时间弄呢  audio HID
一般是描述不正确  要仔细对字节数

使用特权

评论回复
6
xuqingli123|  楼主 | 2018-7-16 10:18 | 只看该作者
本帖最后由 xuqingli123 于 2018-7-16 10:21 编辑
computer00 发表于 2018-7-15 00:24
端点大小够不够?

端点大小够的  48K24位的话 144   电脑显示出来枚举结果就是图片这样的 后面的音质也没有了  做的16位的都是正常的   

11.png (34.76 KB )

11.png

使用特权

评论回复
7
xuqingli123|  楼主 | 2018-7-16 10:26 | 只看该作者
jinxuan97 发表于 2018-7-14 10:21
Host 支持 24bits吗? 系统提示什么错误?

错误是没有提示什么错误,在电脑设备管理器里面也能看到麦克风,就是后面的音质以什么的都没了,然后直接输入一段正旋波,数据的传输也是错误的,

使用特权

评论回复
8
xuqingli123|  楼主 | 2018-7-16 10:29 | 只看该作者
jinxuan97 发表于 2018-7-14 10:21
Host 支持 24bits吗? 系统提示什么错误?

在描述符里面设置的是多个频率可以切换的,下载之后就只显示一个频率,不能进行频率间的切换,16位的话是OK的

使用特权

评论回复
9
xuqingli123|  楼主 | 2018-7-16 10:41 | 只看该作者
本帖最后由 xuqingli123 于 2018-7-16 11:18 编辑

用的是原子的STM32F4和WM8978     16位的录音和播放都是正常 哪位大神帮帮忙  给调下24位 找下哪地方出错了 自己是在没办法了  急!!在USB全速模式下,支不支持24位数据的传输。

使用特权

评论回复
10
jinxuan97| | 2018-7-16 15:46 | 只看该作者
USB Fullspeed支持24bits 的. PCM data 必须组织为24bits 的数据接收发送.
Windows USB driver 不一定支持24bits, 可以试试Apple或Android.

使用特权

评论回复
11
xuqingli123|  楼主 | 2018-7-17 14:06 | 只看该作者
本帖最后由 xuqingli123 于 2018-7-17 16:05 编辑
jinxuan97 发表于 2018-7-16 15:46
USB Fullspeed支持24bits 的. PCM data 必须组织为24bits 的数据接收发送.
Windows USB driver 不一定支持2 ...

我在执行录音的时候,播放程序也在运行,这是为什么,如果播放程序不运行,录音的数据就会出错什么原因?

使用特权

评论回复
12
computer00| | 2018-7-22 13:12 | 只看该作者
把驱动卸载了重装试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

174

帖子

2

粉丝