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:到目前为止、似乎不可能切换到可选的32KHz 时钟输入...

Guru**** 2544150 points
Other Parts Discussed in Thread: CC1125

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/691202/cc1125-switch-to-the-optional-32khz-clock-input-seems-impossible-so-far

器件型号:CC1125

您好、论坛、  

希望我不会花太多时间、因为我的问题听起来很小、但我很难在数据表中找到清晰的说明。 我们使用启用监听模式(eWOR)的 CC1125、该 CC1125与内部晶体一同运行。 下面列出了寄存器配置。 我们希望停止使用内部晶体、而是使用 CC1125的 GPIO3来输入32KHz 外部时钟。 到目前为止、我们无法通过修改以下4个寄存器来使无线电正常工作、这些寄存器似乎是影响根据数据表选择使用晶体的唯一寄存器、除非我错过了一些内容。 任何帮助都不仅仅是欢迎…  

更改寄存器值以切换到外部晶体(根据用户指南/数据表):

IOCFG3 = 0x30 (GPIO3_CFG = 48)

EXT_CTRL = 0x02 (EXT_32K_CLOCK_EN = 1)

WOR_CFG0 = 0x21 (RC_PD = 1且 DIV_256HZ_EN = 1)也尝试使用(DIV_256HZ_EN = 0)

 

 默认情况下的寄存器值、工作配置(使用内部时钟):

{CC112X_IOCFG3、24}、// LNA/PA

{CC112X_IOCFG2、26}、// RX0TX1

{CC112X_IOCFG1、0xB0}、

{CC112X_IOCFG0、0x06}、 //同步 RxTx

{CC112X_SYNC_CFG0、0x14}、

{CC112X_SYNC_CFG1、0x0B}、

{CC112X_PREAMARY_CFG1、0x34}、 // 0x34->30字节前导码、0x30->24字节前导码、0x2C->12字节前导码、 0x28->8bytes 前导码 -如果您更改此更新,则也会更改 WOR 设置!

{CC112X_EX偏差_M、0xA3}、

{CC112X_MODCFG_DEV_E、0x0A}、

{CC112X_DCFILT_CFG、0x1C}、

{CC112X_FREQ_IF_CFG、0x33}、

{CC112X_IQIC、0xC6}、

{CC112X_CHAN_BW、0x10}、

{CC112X_MDMCFG0、0x05}、

{CC112X_MDMCFG1、0x80 | 0x40 | 8 | 6 | 0}、

{CC112X_AGC_GAIN_ADJUST、-77}、

{CC112X_symbol_Rate2、0x3F}、

{CC112X_symbol_rate1、0x75}、

{CC112X_symbol_RATE0、0x10}、

{CC112X_AGC_REF、0x20}、

{CC112X_AGC_CFG1、0xA0}、

{CC112X_FIFO_CFG、0x00}、

{CC112X_Setting_CFG、0x03 | 0x18}、

{CC112X_FS_CFG、0x12}、

{CC112X_PKT_CFG0、0x0}、

{CC112X_PKT_LEN、NumberPacketBytes}、

{CC112X_IF_Mix _CFG、0x00}、

{CC112X_FREQOFF_CFG、0x30}、

{CC112X_FREQ2、0x56}、

{CC112X_FREQ1、0xEC}、

{CC112X_FREQ0、0x28}、

{CC112X_IF_ADC0、0x05}、

{CC112X_FS_DIG1、0x00}、

{CC112X_FS_DIG0、0x5F}、

{CC112X_FS_CAL0、0x0E}、

{CC112X_FS_DIVTWO、0x03}、

{CC112X_FS_DSM0、0x33}、

{CC112X_FS_DVC0、0x17}、

{CC112X_FS_PFD、0x50}、

{CC112X_FS_PRE、0x6E}、

{CC112X_FS_REG_DIV_CML、0x14}、

{CC112X_FS_SPARE、0xAC}、

{CC112X_XOSC5、0x0E}、

{CC112X_XOSC3、0xC7}、

{CC112X_XOSC1、0x07}、

{CC112X_RFEND_CFG1、0x0F}、//结束 Rx 到 IDLE

{CC112X_RFEND_CFG0、0x9}、//结束 TX 到空闲状态、在 BAD 和 CS 上终止

{CC112X_WOR_CFG0、0x00}、 //高重置、

{CC112X_WOR_CFG1、0x08}、

{CC112X_WOR_EVENT0_MSB、0x6} 、//这些可能需要调整

{CC112X_WOR_EVENT0_LSB、0x3e/*116*/}、

{CC112X_PKT_CFG1、0x45}、 //白化、CRC 和状态结束-立即启用以添加白化

{CC112X_PKT_CFG2、0x10}、 //启用 LBT

{CC112X_EXTERING_M、0xf8}、

{CC112X_PREAMING_CFG1、0x34}、// 30字节前导码

{CC112X_MODCFG_DEV_E、0x08}、

{CC112X_CHAN_BW、0x19}、

