【杰理AC696X】外挂收音IC RDA5807的频段设置

外挂收音IC RDA5807的频段设置

测试SDK版本:《ac608n_soundbox_sdk_v1.2.2》



前言

世界各国收音频段:

接收地区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、如果设置后,出现搜不到对应频点的情况,可以查看驱动,除了初始化写了初始数据,在其它地方有无改动到相应寄存器,可以全局搜索或者读寄存器值来排查问题。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 杰理AC696X是一款音频处理芯片,用于无线耳机和耳机等产品。它具有低功耗,小尺寸和高性能的特点。 AC696X芯片集成了音频解码、功放、无线通信等功能,可广泛应用于蓝牙耳机、TWS耳机和其他便携式音频设备中。该芯片支持蓝牙5.0版本,具备更稳定的连接和更低的功耗。 AC696X芯片提供了高质量的音频解码和编码,支持多种音频格式,如AAC、SBC和MP3等。它还具备噪声消除和回声抑制的功能,可提供清晰的通话质量和音乐体验。 此外,AC696X还支持触摸开关、声音触摸控制、智能语音助手等功能。用户可以通过简单的触摸操作来控制音量大小、切换音乐、接听电话等。智能语音助手功能可以实现语音唤醒、语音识别和语音控制等智能化操作。 总之,杰理AC696X是一款功能强大的音频处理芯片,它的低功耗、小尺寸和高性能使得它成为无线耳机和耳机等产品的理想选择。无论在音频性能、连接稳定性还是智能化功能方面,AC696X都能提供出色的表现。 ### 回答2: 杰理AC696X是一款具有麦克风功能的芯片,被广泛应用于无线耳机和蓝牙耳机等产品中。这款芯片采用了低功耗蓝牙5.0技术,具有出色的连接稳定性和音频传输质量。它还支持主从模式的切换,可以灵活适应不同的使用场景。 在麦克风功能方面,杰理AC696X能够实现高清无损音频录制和语音通话。它采用了专业级的降噪技术,能够有效降低背景噪音对录音和通话的干扰,提供清晰、纯净的声音效果。此外,该芯片还支持语音唤醒功能,可以通过声音控制触发设备,增强用户的使用体验。 杰理AC696X还具有多种智能功能,比如触摸控制和电池管理等。通过触摸操作,用户可以方便地控制音乐播放、通话接听挂断等功能。而电池管理系统能够有效延长耳机的续航时间,提供更长时间的使用体验。 总之,杰理AC696X是一款功能强大的芯片,具备麦克风、降噪、语音唤醒和智能控制等多种特性。它为无线耳机和蓝牙耳机等产品提供了稳定的无线连接和高品质的音频传输,在音频录制和语音通话方面也表现出色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值