微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > 射频综合技术问答 > RDA5820外围电路问题

RDA5820外围电路问题

时间:10-02 整理:3721RD 点击:


请问RDA5820这样的外围电路能正常发射频率么,如果可以,为什么 一直发射的是116MHZ不能改变?

不太明白小编讲的什么意思


额,有图片没有加载上去。麻烦您看下程序有没有问题。现在一直发射117MHZ的频率不能改变。程序是网上能找的到的,用I2C通信,I2C的读写都没有问题。Rda5820WriteReg(0X03,temp);     这个函数能写进去正确的频率值但是出来的频率就是117MHZ,试了很多方法频率还是不能改变,所以怀疑是硬件的问题但是图没能加载上去。
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);  
}

请问一下小编是买的芯片自己焊接的外围电路,还是直接买的模块?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top