TI中文支持网
TI专业的中文技术问题搜集分享网站

求助 CC1110 RF发送数据问题

您好,我第一次接触这种51的射频IC,最近在搞一个用CC1110f32通讯的项目,26MHz时钟晶振,用串口接收PC传来的数据然后通过RF发送到另外一个模块,当串口的的波特率设置在4800或更低时,RF通讯是正常的。当串口的波特率设置在9600或更高时,通讯就不正常了,RF只能发送串口传来的第一个数据包。会在 while(RFTXRXIF == 0) ;这一句等待很久。RF配置是通过SmartRFStudio的推荐配的,50 k速率, GFSK 调制方式, 540 kHz 接收滤波带宽,配置频率范围是433 MHz,只是PKTCRL0、PKTCRL1改了。

PKTCTRL1 = 0x00;
PKTCTRL0 = 0x04;

一直找不到原因,恳请指点下。

gaoyang9992006:

应该是RF发送的速度慢点,你那个串口发来的数据快的话,这边来不及发送 出去。如果是按照例程配置的,不应该达不到9600这么慢的速度啊。

yangxi yang:

回复 gaoyang9992006:

PA_TABLE0 = 0xC0; //功率设置为10dBm FREQ2 = 0x10; // 设置频段433M FREQ1 = 0xAC; FREQ0 = 0x4E; // 下面的配置通过 SmartRFStudio高频软件中CC1110部分配置, // 250 k速率, GFSK 调制方式, 540 kHz 接收滤波带宽. // 配置频率范围是433 MHz或868/915 MHz FSCTRL1 = 0x12; // 频率合成控制高位 FSCTRL0 = 0x00; //频率合成控制低位 MDMCFG4 = 0x2D; // 调制解调配置 MDMCFG3 = 0x3B; MDMCFG2 = 0x13; MDMCFG1 = 0x22; MDMCFG0 = 0xF8; DEVIATN = 0x62; //调制解调背离配置 (FSK调制时使能). FREND1 = 0x56; FREND0 = 0x10; MCSM0 = 0x18; // 无线控制状态配置 FOCCFG = 0x1D; // 频率偏移补偿配置 BSCFG = 0x1C; // 位同步配置 AGCCTRL2 = 0xC7; // AGC控制 AGCCTRL1 = 0x00; AGCCTRL0 = 0xB0; FSCAL3 = 0xEA; // 频率合成校准 FSCAL2 = 0x0A ; FSCAL0 = 0x1F; TEST2 = 0x88; // 测试设置 TEST1 = 0x31; TEST0 = 0x09; ADDR =0x00; PKTCTRL1 = 0x00; PKTCTRL0 = 0x04; ADDR = 0x00; // Device Address

void RF_sendUchar(uchar DATA) { SIDLE(); STX(); RFIF &= ~IRQ_DONE; RFTXRXIF = 0; while(RFTXRXIF == 0);//等待发送结束 RFD =DATA ;//发送数据 RFTXRXIF = 0; //清除发送标志 while(RFIF & IRQ_DONE == 0); //等待发送结束 RFIF &= ~IRQ_DONE; //清结束标志 S1CON &= ~0x03; //Clear the general RFIF interrupt register }

void RF_receive(){ SIDLE(); SRX(); RFTXRXIF = 0; while(RFTXRXIF == 0) ; RFTXRXIF = 0; RF_Re_Data = RFD; RFIF &= ~IRQ_DONE; S1CON &= ~0x03;}

以上是RF的配置以及接收发送函数,烦请帮忙看一下是否有什么问题,现在还没找到原因。非常感谢!

readlove1 readlove1:

不是RF配置问题。是你的RF操作流程不对。先idle然后发送或接受。我有用中断和DMA两个方式实现的rf。你可以百度的到。用dma方式要可靠些。

赞(0)
未经允许不得转载:TI中文支持网 » 求助 CC1110 RF发送数据问题
分享到: 更多 (0)