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.

[参考译文] CC1125:需要示例代码

Guru**** 2381990 points
Other Parts Discussed in Thread: CC1125, MSP430F5438A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1440985/cc1125-need-example-code

器件型号:CC1125
Thread 中讨论的其他器件: MSP430F5438ASMARTRXEBK

工具与软件:

大家好!

我使用 pic32cm5164ls60100处理 CC125、我需要通过 cc125传输数据的基本示例代码  

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    SW 可在此处找到:

    SWRC253代码示例或演示| TI.com

    使用 SmartRF Studio 生成 CC1125的设置。

    BR

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Siri、

    感谢您的答复  

    SWRC253代码示例或演示| TI.com

    我从上面的链接下载了工程、但导入工程时 CCS 中没有发生

    您能告诉我使用 SPI 只通过 CC1125发送数据而不使用任何中断的步骤吗?

    我不熟悉射频通信。

    祝你一切顺利

    Sudhir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以查看 CC112x_ease_link_tx.c 文件、其中显示了一个关于如何传输数据包的非常简单的示例。

    您需要实施的必要步骤如下:

    初始化您的 MCU

    使用从 SmartRF Studio 导出的 SPI 寄存器(在 cc112x_ease_link_reg_config.h 中找到的设置)初始化无线电

    将数据写入您的 TX FIFO

    选通 STX。

    SPI 函数位于此处:

    \source\components\targets\trxeb_msp430f5438a

    必须移植到您的 MCU

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Siri、

    感谢您的回复、

    我按照您的指令 操作、但我的 cc1125不会生成中断并卡在 while (packetSemaphore!= isr_action_required);

    我还检查了示波器 GPIO 2是否继续保持3.3V

    现在我使用 SMARTRXEBK、我有2个 SMARTRXEBK。  

    但我的一个朋友通过使用该代码给出了一个示例代码、我得到了一些结果。

    这是我在频谱分析仪上不断得到的结果, 我不知道这是数据或其他东西。

    但问题是、当我尝试使用 SMART Studio RF 在另一个 SMARTRXEBK 上接收这个传输数据时、我没有得到任何结果。

    但是、当我使用 SMARTRXEBK SMART RF Studio 进行发送和接收时、我可以进行接收和发送、但使用代码在频谱分析仪上获得信号。  

    下面是我的代码

    cc112xSpiReadReg (CC112X_PARTNUMBER、&Device_id、1);//读取设备 ID CC1125 = 0x58
    if (Device_id == 0x58)

    P4OUT 并且=~BIT0;// LED1打开
    Crystal_freq.ver = 0x01;
    }
    crystal_freq.id = Device_id;
    // trxDetectRfCrystalFrequency (&Crystal_freq);
    TxSpiCmdStrobe (CC112X_SRES);//重置无线电
    registerConfig();
    unsigned char writeByte=0x06;

    // manualCalibration();
    cc112xSpiWriteReg (CC112X_IOCFG2、&writeByte、1);
    cc112xSpiReadReg (CC112X_IOCFG2、Registered_RED、1);
    //--------------- Rx
    // trxSpiCmdStrobe (CC112X_Sidle);//理想
    cc112xSpiWriteReg (CC112X_IOCFG3、&gpioConfigSlave[0]、4);

    延迟(60000);
    manualCalibration();
    延迟(60000);
    calibrateRCOsc();
    延迟(60000);
    TxSpiCmdStrobe (CC112X_SRX);

    cc112xSpiWriteReg (CC112X_PKT_CFG0、0x40、1);// PKT_CFG =无限数据包模式
    cc112xSpiWriteReg (CC112X_PKT_LEN、0x00、1);// PKT_Lenight 256

    tx_buff[0]=00;
    for (i=1;i<(Buff_Size + 1);i++)

    tx_buff[i]='a';
    }
    TxSpiCmdStrobe (CC112X_SFTX);//刷新 Tx 缓冲区
    /

    cc112xSpiWriteTxFifo (Tx_buff、(Buff_Size + 1));

    //选通 TX 发送数据包
    TxSpiCmdStrobe (CC112X_STX);


    TX_buff[0]= Buff_Size + 1;

    for (i=1;i<(Buff_Size + 1);i++)

    tx_buff[i]="B";
    }
    TxSpiCmdStrobe (CC112X_SFTX);//刷新 Tx 缓冲区
    delay (60000);//
    cc112xSpiWriteTxFifo (Tx_buff、(Buff_Size + 1));
    TxSpiCmdStrobe (CC112X_SFTX);//刷新 Tx 缓冲区

    cc112xSpiWriteReg (CC112X_PKT_CFG0、0x20、1);// PKT_CFG =无限数据包模式
    cc112xSpiWriteReg (CC112X_PKT_LEN、0x30、1);// PKT_Lenight 256

    tx_buff[0]=48;

    适用于(I=1;I<49;I++)

    tx_buff[i]="C";
    }
    TxSpiCmdStrobe (CC112X_SFTX);//刷新 Tx 缓冲区
    delay (60000);//
    cc112xSpiWriteTxFifo (Tx_buff、49);
    TxSpiCmdStrobe (CC112X_SFTX);//刷新 Tx 缓冲区

    trxSpiCmdStrobe (CC112X_Sidle);

    祝你一切顺利

    Mayank

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请遵循我的建议、了解代码需要执行的操作。

    由于您使用的是我们的 EMS、因此我们知道硬件是好的、所以问题必须与软件有关。

    我完全不明白你在试图对发布的代码,混合无限数据包长度模式和可变数据包长度模式等做什么,我不知道你正在使用什么寄存器设置。

    您应该测试一些类似如下的简单代码:

    使用 SmartRF Studio 中的以下设置:

    // Address Config = No address check 
    // Bit Rate = 1.2 
    // Carrier Frequency = 869.224854 
    // Deviation = 3.995895 
    // Device Address = 0 
    // Manchester Enable = false 
    // Modulation Format = 2-GFSK 
    // PA Ramping = true 
    // Packet Bit Length = 0 
    // Packet Length = 255 
    // Packet Length Mode = Variable 
    // Performance Mode = High Performance 
    // RX Filter BW = 15.625000 
    // Symbol rate = 1.2 
    // TX Power = 15 
    // Whitening = false 
    
    static const registerSetting_t preferredSettings[]= 
    {
      {CC1125_IOCFG3,            0xB0},
      {CC1125_IOCFG2,            0x06},
      {CC1125_IOCFG1,            0xB0},
      {CC1125_IOCFG0,            0x40},
      {CC1125_SYNC_CFG1,         0x08},
      {CC1125_DEVIATION_M,       0xA3},
      {CC1125_MODCFG_DEV_E,      0x0A},
      {CC1125_DCFILT_CFG,        0x1C},
      {CC1125_FREQ_IF_CFG,       0x33},
      {CC1125_IQIC,              0xC6},
      {CC1125_CHAN_BW,           0x10},
      {CC1125_MDMCFG0,           0x05},
      {CC1125_SYMBOL_RATE2,      0x3F},
      {CC1125_SYMBOL_RATE1,      0x75},
      {CC1125_SYMBOL_RATE0,      0x10},
      {CC1125_AGC_REF,           0x20},
      {CC1125_AGC_CS_THR,        0x19},
      {CC1125_AGC_CFG1,          0xA9},
      {CC1125_AGC_CFG0,          0xCF},
      {CC1125_FIFO_CFG,          0x00},
      {CC1125_FS_CFG,            0x12},
      {CC1125_PKT_CFG0,          0x20},
      {CC1125_PKT_LEN,           0xFF},
      {CC1125_IF_MIX_CFG,        0x00},
      {CC1125_FREQOFF_CFG,       0x22},
      {CC1125_FREQ2,             0x56},
      {CC1125_FREQ1,             0xEC},
      {CC1125_FREQ0,             0x28},
      {CC1125_IF_ADC0,           0x05},
      {CC1125_FS_DIG1,           0x00},
      {CC1125_FS_DIG0,           0x5F},
      {CC1125_FS_CAL0,           0x0E},
      {CC1125_FS_DIVTWO,         0x03},
      {CC1125_FS_DSM0,           0x33},
      {CC1125_FS_DVC0,           0x17},
      {CC1125_FS_PFD,            0x50},
      {CC1125_FS_PRE,            0x6E},
      {CC1125_FS_REG_DIV_CML,    0x14},
      {CC1125_FS_SPARE,          0xAC},
      {CC1125_XOSC5,             0x0E},
      {CC1125_XOSC3,             0xC7},
      {CC1125_XOSC1,             0x07},
    };

    #define PKTLEN	5
    
    uint8 Tx_buff[PKTLEN + 1] = {0};
    uint8 Rx_buff[PKTLEN + 1 + 2] = {0}; // Need to have room for length byte and 2 status bytes
    
    trxSpiCmdStrobe(CC112X_SRES); // RESET Radio
    
    registerConfig();
    
    // if PARTVERSION is 0x21, do manual calibration (if this is the case, SETTLING_CFG should be set to 0x03 instead of 0x0B)
    // manualCalibration();
    
    // Implement packet length filtering to avoid overflow
    // PKTLEN must no be larger than 128 - 3 = 125  to make sure that the comeplete payload + length byte + status bytes
    // ha ve room in the FIFO
    writeByte = PKTLEN;
    cc112xSpiWriteReg(CC112X_PKT_LEN, &writeByte, 1);
    
    //--------------------------------------------------------------
    // TX:
    //--------------------------------------------------------------
    Tx_buff[0] = PKTLEN; // Length byte
    
    for(i = 1; i < (PKTLEN + 1); i++)
    {
        Tx_buff[i] = 'A'; // Payload consiste of 0xAAAAAAAAAA
    }
    
    // Write the packet to the TX FIFO
    cc112xSpiWriteTxFifo(Tx_buff, sizeof(Tx_buff));
    
    // Strobe TX to send packet
    trxSpiCmdStrobe(CC112X_STX);
    
    // Wait for falling edge of GDO2
    //--------------------------------------------------------------
    
    //--------------------------------------------------------------
    // RX:
    //--------------------------------------------------------------
    trxSpiCmdStrobe(CC112X_SRX);
    
    // Wait for falling edge of GDO2
    
    // Read the RX FIFO when a packet has been received

    Siri