搜索
bottom↓
回复: 10

做过mp3 的朋友们帮个忙

[复制链接]

出0入0汤圆

发表于 2006-5-26 11:19:51 | 显示全部楼层 |阅读模式
小弟最近也在搞mp3,但是看数据手册时感觉有点疑惑,特来请教



1.首先是几个频率的关系问题:

    手册上说支持采样频率 48,32,24k等等.这个频率和后面所说的fs是什么关系,就是fs么?

    在设置pcmdivider 以及和dac相关的一些寄存器时用到512/384/256*fs,这里fs取了48k



    我看输出LRCKT取得是48k,这个48k和输入有关系么(是不是输入48k导致这里是48k);

    输入数据的速率是什么呢,手册上好像没有说输入数据的速率限制.这个速率和采样频率是什么关系

   如果按照这个意义来说的话,输入数据的速率就应该是采样频率:输入数据在每个sckr的上升或下降   沿被采样(见SCKL_POL寄存器设置)。我这么说对吗?



   是不是fs 就是LRCKR,即输入数据速率?



   这个问题不解决,我不知道单片机这一端该用多大速率往外送,以及是软件模拟的一个个bit往外发,还是做个硬件接口让他发去,如果用软件模拟的话,发送速度是高还是低.



   2。音量设置问题

   手册上说的是  ATTENUATION 衰减,是不是说如果不改动上电初始化值0x00,那么就是音量最大,没有衰减。那我在初始化时就要让他在一个中间的音量上吧。

   

  3.如果我没有初始化sta003,或者说初始化失败,那么上电后我送给他数据,他会工作么。我是说我没有设置他的工作模式啥的,他会有输出么。还是必须经过 mute,play等设置让他转入工作状态才可以.我现在就是板子连好了数据也送来了,但是没有输出。我不知道到底是哪里的问题。



真诚希望大家帮忙,谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2006-5-27 11:25:10 | 显示全部楼层
sorry

看来我理解错了

fs是为了恢复成音频用的

输入数据速率可变8-128k



后面的2个问题仍然希望有人解答一下

谢谢

出0入0汤圆

发表于 2006-5-27 15:24:05 | 显示全部楼层
首先,楼主问问题很奇怪,一上来就问一堆.我还在想是vs芯片还是st的呢?后来终于看见了sta003(估计是sta013写错了吧). 你发问方式有点...... 反正我做过,那我就说两句.也不枉我看了你的问题.



第一个问题:

你不需要知道要以多大的速度发送数据给sta013. st最大能接收20Mbps的数据速率,come on,尽快的发吧.st内部dsp有fifo缓冲区,你不用考虑速度问题,尽量快就行.



第2,3问题:

我觉得这个是你的调试问题.很重要的是,在第一次使用sta013时候,你不要设置内部任何寄存器,因为你可能不熟悉会导致设置失效出现其他问题.使用 st默认的就可以,等响了以后再去设置不迟吧.你需要做的是正确的把st提供的那个鸟额外的配置数据发送给他就行了.之后等到datareq的时候发送mp3 data就可以了.



下面给个例子:

#define BUF_LENGTH 512 //开辟缓冲区

unsigned char buffer[BUF_LENGTH];

unsigned int mp3BufferPos=0;



while((DataReq==1)&&(mp3BufferPos<(BUF_LENGTH-1)))

{

  spi_write(buffer[mp3BufferPos++]);

}


-----此内容被elefan于2006-05-27,15:30:09编辑过

出0入0汤圆

 楼主| 发表于 2006-5-28 09:52:39 | 显示全部楼层
不好意思,可能说的不清楚

谢谢elefan的回答

手头上的确实是sta003t,他不是用data_req时才发数据的,而sta013确实是

还有数据速率,我看数据手册并没说有这么高,是不是您的经验啊

我看sta003t 为ACCEPTS MPEG 2.5 LAYER III ELEMENTARY COMPRESSED BITSTREAM WITH

DATA RATE FROM 8 Kbit/s UP TO 128 Kbit/s

而sta013为 ACCEPTS MPEG 2.5 LAYER III ELEMENTARY COMPRESSED BITSTREAM WITH

DATA RATE FROM 8 Kbit/s UP TO 320 Kbit/s

是不是我看的数据手册和你的不一样啊,但也不能差这么多吧



还有必须发送那个配置数据么,sta013必须,那sta003t也必须发么?

下面是我看的datasheet,不知有没有问题

出0入0汤圆

 楼主| 发表于 2006-5-28 09:54:44 | 显示全部楼层
点击此处打开armok01118849.pdf

点击此处打开armok01118850.PDF



分别是sta013和sta003t

出0入0汤圆

 楼主| 发表于 2006-5-29 10:08:53 | 显示全部楼层
hehe

还是自己摸索吧

出0入0汤圆

发表于 2006-5-29 13:21:16 | 显示全部楼层
我用的是sta013,带不带T我还真没注意,手头也没STA013T的片子.另外我用的是多媒体模式,注意不要使用广播模式.



STA013的配置文件必须发送,发送数据时候必须检查datareq,否则内部FIFO会忽略你的数据.

出0入0汤圆

发表于 2006-5-29 13:25:01 | 显示全部楼层
STA013能接收25Mbps的数据速率,这个我在数据手册或者是app note上看到过,哪里忘记了,你可以自己实验. 另外可以到www.pjrc.com上看看关于如何使用sta013.

出0入0汤圆

 楼主| 发表于 2006-5-29 17:54:58 | 显示全部楼层
非常感谢elefan,

再问一下,我拿i2c发送数据给sta003t,可以发出去,但是收不到响应ack,怎么知道是片子问题还是我的程序问题,我是说会不会是在系统50m的时钟条件下模拟出来的i2c时序,芯片接受不过来或者是芯片根本没工作或是芯片坏了。上面elefan说  在第一次使用sta013时候,你不要设置内部任何寄存器  ,那么是不是说我不用i2c,不对芯片作任何设置,上电后给他数据就可以有输出?我现在不知是i2c有问题没有初始化好还是芯片坏了。



可惜老师只给我sta003t,没有013

再次感谢大家

出0入0汤圆

发表于 2006-5-29 20:04:52 | 显示全部楼层
i2c时钟要保持在400KHz以下才能保证和STA013通讯正常.这点很重要!!!



另外,检查STA013是否损坏,查看地址0x01的数据,STA013应该返回0xAC(Indentify Device)



配置数据是肯定要发送的,我没有说这个不需要!!! 否则STA013无法正常播放音乐文件!!!
-----此内容被elefan于2006-05-29,20:05:25编辑过

出0入0汤圆

 楼主| 发表于 2006-5-29 22:48:47 | 显示全部楼层
我真怀疑是片子坏了,我已近把速率降到100k以下了,但是还是没有受到响应

这样0x01地址的数据就读不出来了。



老师非让我查了再查,不相信是片子坏了



哎,我真是个菜鸟!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 19:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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