This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1200: CC1200使用Synchronous Serial Mode时,GPIO3配置失败

Part Number: CC1200

CC1200使用Synchronous Serial Mode时,

GPIO3被配置成SERIAL_CLK或者SERIAL_RX都不成功,用示波器测量得到GPIO3一直输出高电平。

GPIO2被配置成SERIAL_CLK或者SERIAL_RX都成功,用示波器测量均有有效脉冲周期信号输出。

这个GPIO3有什么特殊吗?

  • 没有特殊的,GPIO3和GPIO2都是General-purpose I/O,两者功能是完全一样的

  • /*******************************************************************************
    * VARIABLES
    */
    // RX filter BW = 104.166667khz
    // Symbol rate = 10
    // Carrier frequency = 920MHZ
    // Bit rate = 10
    // Whitening = false
    // Manchester enable = false
    // Modulation format = 2-FSK
    // Continus_Rx
    // Device address = 0
    // Deviation = 24.948120
    // TxPower =28dBm

    static const registerSetting_t preSettings_Cons_Rx_Modulated[]= {
    {CC120X_IOCFG3, 0x49}, //GPIO3--->SERIAL_RX
    {CC120X_IOCFG2, 0x08}, //GPIO2--->SERIAL_CLK
    {CC120X_IOCFG0, 0x18}, //GPIO0--->LNA_PD
    {CC120X_SYNC2, 0x4E},
    {CC120X_SYNC1, 0x90},
    {CC120X_SYNC0, 0x4E},
    {CC120X_SYNC_CFG1, 0x1F}, //NO SYC WORD
    {CC120X_SYNC_CFG0, 0x23},
    {CC120X_DEVIATION_M, 0x48}, //DEV=25KHZ
    {CC120X_MODCFG_DEV_E, 0x0B},
    {CC120X_DCFILT_CFG, 0x56},
    {CC120X_PREAMBLE_CFG1, 0x00}, // NO PREAMBLE
    {CC120X_PREAMBLE_CFG0, 0xBA},
    {CC120X_IQIC, 0xC8},
    {CC120X_CHAN_BW, 0x84},
    {CC120X_MDMCFG1, 0x02}, //FIFO EN = 0
    {CC120X_MDMCFG0, 0x05}, //TRANSPARENT EN = 0
    {CC120X_SYMBOL_RATE2, 0x70},
    {CC120X_SYMBOL_RATE1, 0x62},
    {CC120X_SYMBOL_RATE0, 0x4E},
    {CC120X_AGC_REF, 0x27},
    {CC120X_AGC_CS_THR, 0x01},
    {CC120X_AGC_CFG3, 0x11},
    {CC120X_AGC_CFG1, 0x11},
    {CC120X_AGC_CFG0, 0x90},
    {CC120X_FIFO_CFG , 0x00},
    {CC120X_FS_CFG, 0x12},
    //{CC120X_PKT_CFG2, 0x25},
    {CC120X_PKT_CFG2, 0x05}, // PKT_FORMAT = 0b01 Synchronous serial mode
    {CC120X_PKT_CFG0, 0x20},
    {CC120X_PA_CFG1, 0x70},
    {CC120X_PA_CFG0, 0x55},
    {CC120X_PKT_LEN , 0xFF},
    {CC120X_IF_MIX_CFG, 0x18},
    {CC120X_FREQOFF_CFG, 0x22},
    //{CC120X_TOC_CFG, 0x03},
    {CC120X_TOC_CFG, 0x43}, //TOC LIMIT =1
    {CC120X_MDMCFG2, 0x02},
    {CC120X_FREQ2, 0x5C},
    {CC120X_IF_ADC1, 0xEE},
    {CC120X_IF_ADC0, 0x10},
    {CC120X_FS_DIG1, 0x07},
    {CC120X_FS_DIG0 , 0xAA},
    {CC120X_FS_CAL1, 0x40},
    {CC120X_FS_CAL0 , 0x0E},
    {CC120X_FS_DIVTWO, 0x03},
    {CC120X_FS_DSM0, 0x33},
    {CC120X_FS_DVC0, 0x17},
    {CC120X_FS_PFD, 0x00},
    {CC120X_FS_PRE, 0x6E},
    {CC120X_FS_REG_DIV_CML, 0x1C},
    {CC120X_FS_SPARE, 0xAC},
    {CC120X_FS_VCO0 , 0xB5},
    {CC120X_IFAMP, 0x05},
    {CC120X_XOSC5, 0x0E},
    {CC120X_XOSC1, 0x03},
    {CC120X_SERIAL_STATUS, 0x08},
    };

    以上是我的配置。写入配置后,只要我执行

    trxSpiCmdStrobe(CC120X_SAFC);
    trxSpiCmdStrobe(CC120X_SRX);后,GPIO3就一值高电平,GPIO2有持续的时钟输出

  • GPIO3的默认设置是GPIO3_CFG = 0x06 (PKT_SYNC_RXTX)

    输出将在上电后立即等于 PKT_SYNC_RXTX(由组合电路设置),它将被拉低,直到发送或接收到 SYNC