在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 1691|回复: 1

[原创] 制作MP3的问题

[复制链接]
发表于 2010-7-22 20:30:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
大家好,我使用AT89C51SND单片机做一个MP3,可是资料里有些不懂,具体如下:
MP3时钟频率设置
static void MP3FsInit(unsigned char NDIV, unsigned int RDIV, unsigned char MPCD, unsigned char AUCD)
{

       PLLNDIV = 0;
       PLLRDIV = 0;

MP3CLK
= 0;


AUDCLK
= 0;


       PLLNDIV
= 0x7f & NDIV;


PLLCON
|= (0x3 &
RDIV) << 6;

       PLLRDIV
= (0x3ff & RDIV) >> 2;


MP3CLK
|= MPCD;


AUDCLK
|= AUCD;



}

调用MP3FsInit函数:
switch ((MP3_Framehead[2] & 0x0C) >> 2)


{


case 0x00:MP3FsInit (24, 126, 3, 5); break;
//Fs=44.1kHz


case 0x01 : MP3FsInit(124, 575, 3, 4); break;
//Fs=48kHz


case 0x02 : MP3FsInit(124, 511, 3, 9); AUDCON0 = 0x76; break;//Fs=32kHz


default : break;



}

其中MP3FsInit (24, 126, 3, 5)Fs=44.1kHz
,但是据MP3FsInit
函数得N=24R=222MPCD=3AUCD=5再根据公式:PLLclk=OSCclk*(R+1)/(N+1)
OSCclk20M(采用的是20M外部晶振),得到PLLclk=178.4M. 根据MP3clk=PLLclk/(MPCD+1) 公式得MP3CLK=44.6M;根据AUDclk=PLLclk/(AUCD+1) AUDclk=29.73M
Fs是怎么算出来等于44.4Khz?
发表于 2010-7-24 00:18:56 | 显示全部楼层
看不太明白
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-10-1 06:22 , Processed in 0.018305 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表