MIC输入例程 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6362|回复: 8
打印 上一主题 下一主题

MIC输入例程

[复制链接]

4

主题

14

帖子

69

积分

注册会员

Rank: 2

积分
69
跳转到指定楼层
楼主
发表于 2015-6-4 21:02:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有用过MIN_IN这个例程的吗,小弟对里面的程序有点看不懂,例程里也没有比较详细的说明。
1、这个例程里AIC31芯片应该是工作在I2S mode下,即右声道数据紧跟着左声道数据,但是每个声道有多少数据呢?
2、MIC采集声音的输入,这部分数据给谁了?存在了哪里?是在缓冲区吗?如果是的话怎么到的缓冲区?MCASP和EDMA是怎么使用的?
3、Line_OUT输出的数据从哪里来的?
请有经验的专家给小弟解释一下,不胜感激。
下面是main里面的部分程序

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

24

主题

125

帖子

1466

积分

金牌会员

Rank: 6Rank: 6

积分
1466
推荐
发表于 2015-6-5 10:31:35 | 只看该作者
AUDIO_MIC_IN例程和AUDIO_LIN_IN例程是一样的,只是对AIC31的输入端初始化不同。
这两个例程我分析过了,相当复杂!
EDMA3的srcAddr和destAddr一直在改变,虽然有规律,就是循环指向缓存队列txBufn,rxBufn。
linkAddr也是一直在改变。
对初次接触EDMA3的人来说,数据的走向还是显得没那么清晰。

如果能出一个使用EDMA3的ping-pong缓存方式工作的AUDIO_MIC_IN例程,会更好一些。

点评

这个在后期我们打算会完善一下 根据客户提出问题的统计 大部分集中在 uPP EMIF USB Audio 这几个部分 所以对于这些例程之后会着重完善一下  详情 回复 发表于 2015-6-5 13:11
回复 支持 1 反对 0

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-6-5 09:34:04 | 只看该作者
1、默认配置的是 16位声音格式
2、程序中有3个输入缓存变量 3个缓存输出变量
static unsigned int const rxBufPtr[NUM_BUF] =
       {
           (unsigned int) rxBuf0,
           (unsigned int) rxBuf1,
           (unsigned int) rxBuf2
       };

static unsigned int const txBufPtr[NUM_BUF] =
       {
           (unsigned int) txBuf0,
           (unsigned int) txBuf1,
           (unsigned int) txBuf2
       };

McASP 的输入输出 FIFO 寄存器只能被 EDMA3 访问
3、输入缓存变量复制到输出缓存变量
memcpy((void *)txBufPtr[lastSentTxBuf],
                   (void *)rxBufPtr[lastFullRxBuf],
                   AUDIO_BUF_SIZE);
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
地板
发表于 2015-6-5 13:11:35 | 只看该作者
lushidegreen 发表于 2015-6-5 10:31
AUDIO_MIC_IN例程和AUDIO_LIN_IN例程是一样的,只是对AIC31的输入端初始化不同。
这两个例程我分析过了,相 ...

这个在后期我们打算会完善一下 根据客户提出问题的统计 大部分集中在 uPP EMIF USB Audio 这几个部分
所以对于这些例程之后会着重完善一下
回复 支持 反对

使用道具 举报

4

主题

14

帖子

69

积分

注册会员

Rank: 2

积分
69
5#
 楼主| 发表于 2015-6-5 17:02:14 | 只看该作者
希望缄默 发表于 2015-6-5 09:34
1、默认配置的是 16位声音格式
2、程序中有3个输入缓存变量 3个缓存输出变量
static unsigned int const rx ...

版主您好。
1、我记得声音格式好像有16,20,24,32,不同格式是什么用?有什么差别呢?
2、是不是AIC31芯片ADC后通过EDMA直接把得到的语音信号送到输入缓存,输出缓存通过EDMA将数据传给AIC31,然后DAC后播放?
谢谢。
回复 支持 反对

使用道具 举报

4

主题

14

帖子

69

积分

注册会员

Rank: 2

积分
69
6#
 楼主| 发表于 2015-6-5 17:03:50 | 只看该作者
lushidegreen 发表于 2015-6-5 10:31
AUDIO_MIC_IN例程和AUDIO_LIN_IN例程是一样的,只是对AIC31的输入端初始化不同。
这两个例程我分析过了,相 ...

您好,这个问题也请教下您。
1、我记得声音格式好像有16,20,24,32,不同格式是什么用?有什么差别呢?
2、是不是AIC31芯片ADC后通过EDMA直接把得到的语音信号送到输入缓存,输出缓存通过EDMA将数据传给AIC31,然后DAC后播放?
谢谢。
回复 支持 反对

使用道具 举报

4

主题

14

帖子

69

积分

注册会员

Rank: 2

积分
69
7#
 楼主| 发表于 2015-6-5 17:04:55 | 只看该作者
lushidegreen 发表于 2015-6-5 10:31
AUDIO_MIC_IN例程和AUDIO_LIN_IN例程是一样的,只是对AIC31的输入端初始化不同。
这两个例程我分析过了,相 ...

您好,这个问题也请教下您。
1、我记得声音格式好像有16,20,24,32,不同格式是什么用?有什么差别呢?
2、是不是AIC31芯片ADC后通过EDMA直接把得到的语音信号送到输入缓存,输出缓存通过EDMA将数据传给AIC31,然后DAC后播放?
谢谢。

点评

1、位数越宽理论音质越好 2、是  详情 回复 发表于 2015-6-5 17:24
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
8#
发表于 2015-6-5 17:24:26 | 只看该作者
amosjie 发表于 2015-6-5 17:04
您好,这个问题也请教下您。
1、我记得声音格式好像有16,20,24,32,不同格式是什么用?有什么差别呢?
2 ...

1、位数越宽理论音质越好
2、是
回复 支持 反对

使用道具 举报

4

主题

14

帖子

69

积分

注册会员

Rank: 2

积分
69
9#
 楼主| 发表于 2015-6-5 18:54:28 | 只看该作者
本帖最后由 amosjie 于 2015-6-5 19:03 编辑
希望缄默 发表于 2015-6-5 17:24
1、位数越宽理论音质越好
2、是

谢谢!
还有一个问题,例程采用的是I2S模式,包含右声道和左声道。
一个BUFF里有2000个sample,每个sample中字节数为(16>>3)*channel,channel应该就是声道数,为2,这里我就有个问题,BUFF里的左右声道数据是怎么存放的呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-4-29 17:18 , Processed in 0.040150 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表