完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-5-29 11:13 编辑
Hi All 在用DaVinci处理器的McASP采集音频: 1. 音频时序是立体声2个声道,时钟,数据,同步三个信号输入给McASP; 2. FrameSync是高电平时长32个bit,低电平时长32个bit; 3. 有效数据是左对齐,时长16个bit; 问题是这样的: 1. McASP采集这样的时序,是按照16bit采集,还是32bit采集? 2. 配置McASP的寄存器:XFMT的SLOT为32,WORD为16,RROT为4,MASK为0000FFFF是否正确? 3. 从Linux用户空间看,采集进来的数据是16bit还是32bit? |
|
相关推荐
10个回答
|
|
你好,
请问你使用的是具体哪款芯片?不同芯片的Mcasp也会有些区别。 从frame sync配置的寄存器看,只有两个选择,一个bit,或者一个word,所以word配置16的话,frame sync的宽度就有问题,所以word还是需要配置为32-bit。 Receive Frame Sync Control Register (AFSRCTL) 4 FRWID Receive frame sync width select bit indicates the width of the receive frame sync (AFSR) during its active period. 0 Single bit. 1 Single word. Single word is not supported if RMOD is set to burst mode. 我没有使用过RROT/RMASK,但我觉得这两个寄存器只能改变输入的数据,但不能改变McASP内部认为的数据的宽度。你可以尝试确认一下。 最好还是能够调整外部音频信号的格式。 |
|
|
|
物是人非aaa 发表于 2018-5-28 10:39 Hi Chris 感谢回复,我贴几个图,详细说明一下,CPU目前是DM385; |
|
|
|
Jason, 你的问题我基本清楚。 我提到的frame sync宽度设置问题,你是否如何想的? |
|
|
|
(AFSRCTL) 这个寄存器对FrameSync的设置有2个地方: 1. FrameSync宽度是bit-width还是word-width,FRWID位,对于word-width描述的很清楚,McASP对FrameSync的高电平期间的全部有时钟的数据都采集进来作为一个声道,在FrameSync的低电平期间的全部有时钟的数据采集进来作为另一个声道,如果用这种模式,我这个时序只能按照32bit数据采集到Linux的用户空间而不是16bit,这32bit数据的高16bit就Padding成0;如果是bit-width,我没有找到对应的时序图,我想是一个时钟周期的FrameSync表示了一帧的开始,然后McASP就一直采集数据直到下一个FrameSync来到,但是McASP会采集多少bit数据?是按照SLOT-Size采吗? 2. FrameSync是外部产生还是内部产生,FSRM位,这个就没太明白时序是怎么产生的,如果选则内部产生FrameSync,那是根据什么参数产生的? 如果1的答案是我猜想的这样,我这个时序就可以设置为:bit-width,slot=16,internal-sync,那么McASP只要拿到一个上升沿/下降沿就在内部产生一个16bit的FrameSynce,把数据采集进来,抓到Linux内核空间也是16bit。 |
|
|
|
rwd2016 发表于 2018-5-28 11:30 Jason, 现在McAsp接收clock和frame sync是外部auido codec给的么?这个音频时序可以修改么? 如果是内部产生framesync,就是根据FRWID的配置来产生的。 |
|
|
|
物是人非aaa 发表于 2018-5-28 11:38 Hi Chris 1. 外部Codec时序是不能修改的; 2. “内部产生的FrameSync是根据FRWID的配置来产生的” 这句话不能理解, 如果FRWID配置成bit-width或者word-width,按照我这个时序,McASP将在内部产生多大的FrameSync?我理解应该是按照外部输入帧同步的上升沿/下降沿作为触发,FrameSync宽度是按照SLOT寄存器长度内部产生的。 这个理解对不对? |
|
|
|
rwd2016 发表于 2018-5-28 11:54 Jason, FS可以是DM芯片内部产生,或者是外部输入,如果是内部产生,是根据FRWID的配置来产生的。 如果采集的时钟和帧同步是外部输入给McASP的,能否尝试:XFMT的SLOT为32,WORD为16,RROT为0,MASK为FFFF0000,两个slot? |
|
|
|
物是人非aaa 发表于 2018-5-28 12:09 Hi Chris 这个设置就是我之前说的,一个Frame有2个SLOT,1个SLOT=32个时钟周期,RROT和PADDING之后,变成了每个声道采样数据长度是32bit,但是高2字节是Padding的Zero-bit 。 |
|
|
|
rwd2016 发表于 2018-5-28 12:15 Jason, 不一样啊。 我建议的配置,16-bit采集 XFMT的SLOT为32,WORD为16,RROT为0,MASK为FFFF0000,两个slot 你之前的配置: XFMT的SLOT为32,WORD为16,RROT为4,MASK为0000FFFF |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
577 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1028 浏览 1 评论
677 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
500 浏览 1 评论
1024 浏览 0 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
131浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
103浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
112浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
110浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
138浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 17:06 , Processed in 0.785712 second(s), Total 64, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号