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.

[参考译文] CC1310:以125kbit/s 的速度发送 ASK/OOK 信号

Guru**** 2603155 points
Other Parts Discussed in Thread: CC1101, CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/944235/cc1310-transmitting-ask-ook-with-125kbit-s

器件型号:CC1310
主题中讨论的其他器件:CC1101

我们正在开发用于检测窗口句柄位置的窗口触点和传感器。 对于我们的一个客户、我们需要传输 EnOcean 数据包。 EnOcean 数据包必须以125kbit/s 的比特率进行 ASK (OOK)调制  

我们可以通过 CC1101轻松传输这些类型的数据包、但使用 CC1310是不可能的。

我们是否必须为此使用不同的收发器、或者是否有机会通过 CC1310传输这些数据包?  

我们只需传输这些数据包-无需接收 !

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

    尊敬的 Thomas:  

    指派专家进行评论。  

    谢谢、  
    ELIN

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

    尊敬的 Thomas:

    我目前正在研究这个问题、一旦我得到答案、我就会尽快回复您。

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

    尊敬的 Thomas:  

    我已经与无线电组进行了检查、他们确认 TX 中应该可以有125kbps、但从 RX 方面来说、您的传输速率大约在10-20kbps 之间。  

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

    感谢您的回复。 我认为设置有问题。 我使用 SmartRF Studio 生成的设置。 我认为 HW_REG_OVERRIDE (0x6098、0x6E00)和有问题  

    HW_REG_OVERRIDE (0x52B8、0x80A7)
    这些设置用于斜坡?  
    对于125kbit/s 波特率、它们不起作用。
    我找不到有关这些设置的任何文档。
    以下是 SmartRF Studio 生成的完整设置
    // TI-RTOS 射频模式对象
    RF_Mode RF_PROP =
    {
    rfMode = RF_MODE_Proprietary"子模式1、
    .cpePatchFxn =&rf_patch_cpe_genook、
    .mcePatchFxn =&rf_patch_mce_genook、
    .rfePatchFxn =&rf_patch_rfe_genook
    };
    
    
    //覆盖 CMD_PROP_RADIO_DIV_SETUP
    UINT32_t pOverrides[]=
    {
    // override_use_patch_prop_genook_nrz.xml
    // PHY:使用 MCE RAM 补丁、RFE RAM 补丁
    MCE_RFE_OVERRIDE (1、0、0、1、0、0)、
    // override_synth_prop_863_930_div5.xml
    //合成:将推荐的 RTRIM 设置为7
    HW_REG_OVERRIDE (0x4038、0x0037)、
    //合成:将频率设置为4MHz
    (uint32_t) 0x000684A3、
    //合成:配置精细校准设置
    HW_REG_OVERRIDE (0x4020、0x7F00)、
    //合成:配置精细校准设置
    HW_REG_OVERRIDE (0x4064、0x0040)、
    //合成:配置精细校准设置
    (uint32_t) 0xB1070503、
    //合成:配置精细校准设置
    (uint32_t) 0x05330523、
    //合成:将锁定后的环路带宽设置为20kHz
    (uint32_t) 0x0A480583、
    //合成:将锁定后的环路带宽设置为20kHz
    (uint32_t) 0x7AB80603、
    //合成:配置 VCO LDO (在 ADI1中、设置 VCOLDOCFG=0x9F 以使用电压输入基准)
    ADI_REG_OVERRIDE (1、4、0x9F)、
    //合成:配置同步 LDO (在 ADI1中、设置 SLDOCTL0.COMP_CAP=1)
    ADI_HALFREG_OVERRIDE (1、7、0x4、0x4)、
    //合成:使用24MHz XOSC 作为同步时钟、启用额外的 PLL 滤波
    (uint32_t) 0x02010403、
    //合成:配置额外的 PLL 滤波
    (uint32_t) 0x00108463、
    //合成:增加同步编程超时(0x04B0 RAT 节拍= 300us)
    (uint32_t) 0x04B00243、
    // override_synth_disable_bias_div5.xml
    //合成:将分频器偏置设置为禁用
    HW32_array_override (0x405C、1)、
    //合成:将分频器偏置设置为禁用(特定于 loder=5)
    (uint32_t) 0x18000200、
    // override_phy_rx_aaf_bw_0xd.xml
    // Rx:将抗混叠滤波器带宽设置为0xD (在 ADI0中、设置 IFAMPCTL3[7:4]=0xD)
    ADI_HALFREG_OVERRIDE (0、61、0xF、0xD)、
    // override_phy_agc_reflevel_0x19.xml
    // Rx:将 AGC 基准电平设置为0x19
    HW_REG_OVERRIDE (0x6088、0x0019)、
    // override_phy_ook_rx.xml
    // Rx:将 LNA 偏置电流修整偏移设置为3
    (uint32_t) 0x00038883、
    // Rx:在发现同步事件时冻结 RSSI
    HW_REG_OVERRIDE (0x6084、0x35F1)、
    // override_phy_ook_rx_filter_iir_k_1div4.xml
    // Rx:将数据过滤器设置为 IIR,k=1/4。 解释:0x0000:K=1 (无滤波器)、0x0001:K=1/2、0x0002:K=1/4、0x0003:K=1/8。
    HW_REG_OVERRIDE (0x5204、0x0002)、
    // override_phy_ook_tx_power_10dbm.xml
    // Tx:将符号形状斜升至+10dBm PA 级别(0x6E00)。 说明:最小 PA 级别=0x6100、...、最大 PA 级别=0x7200。 位[15:13]设置每个 PA 斜坡级别的等待延迟。 位[12:8]设定从斜升 LUT (范围1-18)使用的 PA 电平的数量。 保留位[7:0]。
    HW_REG_OVERRIDE (0x6098、0x6E00)、
    // Tx:设置符号斜降到0xA7 (=168)之前的符号占空比延迟。 这意味着符号斜降将在到达(T_symbol/2)+等待(167/2)=83us 的延迟后开始。
    HW_REG_OVERRIDE (0x52B8、0x80A7)、
    // override_phy_rx_rssi_offset_5db.xml
    // Rx:设置 RSSI 偏移以将报告的 RSSI 调整+5dB (默认值:0)、针对外部偏置和差分配置进行了修整
    (uint32_t) 0x00FB88A3、
    (uint32_t) 0xFFFFFFFF
    };
    
    
    // CMD_PROP_RADIO_DIV_SETUP
    //针对所有频带的专有模式无线电设置命令
    RFC_CMD_PROP_RADIO_DIV_SETUP_t RF_PropcmdletRadioDivSetup =
    {
    .commandNo = 0x3807、
    .status = 0x0000、
    .pNextOp = 0、//插入适用的指针:(uint8_t*)&xxx
    .StartTime = 0x00000000、
    .startTrigger.triggerType = 0x0、
    .startTrigger.bEnaCmd = 0x0、
    .startTrigger.triggerNo = 0x0、
    .startTrigger.PastTrig = 0x0、
    .condition.rule = 0x1、
    .condition.nSkip = 0x0、
    modulation .modType = 0x2、
    .modulation.deviation = 0x0、
    symbolRate.prescale = 0xF、
    symbolRate.rateWord = 0x14000、
    .symbolRate.decimMode = 0x0、
    .rxBw = 0x2B、
    .PreambBytes = 0x4、
    .Conf.前置 放大器模式= 0x0、
    .formatConf.nSwBits = 0x20、
    .formatConf.bBitVersal = 0x0、
    .formatConf.bMsbFirst = 0x1、
    formatConf.fecMode = 0x0、
    formatConf.whitenMode = 0x0、
    .config.frontEndMode = 0x0、
    config.biasMode = 0x1、
    config.analogCfgMode = 0x0、
    config.bNoFsPowerUp = 0x0、
    TxPower = 0x38D3、
    .pRegOverride = pOverrides、
    .centerFreq = 0x0364、
    .intFreq = 0x8000、
    .loDivider = 0x05
    };
    
    
    // CMD_FS
    //频率合成器编程命令
    RFC_CMD_FS_t RF_cmdF =
    {
    .commandNo = 0x0803、
    .status = 0x0000、
    .pNextOp = 0、//插入适用的指针:(uint8_t*)&xxx
    .StartTime = 0x00000000、
    .startTrigger.triggerType = 0x0、
    .startTrigger.bEnaCmd = 0x0、
    .startTrigger.triggerNo = 0x0、
    .startTrigger.PastTrig = 0x0、
    .condition.rule = 0x1、
    .condition.nSkip = 0x0、
    .frequency = 0x0364、
    .fractFreq = 0x4CCD、
    synthConf.bTxMode = 0x0、
    .synthConf.refFreq = 0x0、
    .__dummy0 = 0x00、
    .__dummy1 = 0x00、
    .__dummy2=0x00,
    .__dummy3 = 0x0000
    };
    
    
    // CMD_PROP_TX
    //专有模式发送命令
    RFC_CMD_PROP_TX_t RF_cmdPropTx =
    {
    .commandNo = 0x3801、
    .status = 0x0000、
    .pNextOp = 0、//插入适用的指针:(uint8_t*)&xxx
    .StartTime = 0x00000000、
    .startTrigger.triggerType = 0x0、
    .startTrigger.bEnaCmd = 0x0、
    .startTrigger.triggerNo = 0x0、
    .startTrigger.PastTrig = 0x0、
    .condition.rule = 0x1、
    .condition.nSkip = 0x0、
    .pktConf.bFsOff = 0x0、
    .pktConf.bUseCrc = 0x1、
    .pktConf.bVarLen = 0x1、
    .pktLen = 0x14、
    syncdWord = 0x930B51DE、
    .pPKT = 0 //插入适用的指针:(UINT8_t*)&xxx
    };
    

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

    尊敬的 Thomas:  

    如果您观察 RSSI (例如使用 SmartRF Studio 中的连续 RX 视图)、或者根本没有输出、您是否看到任何输出?  

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

    此外、您能否共享测试时使用的 CC1101设置(以及首先运行125kbps)?

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

    我可以看到、CC1310使用以下设置传输一个脉冲(宽度~84us):





    如果我只将波特率更改为4.8kbaud、那么信号如下所示:

    如果我将 HW_REG_OVERRIDE (0x6098、0x6E00)更改为 HW_REG_OVERRIDE (0x6098、0x0E00)、输出如下所示:




    以下是 CC1101设置:

    const uint8_t CC1101_settings[]=
    {
    0x06、// 00 GDO2
    0x2E、// 01 GDO1
    0x0D、// 02 GDO0
    0x47、// 03 FIFOTHR
    0xAA、// 04 SYNC1
    0xAA、// 05 SYNC0
    0x15、// 06 PKTLEN
    0x04
    、
    
    0x04、0x04、0xAN08/TRTRTRTRUDR1 0x08、0x04、0x04、0x0、0x0、0x0、0x0、0x0、0x0、0x0、0x0、0x0 / TRTRTRN0
    // 0B FSCTRL1
    0x00、// 0C FSCTRL0
    0x21、// 0D FREQ2
    0x65、// 0E FREQ1
    0x6A、// 0F FREQ0
    
    0x5C、// 10 MDMCFIATG4
    0x3B、// 11 MDMCFG3
    0x30、// 12 MDMCFG2
    0x03、// 0F 14
    
    
    
    
    、0x13、0xMMCF61、// MMCF16、0x07、0x24 MMCFMCF16、0x14 / MMCFMCG13、0x14、0xMMCF16 / MMCFMCG0 // 17 MCSM1
    0x18,// 18 MCSM0
    0x2E,// 19 FOCCFG
    0xBF,// 1A BSCFG
    0x03,// 1B AGCCTRL2
    0x00,// 1C AGCCTRL1
    0x91,// 1D AGCCTRL0
    0x87,// WORKEVT1
    0x6B,// EWORFB EVT0 0x11
    
    ,//
    END1 0x20,// ECCTRL 0x11,//
    // 23 FSCAL3
    0x2A,// 24 FSCAL2
    0x00,// 25 FSCAL1
    0x1F,// 26 FSCAL0
    0x41,// 27 RCCTRL1
    0x00,// 28 RCCTRL0
    0x59,// 29 FSTEST
    0x7F,// 2A ptest
    0x3F,// 27 RCCTRL1 0x00,// TEST2
    
    
    0x09 0x22,// TEST2 0x22,TEST2,0x21 0x22
    

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

    尊敬的 Thomas:  

    我要求无线电团队仔细研究、由于使用了 PA 升降机制、CC1310固件今天似乎不允许这样做。 虽然可能会更新 PHY 以支持更高的数据速率、但恐怕目前没有计划这样做。

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

    哦、这些是坏消息...

    是否没有权变措施? 我不需要使用不同级别的 PA 斜坡

    如果我稍微使用寄存器 0x6098和0x52B8的值、会发生一些事情。  

    例如、输出信号如下所示:

    但时间不正确。 最小脉冲的长度为32us (应为8us)

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

    尊敬的 Thomas:  

    我没有简单的权变措施可供您从 SDK 中的内容中"按原样"进行测试。 我从调制解调器团队那里得到的是、这可能是一个与修补程序相关的修复程序、能够以这些速度工作、但现在一天的等待时间很长、因此短期内获得新修补程序的机会不太可能(最后、 它归结到 IT 的业务案例)。

    不过,我已让他们知道这点,并会尽我最大努力,把这点列入《社区发展计划》内。