[数据传输] USB声卡数据传输的问题

[复制链接]
 楼主| xuqingli123 发表于 2018-7-20 14:51 | 显示全部楼层 |阅读模式
本帖最后由 xuqingli123 于 2018-7-20 16:12 编辑

设计的USB声卡,插上电脑后,进行音乐播放,用BusHound看了一下,USB有数据传输过来,为什么声卡接受不到,这是什么原因?有数据传进来了,单片机不能进入接收中断@computer00  
 楼主| xuqingli123 发表于 2018-7-20 16:12 | 显示全部楼层
jinxuan97 发表于 2018-7-21 13:21 | 显示全部楼层
要看看Bitresolution, Sample frequency, USB DAC 能不能接受. 查看一下Device Config
 楼主| xuqingli123 发表于 2018-7-25 14:02 | 显示全部楼层
本帖最后由 xuqingli123 于 2018-7-25 15:08 编辑
jinxuan97 发表于 2018-7-21 13:21
要看看Bitresolution, Sample frequency, USB DAC 能不能接受. 查看一下Device Config

现在有了新的问题就是在进行录音的时候,数据传进来,从datain传入PC,为什么dataout也要运行,不然录进来的数据就错误了,播放就是独立的,只运行dataout就行了,可是在录音的时候,datain和dataout都运行,这大概是什么地方配置错了,正常的USB声卡录音的时候只运行DATAin就行了吧,我把端点地址修改了一下,描述符里面也做了相应的修改,刷新端点的时候就不会执行播放程序了,但是这样为什么录音程序进入延迟就出不来了,卡死在那了@jinxuan97  
jinxuan97 发表于 2018-7-25 16:18 | 显示全部楼层
可以附上Device Config吗?
 楼主| xuqingli123 发表于 2018-7-26 08:49 | 显示全部楼层
本帖最后由 xuqingli123 于 2018-7-26 08:59 编辑
jinxuan97 发表于 2018-7-25 16:18
可以附上Device Config吗?

描述错了  修改端点地址,运行录音的时候,dataout也会跟着执行,,大哥知道这是什么情况吗?很着急啊!正常的声卡datain和dataout的运行应该是相互的独立的啊,修改了端点地址,怎么还是执行啊,怎么能让他们执行的时候互补影响,@jinxuan97  
jinxuan97 发表于 2018-7-26 09:50 | 显示全部楼层
data in 和data out 的endpoints在device config 里是配置在同一个interface/AlternateSetting下吗?
如果这样就会同时激活工作.
 楼主| xuqingli123 发表于 2018-7-26 09:54 | 显示全部楼层
本帖最后由 xuqingli123 于 2018-7-26 11:27 编辑
jinxuan97 发表于 2018-7-26 09:50
data in 和data out 的endpoints在device config 里是配置在同一个interface/AlternateSetting下吗?
如果这 ...

/* USB Speaker Standard AS Interface Descriptor - Audio Streaming Zero Bandwith */
  /* Interface 1, Alternate Setting 0                                             */
  AUDIO_INTERFACE_DESC_SIZE,  /* bLength */
  0x04,                                 /* bDescriptorType */
  0x01,                                 /* bInterfaceNumber */
  0x00,                                 /* bAlternateSetting */
  0x00,                                 /* bNumEndpoints */
  0x01,                                 /* bInterfaceClass */
  0x02,                                  /* bInterfaceSubClass */
  0x00,                               /* bInterfaceProtocol */
  0x00,                                 /* iInterface */
  /* 09 byte*/
  
  /* USB Speaker Standard AS Interface Descriptor - Audio Streaming Operational */
  /* Interface 1, Alternate Setting 1                                           */
  AUDIO_INTERFACE_DESC_SIZE,  /* bLength */
  0x04,                                /* bDescriptorType */
  0x01,                                 /* bInterfaceNumber */
  0x01,                                 /* bAlternateSetting */
  0x01,                                 /* bNumEndpoints CCCCCCCCCCC*/
  0x01,                                 /* bInterfaceClass */
  0x02,                                  /* bInterfaceSubClass */
  0x00,                                /* bInterfaceProtocol */
  0x00,                                 /* iInterface */
  /* 09 byte*/        /* USB Microphone Standard AS Interface Descriptor - Audio Streaming Zero Bandwith */
  /* Interface 2, Alternate Setting 0                                             */
        0x09,                                /* bLength */
        0x04,                                /* bDescriptorType */
        0x02,                                 /* 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 2, Alternate Setting 1                                           */
        0x09,                                  /* bLength */
        0x04,                                 /* bDescriptorType */
        0x02,                                 /* bInterfaceNumber */
        0x01,                                 /* bAlternateSetting */
        0x01,                                 /* bNumEndpoints */
        0x01,                                  /* bInterfaceClass */
        0x02,                                  /* bInterfaceSubClass */
        0x00,                                  /* bInterfaceProtocol */
        0x00,                                  /* iInterface */
        /* 09 byte*/
@jinxuan97 麻烦看一下

jinxuan97 发表于 2018-7-26 10:38 | 显示全部楼层
Data OUT --> Interface 1, Alternate Setting 1
Data IN    --> Interface 2, Alternate Setting 1
因此它们是独立的路径.

对SET_INTERFACE request, 录音只要SetInterface() 设置 Data IN的 Interface 2, Alternate Setting 1.
不需要设置 Interface 1, Alternate Setting 1, Data OUT.
 楼主| xuqingli123 发表于 2018-7-26 11:20 | 显示全部楼层
本帖最后由 xuqingli123 于 2018-7-26 11:23 编辑
jinxuan97 发表于 2018-7-26 10:38
Data OUT --> Interface 1, Alternate Setting 1
Data IN    --> Interface 2, Alternate Setting 1
因此它 ...

我看了一下,我上面的描述符里面是这样配置的吧,可能是我理解错了,大哥能说明白一点吗?第一次接触这东西,是一个菜鸟,我在描述符里面是这样配置的。@jinxuan97  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
jinxuan97 发表于 2018-7-26 11:51 | 显示全部楼层
xuqingli123 发表于 2018-7-26 11:20
我看了一下,我上面的描述符里面是这样配置的吧,可能是我理解错了,大哥能说明白一点吗?第一次接触这东 ...

---------------------------------------------------
对SET_INTERFACE request, 录音只要SetInterface() 设置 Data IN的 Interface 2, Alternate Setting 1.
不需要设置 Interface 1, Alternate Setting 1, Data OUT.
---------------------------------------------------

这指的是, Device driver 对来自Host request 的响应处理, 代码需要完成, 发出第一个传输调用.

我也不是专家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

174

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

29

主题

174

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部