dizhu 发表于 2008-7-29 11:56:16

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.
};

还麻烦大家帮我看下有没有什么问题。万分感谢!!

dizhu 发表于 2008-7-29 15:32:05

没人理我。
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);
}

sojojoso 发表于 2008-7-29 18:03:28

刚开始调的时候不要急着试是否通讯的上。
确定硬件没问题的话,先调通SPI,再看CC2500能否正常复位,寄存器是否配置正确。
然后再调发射部分,把GDO0或是GDO2设置成0x06,看是否有波形。

dizhu 发表于 2008-7-29 22:59:18

已经确定硬件没有问题,CC2500设置好后,GDO0上的135KHz的方波变为低电平。正在调试发射部分,问题就是我上面说的,GDO0一直为低电平,程序运行到while (!(PIND&(1<<1))); 就一直在这里了。还没有试过GDO2

pojiebaobao 发表于 2008-8-7 12:35:49

我的也是到这一步,走不下去了.兄弟你的解决了吗?

lningbd 发表于 2008-8-8 22:36:20

先找/买个能正常通讯的板子,自己这部分以他为目标通讯。有个参照快点,稍微投入点呦。

13409195019 发表于 2009-7-25 16:33:20

我最近也在调CC2500的模块,不过我的是硬件的问题多,愿意的话一起合作吧,谢谢!

edsionwa 发表于 2013-5-29 16:52:35

同样情况啊
无法通信,解决中!

e5300 发表于 2013-7-26 09:37:18

楼主搞定没?我这边SPI没有问题,135kHz也有,IOCFG0和IOCFG2配置为0x06,发送没有高电平

IamPolaris 发表于 2014-4-2 22:27:59

原来,有这么多人都碰到过这样的问题呀,我调了快一周了,用的STM32的硬件SPI接口,看了时序都正常,可就是两个模块通信不上。严重挫败啊!

闲鱼翻身 发表于 2014-4-2 22:51:19

CC1101 同样悲剧中。。。哎
页: [1]
查看完整版本: CC2500配置好了,但是还是不能通讯,不知道怎样确定是否正确发送或接收。