OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5439|回复: 3

RDA5820外围电路问题

[复制链接]

6

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2016-8-25
在线时间
61 小时
发表于 2016-9-27 13:18:36 | 显示全部楼层 |阅读模式
1金钱

QQ截图20160927104028.png
请问RDA5820这样的外围电路能正常工作么?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-9-28 23:10:23 | 显示全部楼层
可以参考我们战舰V2的原理图。或者官方的电路图。
回复

使用道具 举报

6

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2016-8-25
在线时间
61 小时
 楼主| 发表于 2016-9-29 09:58:19 | 显示全部楼层
本帖最后由 Xulovling 于 2016-9-29 10:00 编辑
正点原子 发表于 2016-9-28 23:10
可以参考我们战舰V2的原理图。或者官方的电路图。

额,能发射频率但是频率值不能改变一直都是116MHZ,不知道程序哪里有问题,I2C的通信是没有问题的。
int main(void)
{
        /* USART1 config 115200 8-N-1 */
//        u16 num1,num2,num3;
        delay_init(8);//时钟配置
        JTAG_Set(1);     //下载方式配置
        IIC_Init();      //I2C初始化
        LED();        //LED初始化      
        while(!(Rda5820Init()))
        {
          Rda5820BandSet(0);            //频段设置
          Rda5820SpaceSet(0);    //步进设置
          Rda5820TxPagSet(63);  //发射功率设置
          Rda5820TxPgaSet(3);    //发射信号增益设置
          Rda5820FreqSet(9700); //频率设置
          Rda5820TxMode();        //发射模式                     
             GPIO_SetBits(GPIOA,GPIO_Pin_1);   //LED测试
        while(1);      
        }                       
                              
}

u8 Rda5820Init(void)
{
    u16 id;      
    id=Rda5820ReadReg(RDA5820_R00);
        if(id==0X5805)                               //芯片默认ID0X5805
    {               
        Rda5820WriteReg(RDA5820_R02,0x0002);   //芯片复位
        delay_ms(50);                              
        Rda5820WriteReg(RDA5820_R02,0x0001);   //芯片上电
        delay_ms(600);  
        Rda5820WriteReg(RDA5820_R02,0xD201);   //芯片上电 不复位 正常天线 32.768k时钟
        Rda5820WriteReg(RDA5820_R03,0x1A10);   //步进100k 频段87MHZ-108MHZ 不开启协调
        Rda5820WriteReg(RDA5820_R40,0X0001);   //设置为发射模式
      
    }
                else return 1;
    return 0;
}

void Rda5820FreqSet(u16 freq)
{
    u16 temp;
    u8 spc=0,band=0;
    u16 fbtm,chan;
    temp=Rda5820ReadReg(0X03);  
    temp&=0X001F;
    band=(temp>>2)&0x03;   
    spc=temp&0x03;         
      
    if(spc==0)spc=10;
    else if(spc==1)spc=20;
    else spc=5;
    if(band==0)fbtm=8700;
    else if(band==1||band==2)fbtm=7600;
    else
    {
        fbtm=Rda5820ReadReg(0X53);
        fbtm*=10;
    }
    if(freq<fbtm)return;
    chan=(freq-fbtm)/spc;  
    chan&=0X3FF;         
                       
    temp|=chan<<6;                              
    temp|=1<<4;   
    Rda5820WriteReg(0X03,temp);     
    delay_ms(100);      
    while((Rda5820ReadReg(0X0B)&(1<<7))==0);  
}
I2C读写数据都没有问题 Rda5820WriteReg(0X03,temp);   temp按照手册上换算是正确的,但是就是发射的频率一直都是116MHZ。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-9-29 20:41:57 | 显示全部楼层
Xulovling 发表于 2016-9-29 09:58
额,能发射频率但是频率值不能改变一直都是116MHZ,不知道程序哪里有问题,I2C的通信是没有问题的。
int  ...

参考我们代码
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-23 18:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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