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.

[参考译文] CC1120EM-420-470-RD:在 STM32G071RB 上运行 CC1120 Tx/Rx 测试

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/908872/cc1120em-420-470-rd-run-cc1120-tx-rx-test-on-stm32g071rb

器件型号:CC1120EM-420-470-RD

我已将代码移植到 Arduino UNO、可以成功运行 Tx/Rx 测试。

我想将固件移植到 STM32G071RB 板、并运行与 Arduino UNO 相同的初始寄存器设置值。

在发出无法正常运行的 STX 命令后、由于无法清除 TX FIFO、即使等待 GPIO2反馈或在 STM32 Tx 部件上等待500ms (至少)。

 

注意:我没有要评估的 TrxEB 板。 这就是我首先将 CC1120设置为 Arduino 的原因。

 

Arduino 寄存器设置如下所示:

CC112X_IOCFG3 b0
CC112X_IOCFG2 6.
CC112X_IOCFG1 b0
CC112X_IOCFG0 40.
CC112X_SYNC_CFG1 b.
CC112X_DCFILT_CFG 1c
CC112X_PREAMING_CFG1 18.
CC112X_IQIC C6
CC112X_CHAN_BW 8.
CC112X_MDMCFG0 5.
CC112X_AGC_REF 20
CC112X_AGC_CS_THR 19.
CC112X_AGC_CFG1 A9
CC112X_AGC_CFG0 CF
CC112X_FIFO_CFG 0
CC112X_Setting_CFG 3.
CC112X_FS_CFG 12.
CC112X_PKT_CFG0 20.
CC112X_PA_CFG2 77
CC112X_PKT_LEN 关断
CC112X_IF_Mix _CFG 0
CC112X_FREQOFF_CFG 22.
CC112X_FREQ2 72.
CC112X_FREQ1 60.
CC112X_FS_DIG1 0
CC112X_FS_DIG0 5F
CC112X_FS_CAL1 40.
CC112X_FS_CAL0 e
CC112X_FS_DIVTWO 3.
CC112X_FS_DSM0 33.
CC112X_FS_DVC0 17.
CC112X_FS_PFD 50.
CC112X_FS_PRE 6e
CC112X_FS_REG_DIV_CML 14.
CC112X_FS_SPARE AC
CC112X_FS_VCO0 b4
CC112X_XOSC5 e
CC112X_XOSC1 3.
CC112X_PARTNUMBER 48.
CC112X_SYNC3 93
CC112X_SYNC2 b.
CC112X_SYNC1 51.
CC112X_SYNC0 DE

------------------------------------------------------

以下代码是我的 STM32 Tx 过程:

while (1)
 {
    TrxSpiCmdStrobe (CC112X_SFTX);
    set_didle();

    cc112xSpiReadReg (CC112X_NUM_TXBYTES、&v、1);
    reg ="NUM_TXBYTES (之前)";
    print_register_value (reg、v);

    cc112xSpiWriteTxFifo (sendData、strlen (sendData));

    TrxSpiCmdStrobe (CC112X_STX);

    while (!HAL_GPIO_ReadPin (GPIOB、GPIO_PIN_1));//GDO0引脚
    while (HAL_GPIO_ReadPin (GPIOB、GPIO_PIN_1));//GDO0引脚

    cc112xSpiReadReg (CC112X_NUM_TXBYTES、&v、1);
    reg ="CC112X_NUM_TXBYTES (发送后)";
    print_register_value (reg、v);
    HAL_DELAY (500);
 }

void set_didle()

   uint8_t marcstate;
   trxSpiCmdStrobe (CC112X_Sidle);         //首先设置为空闲。 必须在中

   执行{
       cc112xSpiReadReg (CC112X_MARCSTATE、&marcstate、1);
   } while (marcstate!= 0x41);

在初始寄存器之前、我先运行 trxSpiCmdStrobe (CC112X_SRES)。

我可以通过 STM32上的 SPI 访问/读取命令、只是想知道为什么相同的寄存器可以在 Arduino 上运行、但在 STM32上失败? 我是否错过了 CC1120上的任何设置?

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

    您好!  

    指派专家进行评论。  

    谢谢、  
    ELIN

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

    您的设置为1.2kbps 和915MHz。

    您不会启用自动同步、CC112X_Settling:CFG 为0x03、因此您需要执行手动校准或启用自动同步(CC112X_Settling:CFG = 0x00B)。 请参阅勘误手册、因为某些修订版上存在与校准相关的错误。

    此外、您在轮询 STX 后轮询 GPIO0、但我想您要做的是轮询 GPIO2。

    BR

    Siri