CC2500配置好了,但是还是不能通讯,不知道怎样确定是否正确发送或接收。
CC2500配置好了,但是还是不能通讯,不知道怎样确定是否正确发送或接收。我的发送端程序如下:
uchar t_buf={0x01,0x02};
int main(void)
{
Init();
POWER_UP_RESET_CCxxx0();
halRfWriteRfSettings(&rfSettings);
halSpiWriteReg(CCxxx0_PATABLE, paTable);
while(1)
{
halSpiStrobe(CCxxx0_SIDLE);
halRfSendPacket(t_buf,2);
_delay_ms(1000);
}
}
接收端程序如下:
uchar r_buf;
int main(void)
{
uchar len;
Init();
POWER_UP_RESET_CCxxx0();
halRfWriteRfSettings(&rfSettings);
halSpiWriteReg(CCxxx0_PATABLE, paTable);
while(1)
{
halSpiWriteReg(CCxxx0_PATABLE, paTable);
if(halRfReceivePacket(r_buf,&len))
{
t_buf=r_buf;
t_buf=r_buf;
SerialSend(); //通过串口将收到的数据发送到PC端
}
}
}
配置:
const RF_SETTINGS rfSettings = {
0x07, // FSCTRL1 Frequency synthesizer control.
0x00, // FSCTRL0 Frequency synthesizer control.
0x5D, // FREQ2 Frequency control word, high byte.
0x93, // FREQ1 Frequency control word, middle byte.
0xB1, // FREQ0 Frequency control word, low byte.
0x2D, // MDMCFG4 Modem configuration.
0x3B, // MDMCFG3 Modem configuration.
0x73, // MDMCFG2 Modem configuration.
0x22, // MDMCFG1 Modem configuration.
0xF8, // MDMCFG0 Modem configuration.
0x00, // CHANNR Channel number.
0x01, // DEVIATN Modem deviation setting (when FSK modulation is enabled).
0xB6, // FREND1 Front end RX configuration.
0x10, // FREND0 Front end RX configuration.
0x18, // MCSM0 Main Radio Control State Machine configuration.
0x1D, // FOCCFG Frequency Offset Compensation Configuration.
0x1C, // BSCFG Bit synchronization Configuration.
0xC7, // AGCCTRL2AGC control.
0x00, // AGCCTRL1AGC control.
0xB0, // AGCCTRL0AGC control.
0xEA, // FSCAL3 Frequency synthesizer calibration.
0x0A, // FSCAL2 Frequency synthesizer calibration.
0x00, // FSCAL1 Frequency synthesizer calibration.
0x11, // FSCAL0 Frequency synthesizer calibration.
0x59, // FSTEST Frequency synthesizer calibration.
0x88, // TEST2 Various test settings.
0x31, // TEST1 Various test settings.
0x0B, // TEST0 Various test settings.
0x07, // FIFOTHR RXFIFO and TXFIFO thresholds.
0x29, // IOCFG2 GDO2 output pin configuration.
0x06, // IOCFG0D GDO0 output pin configuration. Refer to SmartRF?Studio User Manual for detailed pseudo register explanation.
0x04, // PKTCTRL1Packet automation control.
0x01, // PKTCTRL0Packet automation control.
0x00, // ADDR Device address.
0xFF // PKTLEN Packet length.
};
还麻烦大家帮我看下有没有什么问题。万分感谢!! 没人理我。
GDO0一直没有变化。
//使用CC2500发送数据
void halRfSendPacket(INT8U *txBuffer, INT8U size)
{
halSpiWriteReg(CCxxx0_TXFIFO, size);
halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size); //写入要发送的数据
halSpiStrobe(CCxxx0_STX); //进入发送模式发送数据
// Wait for GDO0 to be set -> sync transmitted
while (!(PIND&(1<<1)));
// Wait for GDO0 to be cleared -> end of packet
while (PIND&(1<<1));
halSpiStrobe(CCxxx0_SFTX);
} 刚开始调的时候不要急着试是否通讯的上。
确定硬件没问题的话,先调通SPI,再看CC2500能否正常复位,寄存器是否配置正确。
然后再调发射部分,把GDO0或是GDO2设置成0x06,看是否有波形。 已经确定硬件没有问题,CC2500设置好后,GDO0上的135KHz的方波变为低电平。正在调试发射部分,问题就是我上面说的,GDO0一直为低电平,程序运行到while (!(PIND&(1<<1))); 就一直在这里了。还没有试过GDO2 我的也是到这一步,走不下去了.兄弟你的解决了吗? 先找/买个能正常通讯的板子,自己这部分以他为目标通讯。有个参照快点,稍微投入点呦。 我最近也在调CC2500的模块,不过我的是硬件的问题多,愿意的话一起合作吧,谢谢! 同样情况啊
无法通信,解决中! 楼主搞定没?我这边SPI没有问题,135kHz也有,IOCFG0和IOCFG2配置为0x06,发送没有高电平 原来,有这么多人都碰到过这样的问题呀,我调了快一周了,用的STM32的硬件SPI接口,看了时序都正常,可就是两个模块通信不上。严重挫败啊! CC1101 同样悲剧中。。。哎
页:
[1]