RDA5820外围电路问题
请问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);
}
请问一下小编是买的芯片自己焊接的外围电路,还是直接买的模块?