打印
[数据传输]

USB声卡数据传输的问题

[复制链接]
1517|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xuqingli123|  楼主 | 2018-7-20 14:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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  

使用特权

评论回复
5
jinxuan97| | 2018-7-25 16:18 | 只看该作者
可以附上Device Config吗?

使用特权

评论回复
6
xuqingli123|  楼主 | 2018-7-26 08:49 | 只看该作者
本帖最后由 xuqingli123 于 2018-7-26 08:59 编辑
jinxuan97 发表于 2018-7-25 16:18
可以附上Device Config吗?

描述错了  修改端点地址,运行录音的时候,dataout也会跟着执行,,大哥知道这是什么情况吗?很着急啊!正常的声卡datain和dataout的运行应该是相互的独立的啊,修改了端点地址,怎么还是执行啊,怎么能让他们执行的时候互补影响,@jinxuan97  

使用特权

评论回复
7
jinxuan97| | 2018-7-26 09:50 | 只看该作者
data in 和data out 的endpoints在device config 里是配置在同一个interface/AlternateSetting下吗?
如果这样就会同时激活工作.

使用特权

评论回复
8
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 麻烦看一下

使用特权

评论回复
9
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.

使用特权

评论回复
10
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  

1.png (40.37 KB )

1.png

2.png (39.98 KB )

2.png

使用特权

评论回复
11
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

粉丝