概述
外挂收音IC RDA5807的频段设置
测试SDK版本:《ac608n_soundbox_sdk_v1.2.2》
文章目录
- 外挂收音IC RDA5807的频段设置
- 前言
- 一、RDA5807M 基本特征
- 二、频段设置
- 1.设置频段 76–108 MHz
- 2.设置频段65 –76 MHz
- 总结
前言
世界各国收音频段:
接收地区OIRT: AM:531-1602(9kHz步进)、FM 64.5-73MHz(50kHz步进)俄罗斯、蒙古、北朝鲜
接收地区EU :AM:531-1602(9kHz步进)、FM 87.5-108 MHz(50kHz步进)欧洲、中国、韩国、菲律宾
接收地区JP :AM:531-1629(9kHz步进)、FM 76-90MHz(100kHz步进)日本
接收地区US : AM:530-1710kHz(10kHz步进)、FM 87.5-108.1MHz(200kHz步进)美国
一、RDA5807M 基本特征
完整的手册可到立创商城下载查阅
可以看到,这颗收音IC的几个特征:
1、支持全球频段 50~115MHz
2、支持 100KHz、200KHz、50KHz、25KHz 的步进
3、支持外挂32.768KHz晶振
4、支持32.768 KHz 12M,24M,13M,26M,19.2M,38.4MHz的参考时钟
5、支持 单声道和立体声的切换
6、软件可控制音量和静音
7、工作电压:2.7~3.3V
8、只支持I2C通讯
我案子用的电路:
二、频段设置
1、杰理、蓝讯等蓝牙方案的SDK基本都自带了RDA5807的驱动,因为RDA5807M在消费电子中应用广泛,网上的驱动等资料也比较全,这里就不贴完整驱动了。
2、寄存器说明也在数据手册中,完整的手册可到立创商城下载查阅
杰理SDK中RDA5807的寄存器初始化表,使用默认频段 87~108MHz:
/*--------------RDA5807MP Initial Table----------------*/
static const u8 rda5807mp[] = {
//#if defined(_SHARE_CRYSTAL_24MHz_)
// 0xC4,0x51, //02H:
//#elif defined(_SHARE_CRYSTAL_12MHz_)
// 0xC4,0x11, //02H:
//#elif defined(_SHARE_CRYSTAL_32KHz_)
// 0xC4,0x01, //02H:
//#else
0xC0,
0x05,//02H:
//#endif
0x00,
0x10,//03H:
0x04,
0x00,//04H:
RDA5807_RSSI | 0xC0,
0xBF, //05h
0x60,
0x00,
0x42,
0x1A,//11
0x00,
0x00,
0x00,
0x00,
0x00,
0x00, //0x0ah
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00, //0x10h
0x00,
0x19,
0x2a,
0x11,
0xB0,//0x80; 20110804
0x42,//0x53;
0x2a,//0x22; 20110804
0x11,//加大音量0x31 wengyidong
0xb8,//0xf8; 20110804
0x31,//0x30; //0x15h
0xc0,
0x00,
0x2a,
0x91,
0x94,
0x00,
0x00,
0xa8,
0xc4,
0x00, //0x1ah
0xf7,//0xe0; 20110804
0x0f,//0x00;
0x2a,//0x3a;20110804
0xdc,//0x14; //0x1ch
0x80,//0x81;20110804
0x6f,//0x6a;
0x46,
0x08,
0x00,
0x86,
0x06,
0x61, //0x20h
0x00,
0x00,
0x10,
0x9e,
0x23,//0x22; 20110804
0xc8,//0x44;
0x04,
0x06,//0x08; //0x24h 20110804
0x0e,//0x0d;
0x1c,//0x18; //0x25h
};
频段设置的寄存器:
可以看到,要改变频段,需要设置寄存器地址0x03h的bit<3>和bit<2>
1.设置频段 76–108 MHz
将5807初始表中的:
0x00,
0x10,//03H:
改为:
0x00,
0x18,//03H:
搜台设置频点时,会重新写0x03h寄存器,所以,下面函数也要同步修改:
/*----------------------------------------------------------------------------*/
/**@brief 设置一个频点RDA5807
@param fre 频点 875~1080
@return 1:当前频点有台,0:当前频点无台
@note bool set_fre_RDA5807(u16 fre)
*/
/*----------------------------------------------------------------------------*/
u8 rda5807_set_fre(void *priv, u16 fre)
{
u16 pll;
u8 i;
i = 0;
fre /= 10;
printf("set_5807_frq %d ", fre);
pll = (fre - 870);
rda5807_dat[2] = pll >> 2;
rda5807_dat[3] = ((pll & 0x0003) << 6) | 0x10;
rda5807_write(4);
delay_n10ms(5);
/* os_time_dly(5); */
do {
rda5807_read(4);
i++;
//delay_n10ms(1);
if (rda5807_true()) {
puts(" 1 n");
return 1;
}
} while (i < 2);
puts(" 0 n");
return 0;
}
修改后:
/*----------------------------------------------------------------------------*/
/**@brief 设置一个频点RDA5807
@param fre 频点 875~1080
@return 1:当前频点有台,0:当前频点无台
@note bool set_fre_RDA5807(u16 fre)
*/
/*----------------------------------------------------------------------------*/
u8 rda5807_set_fre(void *priv, u16 fre)
{
u16 pll;
u8 i;
i = 0;
fre /= 10;
printf("set_5807_frq %d ", fre);
pll = (fre - 760);
rda5807_dat[2] = pll >> 2;
rda5807_dat[3] = ((pll & 0x0003) << 6) | 0x18;
rda5807_write(4);
delay_n10ms(5);
/* os_time_dly(5); */
do {
rda5807_read(4);
i++;
//delay_n10ms(1);
if (rda5807_true()) {
puts(" 1 n");
return 1;
}
} while (i < 2);
puts(" 0 n");
return 0;
}
杰理的驱动,要将下图的REAL_FREQ_MIN 改为 7600:
2.设置频段65 –76 MHz
将5807初始表中的0x03h寄存器改为:
0x00,//03h
0x1c,
要注意:
0x07h寄存器:
0x1A,//07h
0x00,
频点设置函数改为:
u8 rda5807_set_fre(void *priv, u16 fre)
{
u16 pll;
u8 i;
i = 0;
fre/=10;
printf("set_5807_frq %d ", fre);
pll = (fre - 650);
rda5807_dat[2] = pll >> 2;
rda5807_dat[3] = ((pll & 0x0003) << 6) | 0x1c;
printf("pll: %d 0x%x 0x%x n", pll,rda5807_dat[2],rda5807_dat[3]);
rda5807_write(4);
delay_n10ms(5);
/* os_time_dly(5); */
do {
rda5807_read(4);
i++;
//delay_n10ms(1);
if (rda5807_true()) {
puts(" 1 n");
return 1;
}
} while (i < 2);
puts(" 0 n");
return 0;
}
频段范围改为:
#define REAL_FREQ_MIN (6500)
#define REAL_FREQ_MAX (7600)
总结
1、设置的两个频段都用 惠普HP8657A信号发生器 测试过的,能正常接收频段范围内的频点。
2、如果设置后,出现搜不到对应频点的情况,可以查看驱动,除了初始化写了初始数据,在其它地方有无改动到相应寄存器,可以全局搜索或者读寄存器值来排查问题。
最后
以上就是典雅皮卡丘为你收集整理的【杰理AC696X】外挂收音IC RDA5807的频段设置外挂收音IC RDA5807的频段设置前言一、RDA5807M 基本特征二、频段设置总结的全部内容,希望文章能够帮你解决【杰理AC696X】外挂收音IC RDA5807的频段设置外挂收音IC RDA5807的频段设置前言一、RDA5807M 基本特征二、频段设置总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复