微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC1101状态寄存器读取的值很奇怪

CC1101状态寄存器读取的值很奇怪

时间:12-23 整理:3721RD 点击:

对主要配置寄存器的配置如下。现在的问题是,发送部分,在CC1101初始化后,我在主函数中 halSpiStrobe(CCxxx0_STX);  使其为发送模式,然后读取halSpiReadReg(CCxxx0_TXBYTES),显示的值为0079,如果在这条语句之前加上halSpiStrobe(CCxxx0_SFTX);清空;则TXBYTES显示为0015,TXBYTES理论值应该是在0到64之间不是吗?这两个值很奇怪。

还有,如果在设置为发送模式之后,读取 num=halSpiReadReg(CCxxx0_MARCSTATE); 仍然显示0079,按照datasheet上,应该是显示0x13表明在TX模式,不符。

spi读写等子函数都是参照ti提供的例程。接收模块也有类似的问题。所以现在发送接收还不能正常工作。求指导!

typedef struct S_RF_SETTINGS

{

    INT8U FSCTRL1;   // Frequency synthesizer control.

    INT8U FSCTRL0;   // Frequency synthesizer control.

    INT8U FREQ2;     // Frequency control word, high INT8U.

    INT8U FREQ1;     // Frequency control word, middle INT8U.

    INT8U FREQ0;     // Frequency control word, low INT8U.

    INT8U MDMCFG4;   // Modem configuration.

    INT8U MDMCFG3;   // Modem configuration.

    INT8U MDMCFG2;   // Modem configuration.

    INT8U MDMCFG1;   // Modem configuration.

    INT8U MDMCFG0;   // Modem configuration.

    INT8U CHANNR;    // Channel number.

    INT8U DEVIATN;   // Modem deviation setting (when FSK modulation is enabled).

    INT8U FREND1;    // Front end RX configuration.

    INT8U FREND0;    // Front end RX configuration.

    INT8U MCSM0;     // Main Radio Control State Machine configuration.

    INT8U FOCCFG;    // Frequency Offset Compensation Configuration.

    INT8U BSCFG;     // Bit synchronization Configuration.

    INT8U AGCCTRL2;  // AGC control.

         INT8U AGCCTRL1;  // AGC control.

    INT8U AGCCTRL0;  // AGC control.

    INT8U FSCAL3;    // Frequency synthesizer calibration.

    INT8U FSCAL2;    // Frequency synthesizer calibration.

         INT8U FSCAL1;    // Frequency synthesizer calibration.

    INT8U FSCAL0;    // Frequency synthesizer calibration.

    INT8U FSTEST;    // Frequency synthesizer calibration control

    INT8U TEST2;     // Various test settings.

    INT8U TEST1;     // Various test settings.

    INT8U TEST0;     // Various test settings.

    INT8U IOCFG2;    // GDO2 output pin configuration

    INT8U IOCFG0;    // GDO0 output pin configuration

    INT8U PKTCTRL1;  // Packet automation control.

    INT8U PKTCTRL0;  // Packet automation control.

    INT8U ADDR;      // Device address.

    INT8U PKTLEN;    // Packet length.

} RF_SETTINGS;

 

const RF_SETTINGS rfSettings =

{

    0x06,   // FSCTRL1   liu

    0x00,   // FSCTRL0   Frequency synthesizer control.     

    0x10,   // FREQ2     Frequency control word, high byte.

    0xB1,   // FREQ1     Frequency control word, middle byte.

    0x3B,   // FREQ0     Frequency control word, low byte.

         0xf6,   // MDMCFG4, liu

         0x83,   // 2.398kbps---liu

    0x13,   // MDMCFG2   Modem configuration.GFSK Mode---liu

    0x22,   // MDMCFG1   Modem configuration.

    0xF8,   // MDMCFG0   Modem configuration.

    0x00,   // CHANNR    Channel number.

         0x15,   // DEVIATN, liu

    0x56,   // FREND1    Front end RX configuration.

    0x10,   // FREND0    Front end RX configuration.

    0x18,   // MCSM0     Main Radio Control State Machine configuration.

    0x16,   // FOCCFG    Frequency Offset Compensation Configuration.liu

    0x6c,   // BSCFG     Bit synchronization Configuration.liu

    0x03,   // AGCCTRL2  AGC control.liu

    0x40,   // AGCCTRL1  AGC control.liu

    0x91,   // AGCCTRL0  AGC control.liu

    0xE9,   // FSCAL3    Frequency synthesizer calibration.

    0x2A,   // FSCAL2    Frequency synthesizer calibration.

    0x00,   // FSCAL1    Frequency synthesizer calibration.

    0x1F,   // FSCAL0    Frequency synthesizer calibration.

    0x59,   // FSTEST    Frequency synthesizer calibration.

    0x81,   // TEST2     Various test settings.

    0x35,   // TEST1     Various test settings.

    0x09,   // TEST0     Various test settings.

    0x0B,   // IOCFG2    GDO2 output pin configuration.

    0x06,   // IOCFG0    GDO0 output pin configuration. Refer to SmartRF?Studio User Manual for detailed pseudo register explanation.

    0x04,   // PKTCTRL1  Packet automation control.

    0x04,   // PKTCTRL0  Variable packet length mode. Packet length configured by the first byte after sync word

    0x00,   // ADDR      Device address.

    0x04,   // PKTLEN    4 bytes--liu

};

RF Register Setting 跟最新的 SmartRF Studio 里面导出的对比一下。

现在问题解决了,竟是电源问题。换了一个比较稳定的电源,可以了。。。

恭喜,谢谢分享!

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

网站地图

Top