{CC112X_symbol_Rate2、0x3f}、

{CC112X_AGC_REF、0x20}、

{CC112X_AGC_CS_THR、CC_MIN_SIGNAL}、

{CC112X_WOR_CFG0、0x20}、// 0x20->30、24、12、8字节前导码

{CC112X_WOR_EVENT0_MSB、0x18}、// 0x18->30字节前导码、0x13->24字节前导码、0x09->12字节前导码、 0x06->8字节前导码

{CC112X_WOR_EVENT0_LSB、0x8F}、// 0x8F->30字节前导码、0x90->24字节前导码、0x92->12字节前导码、 0x3E->8字节前导码

 

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    乍一看、设置看起来是正确的。 当您写"到目前为止、我们无法让对讲机工作"时、您的意思是什么? 您能否详细说明一下您看到的内容(或预期看到的内容)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我的两个板以"内部晶振"设置运行时、Tx 和 Rx 都工作正常(这意味着无线消息在两端都正确解码)。 此外、连接直流分析仪后、我可以观察预期的监听模式运行、睡眠时间约为150ms、预期的功耗。
    当我切换到"外部晶振"设置时、模块之间没有通信。 在直流分析仪上、我可以看到尝试发送、但另一侧未接收到任何内容。 此外、电源图看起来很奇怪、因为没有睡眠时间! 相反、有一个9ms 周期性信号持续运行、当我断开外部晶体时、该信号也会下降...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我假设您已经在定制板上为此编写了代码?

    我想在 TRXEB 上进行测试、首先我需要编写一些代码进行测试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正确。 我将无法共享整个项目、但我可以为您提供涉及无线电配置或命令的代码片段。

    非常感谢!

    此致、George

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

    我从 CC112x 代码示例开始:  

    我使用了 RX_Sniff 模式(配置1)

    为了获得一个32kHz 时钟、我可以在 RX 端使用该时钟、我在 TX 代码中进行了以下更改:

    #define GPIO3 0x36 
    void main (void){
    
    //初始化 MCU 和外设
    initmc();
    
    //写入无线电寄存器
    registerConfig();
    
    //设置 GPIO3
    uint8 writeByte = GPIO3;
    cc112xSpiWriteReg (CC112X_IOCFG3、writeByte、1);
    
    //输入 runTX,永不回来
    runTX();
    } 

    在 RX 端、我执行了以下操作:

    #define GPIO3 0x30 
    void main (void){
    
    //初始化 MCU 和外设
    initmc();
    
    //写入无线电寄存器
    registerConfig();
    //设置 GPIO3
    uint8 writeByte = GPIO3;
    cc112xSpiWriteReg (CC112X_IOCFG3、writeByte、1);
    
    //设置 EXT_CTRL
    writeByte = 0x02;
    cc112xSpiWriteReg (CC112X_EXT_CTRL、writeByte、1);
    
    //设置 WOR_CFG0
    writeByte = 0x21;
    cc112xSpiWriteReg (CC112X_WOR_CFG0、writeByte、1);
    
    //输入 runRX,永不回来
    runRX();
    } 

    注释掉 calibrateRCOsc();

    这看起来是正常工作的。  

    看一下您的代码、它看起来像是 GPIO3的双精度定义、它取决于何时写入哪一行。  

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

    您好!

    很抱歉答复很晚,但我不在办公室。 非常感谢您花时间讨论此事。  

    现在、我有几个关于您所应用的更改以及您的一个评论的问题。

    1.为什么在 Rx 和 TX 上以不同的方式设置 GPIO3? 我假设您想证明您的系统是使用内部和外部时钟的组合工作的吗? 如果不是、这会让人有点困惑、因为我们计划在产品的两侧使用外部器件。

    请您澄清以下注释:"查看您的代码、它看起来就像您对 GPIO3的双重定义、这取决于何时写入哪一行。" 在我发送给您的寄存器列表中、GPIO3的双重定义在哪里? 如果您参考以下"{CC112X_IOCFG3、24}、// LNA/PA"、这是使用外部时钟运行时的默认设置、但即使如此、也不使用 GPIO3。

    3.为什么要注释 calibrateRCOsc();?

    此致

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1) 1)我的目标是显示 RX 端使用外部时钟。 我发现、获得外部32kHz 时钟的最简单方法是使用 TX 端为我生成它、因此设置不同。
    2) 2)因此、当您使用外部时钟时、您尚未包含以下行:{CC112X_IOCFG3、24}、// LNA/PA?
    3) 3)由于 RC OSC 已断电、因此尝试校准它毫无意义。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的澄清、但遗憾的是、您的建议仍然没有帮助。 我很想尝试在我的硬件上使用您的所有寄存器设置、但如果我想砖砌一些东西、我很担心。

    您是否有其他疑难解答想法?

    此致

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CC1125无法实现、因为它在发出复位或断电时会放宽其设置。 我的代码在我的末尾起作用、您是否未修改过此代码?