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.

cc1101发送载波

Other Parts Discussed in Thread: CC1101, CC1100, CC1100E, CC2500

使用RFstudio设置频率、连续发送模式和未调制,并且将RF生成的寄存器信息写进CC1101。然后主函数如何设置,让cc1101发送载波呢?

我是进入idle模式后,写寄存器信息,然后对cc1101写发送命令(即设置为发送模式),但用示波器并没有检测到波形,想问下设置好寄存器信息后,如何操作使cc1101发送载波?

  • CC1101本身没有MCU核,需要外接一个MCU来搭配开发,实现无线通信。请参考官方例程:http://www.ti.com/lit/zip/swrc021

  • 谢谢你,抱歉我再这里例程里没有找到类似的程序

    下面是我写的程序,但是没有成功,可以帮我看一看么?

    CC1101_Set_Idle_Mode();

    for( i = 0; i < 23; i++ )
    {
    CC1101_Write_Reg( Settings440MHz[i][0], Settings440MHz[i][1] ); //Write configuration parameters
    }

    CC1101_Set_Address( 0x05, BROAD_0AND255 );

    CC1101_Write_Cmd( CC1101_STX );

    寄存器的配置如下
    static const uint8_t Settings440MHz[23][2]=
    {
    {CC1101_IOCFG2, 0x0B},
    {CC1101_IOCFG0, 0x0C},
    {CC1101_FIFOTHR, 0x47},
    {CC1101_PKTCTRL0, 0x12},
    {CC1101_FSCTRL1, 0x06},
    {CC1101_FREQ2, 0x10},
    {CC1101_FREQ1, 0xEC},
    {CC1101_FREQ0, 0x4E},
    {CC1101_MDMCFG4, 0xF5},
    {CC1101_MDMCFG3, 0x83},
    {CC1101_MDMCFG2, 0x30},
    {CC1101_DEVIATN, 0x15},
    {CC1101_MCSM0, 0x18},
    {CC1101_FOCCFG, 0x16},
    {CC1101_WORCTRL, 0xFB},
    {CC1101_FREND0, 0x11},
    {CC1101_FSCAL3, 0xE9},
    {CC1101_FSCAL2, 0x2A},
    {CC1101_FSCAL1, 0x00},
    {CC1101_FSCAL0, 0x1F},
    {CC1101_TEST2, 0x81},
    {CC1101_TEST1, 0x35},
    {CC1101_TEST0, 0x09},
    };
  • 是的,我是用stm32,通过spi总线写命令给cc1101的
  • 例子很多啊

    C:xxxx\Downloads\CC1100 CC1101 CC1100E CC2500 Examples Libraries (Rev. F)\C51\Lib\Chipcon\srf04\Hal\CCxx00
  • 谢谢你,例程确实很多,但是对于小白来说看不懂,犹如大海捞针,不知道可以直接看一下我的程序,指出那里需要修改么?我觉得寄存器配置没有问题,应该是写指令的顺序出现了问题。
  • 一般流程是:
    初始化寄存器
    设置芯片进入 Tx模式
    等待芯片进入Tx模式
    循环操作,代码里循环调用strobe TX命令

    举例:
    /* Moduation deviation set to zero */

    /* Setting both sync word registers to
    * 0xAA = 0b10101010, i.e., the same as the preamble pattern. Not necessary,
    * but gives control of what the radio attempts to transmit.
    */


    SYNC1 = 0xAA;
    SYNC0 = 0xAA;

    /* Put radio in TX. */
    RFST = RFST_STX;

    /* Wait for radio to enter TX. */
    while ((MARCSTATE & MARCSTATE_MARC_STATE) != MARC_STATE_TX);

    /* Radio is now in TX. Infinite loop. */
    while (1);

    return 0;
    }
  • 你好,请问你提到的例程是在哪里找的?可以发一个链接给我么?我想仔细研究下,谢谢啦