怎样使用收音模块TEA5767,有具体的电路吗?
这个小板需要配合单片机来使用的,使用IIC总线控制。
TEA5767是一片数字收音芯片,常用于MP3、手机等便携产品。
简单的接电阻、电容是不能让其工作的。这几天我正在玩这片IC,很麻烦的。
连好不代表没有出错,写好也一样
TEA5767采用I2C或者三线接口控制,我是用的I2C,单片机用STC89C52,带1K EEPROM,可以掉电存台,1602LCD显示. TEA5767读写数据都是5个字节,其中PLL参数14位,具体数据格式请看datasheet.以下程序中的函数可以直接在主程序中调用.
#include "iic.c"
#define max_freq 108000
#define min_freq 87500
unsigned char radio_write_data[5]={0x29,0xc2,0x20,0x11,0x00}; //要写入TEA5767
的数据
unsigned char radio_read_data[5]; //TEA5767读出的状态
unsigned int default_pll=0x29c2;//0x29f9; //默认存台的pll,87.8MHz
//unsigned int max_pll=0x339b; //108MHz时的pll,
//unsigned int min_pll=9000; //70MHz时的pll
void radio_write(void)
{
unsigned char i;
iic_start();
iic_write8bit(0xc0); //TEA5767写地址
if(!iic_testack())
{
for(i=0;i<5;i++)
{
iic_write8bit(radio_write_data[i]);
iic_ack();
}
}
iic_stop();
}
//读TEA5767状态并转换成频率
void radio_read(void)
{
unsigned char i;
unsigned char temp_l,temp_h;
pll=0;
iic_start();
iic_write8bit(0xc1); //TEA5767读地址
if(!iic_testack())
{
for(i=0;i<5;i++)
{
radio_read_data[i]=iic_read8bit();
iic_ack();
}
}
iic_stop();
temp_l=radio_read_data[1];
temp_h=radio_read_data[0];
temp_h&=0x3f;
pll=temp_h*256+temp_l;
get_frequency();
}
//由频率计算PLL
void get_pll(void)
{
unsigned char hlsi;
unsigned int twpll=0;
hlsi=radio_write_data[2]&0x10;
if (hlsi)
pll=(unsigned int)((float)((frequency+225)*4)/(float)32.768); //频率单位:k
else
pll=(unsigned int)((float)((frequency-225)*4)/(float)32.768); //率单位:k
}
//由PLL计算频率
void get_frequency(void)
{
unsigned char hlsi;
unsigned int npll=0;
npll=pll;
hlsi=radio_write_data[2]&0x10;
if (hlsi)
frequency=(unsigned long)((float)(npll)*(float)8.192-225); //频率单位:KHz
else
frequency=(unsigned long)((float)(npll)*(float)8.192+225); //频率单位:KHz
}
//手动设置频率
,mode=1,+0.1MHz; mode=0:-0.1MHz ,不用考虑TEA5767用于搜台的相关位:SM,SUD
void search(bit mode)
{
radio_read();
if(mode)
{
frequency+=100;
if(frequency>max_freq)
frequency=min_freq;
}
else
{
frequency-=100;
if(frequency<min_freq)
frequency=max_freq;
}
get_pll();
radio_write_data[0]=pll/256;
radio_write_data[1]=pll%256;
radio_write_data[2]=0x20;
radio_write_data[3]=0x11;
radio_write_data[4]=0x00;
radio_write();
}
//自动搜台,mode=1,频率增加搜台; mode=0:频率减小搜台,不过这个好像不能循环搜台
void auto_search(bit mode)
{
radio_read();
get_pll();
if(mode)
radio_write_data[2]=0xa0;
else
radio_write_data[2]=0x20;
radio_write_data[0]=pll/256+0x40;
radio_write_data[1]=pll%256;
radio_write_data[3]=0x11;
radio_write_data[4]=0x00;
radio_write();
radio_read();
while(!(radio_read_data[0]&0x80)) //搜台成功标志
{
radio_read();
disp_freq(9,1);
}
}
本篇文章来源于单片机仿真网|www.mcufz.com 原文链接: http://www.mcufz.com/html/danpianjiyingyong/2009/1017/986.html
http://chinadz.net/Article/IC/200609/199.htm
非常全面的。
网上基本找不到
答:主要还是I2C时序可能有问题,你能读出TEA5767寄存器的值么?如果不能,那你的I2C程序发出一个字节后,能收到ACK么?如果不能,那就要检查程序了,确保CLK配置为输出,SDA在写的时候配置为输出,读ACK或数据时配置为浮空输入,然后就是检查1个字节的8个脉冲是否匹配了。
答:可以。一个管子做再生放大,一个管子做电压放大,剩下两只管子推挽放大。不用电容器也可以,线圈做成抽头的,改变抽头,可以调节电台。不用磁棒,灵敏度会很低,可能要加一根长一些的“拖线”,做天线用。
答:一般是tea5767收音机模块,可以拆下来通过单片机控制
答:它的频率接收范围是76~108MHZ,但是固定中频的带宽是225kHz。而传统超外差收音机的固定中频是10.7MHz。
答:实际上手机的收音机芯片不是这样的,你非要把耳机当天线,就去买个带MIC的耳机,把天线连在MIC的那根接线上面
答:如果是专用收音模块的话,比如TEA5767 或RDA 5807这样的芯片 89C52是用来控制该模块选频、工作以及调整各工作状态的包括音量大小,工作方式、省电\工作模式等。如果是普通的收音芯片的话应该只是调台,和显示频率的。
答:如果是专用收音模块的话,比如TEA5767 或RDA 5807这样的芯片 89C52是用来控制该模块选频、工作以及调整各工作状态的包括音量大小,工作方式、省电\工作模式等。如果是普通的收音芯片的话应该只是调台,和显示频率的。
答:MP3内部结构 MP3播放器由液晶显示屏、微处理器、数码信号处理器(DSP)芯片、输入输出控制器、放大器和一些按钮组成。微处理器是播放器的“大脑”,用来接受用户选择的播放控制,并将当前播放的歌曲信息显示在液晶显示屏上,然后向数据信号处理芯片发出指令,使其准确地处理音频信号。数码信号处理器先用解压...
答:FM收音功能更是这款播放器的一大亮点。它可免费接入欧洲、美国和日本的调频波段,覆盖范围从76MHz至108MHz。用户可以存储高达20个电台频道,得益于采用的PHILIPS的TEA5767高灵敏度收音模块芯片,确保了稳定的接收质量。然而,对于复读功能,七喜320A并不支持,可能更侧重于提供多样化的播放体验。它还具备网络...
答:没有这些元件,也没替代元件,但是其中元件的时序编程还是可以仿真的