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:在 OOK 模式下接收时、解调器发出的二进制数据信号的输出

Guru**** 2447710 points
Other Parts Discussed in Thread: CC1350, CC1020

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/725775/cc1310-output-of-binary-data-signal-that-comes-from-the-demodulator-when-receiving-in-ook-mode

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

您好!  

问题1. 当我们使用部分队列从 FIFO 读取数据时、可以按 如下方式获得 RSSI 值:

  RFC_propRxOutput_t   rxStatistics;

  rf_cmdPropRx.pOutput =(uint8*)&rxStatistics;

  很抱歉、我还没有亲自检查。

问题2. 根据从 FIFO 获得的数据、我们可以看到对于2500bps 符号速率、我们可以看到12个样本。

e2e.ti.com/.../0638.DataExcel.xlsx

   我们可以更改它吗?

BR Leonid

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

    请分享您正在使用的设置(API 命令和覆盖)、以及有关您实际传输的数据的信息、我们可以查看这些信息。 我从未测试过透明 FIFO 模式、因此我必须在这里做一个小示例、并想知道您使用的设置。

    BR

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

    您好、Siri、

    感谢您的回答。

    注意事项:

    我们使用信号发生器传输2500bps OOK 波(400 MCS - 0、400 MCS - 1)。

    2. RF 被配置为将接收到的数据输出到 FIFO (output_2_FIFO=1)-请见 pOverrides_ook。

    3. RF 被配置为以符号速率200 MCS (.symbolRate.rateWord = 131)在 OOK 模式下工作。

      在该设置下、当数据输出到引脚(output_2_FIFO=0)时、我们将接收到清晰的信号

    代码如下 :


    #include #include /* BIOS 头文件*/ #include /* TI-RTOS 头文件*/ #include #include "smartrf_settings.h" #include "smartrf_settings_predefined.h" /***** 定义了***** / 静态空回调(rf_handle h、rf_CmdHandle ch、rf_EventMask e); // TI 临时未记录定义 #define IOC_PORT_RFC_SMI_CL_OUT(0x37) #define PINCC26XX_MUX_RFC_SMI_CL_OUTIOC_PORT_RFC_SMI_CL_OUT #define define LED_LED_for_deMODEG_ACTIVE_monitoring_support (IOID_xx) TPort::setMux (IOID_xx、PINCC26XX_MUX_RFC_SMI_CL_OUT) //临时射频定义 static rf_ObjectrfObject; static rf_handlerfHandle; static rf_CmdlHandle rxCmdHnle= NULL;//中止 RX 命令所需的句柄*/ #define entry_LEN (1000) /2。 为接收到的数据配置两个部分读取缓冲区。 确保缓冲区是4字节对齐的。 #define PARTI_RX_ENABLE_SIZE 12 #if defined (__IAR_systems_ICC__) #pragma DATA_ALIGNING= 4 static uint8_t rx entBuf1[PARTIAL_RX_ENABLE_HEADER_SIZE + entry_LEN]; #Readma DATA_alignment= 4 static uint8_rt* rf rf rf1 r* Partition_entry_entry_entry_rf1* (rf1) rf rf rf1 rattrintrintrad_entry_entry_entry_entry_rt_entry_rf1;rf2 rf2 rf2 rf rf1 rat_entry_entry_entry_rt_entry_entry_rf2 rf1 rattradrattrintrintrintrintrintrad_ent_entry_entry_entry_entry_entry_rt*(rf) rf1 rf1 ras_entry_entry rfc_propRxOutput_t rxStatistics_prop; /* CMD_PROP_RX 的输出结构*/ void TTestAddonMonitor::entry() { //显示 Rx 模式下的射频 OOK 并将数据输出到引脚和 FIFO RF_Params rfParams; define _LED_for_deMODEG_ACTIVE_monitoring_support (analog_GPIO_1); rf_Params_init (&rfParams); partialReadEntry1->length =(entry_LEN)+ 4; partialReadEntry1->config.type = data_entry_type_partial;partialReadEntry1->status = data_entry_Pending; partialReadEntry2->length =(entry_le_entry_entry_partit_entry2) partial_entry=partialEntentry2 = partial_entry2;partialEntentry_entry2 = partialentry_entry_entry2 = partialentry_entry_entry_entry2 = partial_entry2;partialentry_entry_entry2 = partialentry_entry_entry_ent_entry2 = partial_entry2 dataQueue.pCurrentEntry =(uint8_t*) partialReadEntry1; dataQueue.pLastEntry = NULL; /*根据应用需求修改 CMD_PROP_RX 命令*/ RF_cmdPropRx.pQueue =&dataQueue; /*为接收的数据设置数据实体队列*/ RF_cmdPropRx.maxPktLen = 0; //对于无限数据包长度 ,必须设置为0 RF_pCmdlet Setup_ook->centerFreq = 0x01B2; RF_pCmdlet Setup_ook->loDivider = 0xA; rfHandle = RF_open (&rfObject、RF_pProp_ook、(RF_RadioSetup*) RF_RadioSet、RF_RadioSet rfParams (&R); rf_pCmdfs_predef->frequency = 0x01b1; rf_pmdfs_predef->fractFreq = 0xEB85; rf_runCmd (rfHandle、(rf_Op*) rf_pmdfs_predef、rf_PriorityNormal、NULL、0); rxCmdHalf = rf_postCmd (rfHandle、(rf_Op*)&rf_cmdPropRx、rf_PriorityNormal、&callback、IRQ_RX_entry_Done /* rf_EventRxEntryDone *); while (1) { //wait for event、... } } #define NUMBER_OFFERS 5 #define DATA_BUFFER_LENGTH (Entry_LEN*NUMBER_O_FACRACERS) static uint8_t data[DATA_buffer_length]; static uint16_t index = 0; void rf_handle 、rf_CmdHandle EventRead、rf_EventMask e){if (e & rf_rf_rf_rf_entrf_entrand_entrand) memcpy (&data[index]、packetDataPointer、entry_LEN); index += entry_LEN; if (index >=(data_buffer_length) ){ index = 0; } currentReadEntry->status = data_entry_pending; currentReadEntry =(RFC_dataEntryal_t*) currentReadEntry ->pPartitionEntry; }

    以下是设置:

    // TI-RTOS 射频模式对象
    RF_Mode RF_PROP_Ok =
    {
    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 OOK
    uint32_t pOverrides_ook[]=
    {
    // override_use_patch_prop_genook_nrz.xml
    // PHY:使用 MCE RAM 补丁、RFE RAM 补丁
    //MCE_RFE_OVERRIDE (1、0、0、1、0),
    
    //
    如果需要“监听”发送器以确定其发送的内容,则应在 RX 端输出原始数据。
    要在 OOK 模式下执行此操作、您需要将 MCE_RFE 覆盖更改为
    //模式2:从位切片器到引脚的透明数据(无同步/跟踪)
    MCE_RFE_OVERRIDE (1、0、2、1、0、0)
    */
    #if (output_2_FIFO)
    MCE_RFE_OVERRIDE (1、3、1、1、0、
    
    0
    、0、0、0、0、0、0、0、0、0、0、0、0、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_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)、
    //HW_REG_OVERRIDE (0x6088、0x0012)、
    HW_REG_OVERRIDE (0x6088、0x0024)、
    
    // override_phy_ook_rx.xml
    // Rx:将 LNA 偏置电流修整偏移设置为3
    (uint32_t) 0x00038883、
    // Rx:在发现同步事件时冻结 RSSI
    HW_REG_OVERRIDE (0x6084、0x35F1)、
    // override_phy_ook_tx_symbol_4_8kbaud.xml
    // Tx:在符号斜降到0x78 (=120)之前设置符号占空比延迟。 这意味着符号斜降将在到达(T_symbol/2)后开始、并等待(120/2)=60us 的延迟。
    HW_REG_OVERRIDE (0x52B8、0x8078)、
    // 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_max.xml
    // Tx:将符号形状斜升到最大 PA 级别(0x7200)。 说明:最小功率=0x6100、...、最大功率=0x7200。 位[15:13]设置每个 PA 斜坡级别的等待延迟。 位[12:8]设定从斜升 LUT (范围1-18)使用的 PA 电平的数量。 保留位[7:0]。
    HW_REG_OVERRIDE (0x6098、0x7200)、
    // override_phy_rx_rssi_offset_5db.xml
    // Rx:设置 RSSI 偏移以将报告的 RSSI 调整+5dB
    (uint32_t) 0x00FB88A3、
    
    HW_REG_OVERRIDE (0x1110、RFC_DBELL_SYSGPOCTL_GPOCTL0_MCEGPO0|//MCE_GPO0二进制数据信号、发送时会进入调制器。
    RFC_DBELL_SYSGPOCTL_GPOCTL1_MCEGPO1|//MCE_GPO1接收时来自解调器的二进制数据信号。
    RFC_DBELL_SYSGPOCTL_GPOCTL2_CPEGPO0|//CPE_GPO0控制外部 LNA 前端 当必须启用 LNA 时为高电平、否则为低电平
    RFC_DBELL_SYSGPOCTL_GPOCTL3_RATGPO0 //RAT_GPO0在传输启动时变为高电平、在传输完成时变为低电平。 可用于实现精确的计时同步。
    )
    
    、/******* 带定义,已添加,未更改***** /
    // override_synth_disable_bias_div10.xml
    //合成:将分频器偏置设置为禁用
    HW32_array_override (0x405C、1)、
    //合成:将分频器偏置设置为禁用(特定于 loder=10)
    (uint32_t) 0x18000280、
    
    #if (IQ_PATCH_ACTIVE)
    //设置为在运行 IQ 转储补丁(
    uint32_t) 0x001082C3、
    #endif 时避免内部 FIFO 溢出
    
    
    /********* 波段结束 /
    
    (uint32_t) 0xFFFFFFFF、
    };
    
    // CMD_PROP_RADIO_DIV_SETUP OOK
    RFC_CMD_PROP_RADIO_DIV_SETUP_t RF_cmdPropDivSetup_ook =
    {
    .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、
    //.symbolRateWord = 0xC4A、
    //.symbolRate.rateWord = 0x666、//2500
    //.symbolRate.rateWord = 786、//1200
    //.symbolRate.rateWord = 546、//833
    //.symbolRateWord = 1666、//1091
    //.symbolRateWord = 666、//1000
    //.symbolRateWord = 524、//800
    //.symbolRate.rateWord = 262、 //400
    .symbolRate.rateWord = 131、 200,还可以!!!
    //.rxBw = 0x20、
    .rxBw = 41、
    
    .Preambf.nPreamBytes = 0x4、
    .formatConf.nSwBits = 0x20、
    .formatConf.bBitVersal = 0x0、
    #if (IQ_PATCH_ACTIVE)
    //使用补丁时、必须对从 SmartRF Studio 导出的 API 进行一些更改。
    必须将 CMD_PROP_RADIO_DIV_SETUP 中的//formatConf.bMsbFirst 设置为0、以允许 LSB
    优先//传输
    
    .formatConf.bMsbFirst = 0x0、
    #else
    .formatConf.bMsbFirst = 0x1、
    #endif
    formatConf.fecMode = 0x0、
    //.formatConf.whitenMode = 0x1、
    .formatConf.whitenMode = 0x0、
    .config.frontEndMode = 0x0、
    config.biasMode = 0x1、
    .config.analogCfgMode = 0x0、
    config.bNoFsPowerUp = 0x0、
    TxPower = 0xA73F、
    .pRegOverride = pOverrides_ook、
    .centerFreq = 0x0364、
    .intFreq = 0x8000、
    .loDivider = 0x05、
    };
    
    // CMD_FS
    RFC_CMD_FS_t RF_cmdFs_predef =
    {
    .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 = 0x0000、
    synthConf.bTxMode = 0x0、
    .synthConf.refFreq = 0x0、
    .__dummy0 = 0x00、
    .__dummy1 = 0x00、
    .__dummy2=0x00,
    .__dummy3=0x0000
    ,};
    

    BR

    Leonid

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

    我将于周一在实验室进行一些测试、因为从家中我无法从数据条目中获取任何有意义的数据。
    不过、我想知道您正在编程的数据速率。 您说您使用2.5kbps 的数据速率、但您将数据速率编程为200bps、并且发送速率为2.5bps 的前导码
    您在 Excel 工作表中确切显示的内容。 您是否从255的数据条目中读取12个字节、以及从0的12个字节中读取?

    BR

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

    你(们)好、列奥尼

    我今天已经能够做一些测试了。 我所做的是使用 Studio 中的4.8kbps 设置(我在868MHz 上进行了测试)、然后将数据速率更改为2.5kbps。在 TX 端、我发送了一个2.5kbps 的连续前导码。

    我更改以下覆盖项:

    HW_REG_OVERRIDE (0x5204、0x0002) 

    至:

    HW_REG_OVERRIDE (0x5204、0x0102) 

    当查看数据条目中接收到的数据时、每1位接收8位1、每0位接收0位0:

    Siri

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

    您好、Siri、

    在将数据输出到 FIFO 之前、我们尝试将数据输出到引脚。  

    位速率设置为200bps 以防止 AGC 接收噪声。

    实际数据发送速率为2500bps、没有前导码和同步。

    当我们使用 FIFO 开始测试时、设置保持不变。 但是、来自信号发生器的数据具有多种形式 、例如:

    400 MCS - 0/400 MCS - 1、

    800 MCS - 0/400 MCS -1

    2800 MCS -0/400 MCS -1

    等等

    我们在 FIFO 中看到了适当的数据。

    是的、我们在 FIFO 中有0和255个数据。

    BR

    Leonid

     

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

    我的覆盖是否为您提供了所需的内容? 它将为每个接收到的位提供8位数据条目(数据速率编程为2.5kbps)。

    Siri
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Siri、
    感谢您的回答。
    在 smartrf_settings.c 中、我们看到以下内容:
    // 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)、
    问:HW_REG_OVERRIDE (0x5204、0x0102)覆盖的含义是什么?
    BR
    Leonid
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好、列奥尼

    当使用透明模式访问 FIFO 时、寄存器0x40045204中的15:8位提供了控制以透明模式对幅度进行采样和向引脚写入数据的频率的功能。

    0:无透明下采样
    1:2次透明下采样
    2:四倍透明下采样
    3:8次透明降采样
    4:16次透明降采样

    同一寄存器中的位7:0:

    幅度估算器的幅度可以选择通过 IIR 滤波器进行低通滤波、然后再与位切片器阈值进行比较。 BW 通过该寄存器进行控制:
    0:无滤波器
    1:K=1/2
    2:K=1/4
    3:K=1/8

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

    您好、Siri、

    我将 LaunchPad 与 cc1350搭配使用、 使用 Override 命令更改 外部信号是什么? 我需要在 DIO_1引脚上使用 MCE_GPO1。

    此外、如何使用代码中的覆盖? 有这方面的任何示例?

    谢谢、

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

    请参阅:

    如何将射频内核信号路由到物理引脚。

    不确定我是否理解您的第二个问题。

    需要通过 setup 命令配置覆盖项。 您不应以任何其他方式更改任何寄存器。

    BR

    Siri

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

    您好、Siri、

    感谢您的回答。

    我在 设计为包含 cc1350的新电路板上工作、 需要与包括 CC1020的旧电路板通信、并在以下射频配置下工作:

    系统参数:
    X 轴频率:14.745600 MHz 内部
    X 线精度:+/- 3ppm
    射频频率 A:915.000000 MHz 有源 Rx
    射频频率 B:915.000000 MHz 非活动 Tx
    频率分离:16.200kHz
    数据速率:9.600kBaud
    数据格式:UART 精确
    射频输出功率:5dBm
    通道宽度:100kHz
    调制:启用 FSK 抖动
    锁定:连续
    载波侦听偏移:禁用0dBm DCLK 噪声通道
    操作员模式:Rx。

    目前、我使用一个 CC1350 LaunchPad 并尝试使用 Smart RF Studio 接收来自旧板的数据、但我无法获取任何数据。

    我的旧板使用专有协议、因此我不确定问题是数据包形式还是射频参数中的问题。

    因此、我尝试 在 RFC_GPO0中获取 MCE_GPO1 (接收时来自解调器的二进制数据信号)、并将 RFC_GPO0连接到 DIO_1。

    我使用该示例进行了一些更改:

    //将 RAT_GPO2映射到 RFC_GPO0
    //将 MCE_GPO1映射到 RFC_GPO1
    //HWREG (RFC_DBELL_BASE + RFC_DBELL_O_SYSGPOCTL)= RFC_DBELL_SYSGPOCTL_GPOCTL0_RATGPO2 | RFC_DBELL_SYSGPOCTL_GPOCTL1_MCEGPO1;

    因此、我从 Smart RF Studio 的覆盖编辑器发送:HW_REG_OVERRIDE (0x1020、0x005E)、并更改 DIO1以将射频内核数据连接到0、但我没有在 DIO_1上获取数据。

    我还尝试发送: HW_REG_OVERRIDE (0x1110、0x005E) 、但我没有在 DIO_1上获取数据。

    问题1:我的覆盖是否正确?

    问题2: 您是否有任何关于如何 继续的建议?

    问题3:我添加 了 LaunchPad 的照片、 可能有一些跳线不在原位?

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

    你(们)好

    我往往会忘记、使用 OOK 贴片时、还有另一种输出信号的方法(忽略用户指南中的内容)。 很抱歉。 如果您希望 OOK 信号输出到引脚上而不是输入数据、则需要通过设置来更改模式

    MCE_RFE_OVERRIDE (1、0、2、1、0)

    要在 IOID_1上获取 OOK 信号、您需要添加以下内容:

    PIN_Config pinTable[]=
    {
    IOID_1 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、
    PIN_Terminate
    };
    。
    。
    PINCC26XX_setMux (pinHandle、IOID_1、PINCC26XX_MUX_RFC_SMI_CL_OUT);
    

    Siri

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

    您好、Siri、

    再次感谢、

    问题是我不使用 OOK、而是使用 FSK 调制。

    也使用 FSK 时、该模式是否起作用?

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

    否 使用 FSK 时、您需要使用我提到的用户指南中描述的方法。 我刚才在我们的 SDK 中采用了 rfPacketRX 示例、并对其进行了修改、以便在 IOID_1上输出接收到的串行数据:

    在 smartrf_setting.c 中、我添加了:

    #include DeviceFamily_constructPath (inc/hw_rfc_dwel.h)
    。
    。
    。
    //覆盖 CMD_PROP_RADIO_DIV_SETUP
    静态 uint32_t pOverrides[]=
    {
    // override_use_patch_prop_genfsk.xml
    // PHY:使用 MCE ROM 组4、RFE RAM 补丁
    MCE_RFE_OVERRIDE (0、4、0、1、0、0)、
    。
    。
    。
    。
    HW_REG_OVERRIDE (0x1110、RFC_DBELL_SYSGPOCTL_GPOCTL1_MCEGPO1)、
    (uint32_t) 0xFFFFFFFF、
    }; 

    在 rfPacketRX.c 中:

    #include 
    。
    。
    。
    PIN_Config pinTable[]=
    {
    BOARD_PIN_LED2 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX
    、#IF 定义 Board_CC1352R1_LAUNCHXL
    BOARD_DIO30_RFSW | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_PushPull | PIN_DRVSTR_MAX
    、#endif
    ioID_1 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、
    PIN_TERMINATE
    };
    
    void *mainThread (void *arg0)
    {
    rf_params rfParams;
    rf_params_init (&rfParams);
    
    /*打开 LED 引脚*/
    ledPinHandle = PIN_OPEN (&ledPinState、pinTable);
    if (ledPinHandle ==空)
    {
    while (1);
    }
    
    if (RFQueue_defineQueue (&dataQueue、
    rxDataEntryBuffer、
    sizeof (rxDataEntryBuffer)、
    num_data_entries、
    max_length + NUM_apped_bytes))
    {
    /*未能为所有数据条目分配空间*/
    while (1);
    }
    
    /*根据应用需求修改 CMD_PROP_RX 命令*/
    /*为接收的数据设置数据实体队列*/
    RF_cmdPropRx.pQueue =&dataQueue;
    /*丢弃来自 Rx 队列的已忽略的数据包*/
    rf_cmdProprx.rxConf.bAutoFlushIgnored = 1;
    /*丢弃来自 Rx 队列的 CRC 错误数据包*/
    rf_cmdPropRx.rxConf.bAutoFlushCrcErr = 1;
    /*实施数据包长度过滤以避免 PROP_ERROR_RXBUF */
    RF_cmdPropRx.maxPktLen = MAX_LENGTH;
    rf_cmdPropRx.pktConf.bRepeatOk = 1;
    rf_cmdPropRx.pktConf.bRepeatNok = 1;
    
    PINCC26XX_setMux (ledPinHandle、IOID_1、PINCC26XX_MUX_RFC_GPO1);
    。
    。
    

    BR

    Siri

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

    您好、Siri、

    您撰写的内容:

    你(们)好、列奥尼

    当使用透明模式访问 FIFO 时、寄存器0x40045204中的15:8位提供了控制以透明模式对幅度进行采样和向引脚写入数据的频率的功能。

    0:无透明下采样
    1:2次透明下采样
    2:四倍透明下采样
    3:8次透明降采样
    4:16次透明降采样

    同一寄存器中的位7:0:

    幅度估算器的幅度可以选择通过 IIR 滤波器进行低通滤波、然后再与位切片器阈值进行比较。 BW 通过该寄存器进行控制:
    0:无滤波器
    1:K=1/2
    2:K=1/4
    3:K=1/8

    BR
    Siri
    *
    HW_REG_OVERRIDE (0x5204、0x0102)、//我们看到每位6个样本、Siri - 8

    问题1:  将位15:8设置为0是否正确,我们有 12个样本?

    Q2:是否可以更改此值( 对于位15:8、是否等于0)?

    BR

    Leonid

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

    我认为、您将获得多少个样本(对于给定的覆盖)将取决于 RX BW 和您使用的数据速率。

    您能否向我们提供您正在使用的射频设置的完整列表? 是否正确地说、您正在尝试的是具有8位过采样的 FIFO 的透明模式?

    我在获取8位时提供的覆盖数据速率为2.5kbps。

    对于您使用的设置、如果您只是使用透明的引脚、一切看起来都正常吗? 我不确定使用 OOK 补丁可以达到多高的数据速率、我知道 Studio 中的设置针对4.8kbps 进行了优化、如果您大幅更改数据速率、占空比将不再是50%。

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

    您好、Siri、这里是射频设置:

    // CMD_PROP_RADIO_DIV_SETUP OOK
    RFC_CMD_PROP_RADIO_DIV_SETUP_t RF_cmdPropRadioDivSETUP_ook =
    {
    .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 = 131、 200,还可以!!!
    .rxBw = 41、 //+- 150kHz,灵敏度-110dB
    
    .PreambBytes = 0x4、
    .formatConf.nSwBits = 0x20、
    .formatConf.bBitVersal = 0x0、
    #if (IQ_PATCH_ACTIVE)
    //使用补丁时、必须对从 SmartRF Studio 导出的 API 进行一些更改。
    必须将 CMD_PROP_RADIO_DIV_SETUP 中的//formatConf.bMsbFirst 设置为0、以允许
    首先传输 LSB
    
    .formatConf.bMsbFirst = 0x0、
    #else
    .formatConf.bMsbFirst = 0x1、
    #endif
    formatConf.fecMode = 0x0、
    formatConf.whitenMode = 0x0、
    .config.frontEndMode = 0x0、
    config.biasMode = 0x1、
    config.analogCfgMode = 0x0、
    config.bNoFsPowerUp = 0x0、
    TxPower = 0xA73F、
    .pRegOverride = pOverrides_ook、
    .centerFreq = 0x01B2、
    .intFreq = 0x8000、
    .loDivider = 0xA;、
    };
    // CMD_PROP_RADIO_DIV_SETUP OOK
    UINT32_t pOverrides_ook[]=
    {
    // override_use_patch_prop_genook_nrz.xml
    // PHY:使用 MCE RAM 补丁、RFE RAM 补丁
    //MCE_RFE_OVERRIDE (1、0、0、1、0),
    
    //
    如果需要“监听”发送器以确定其发送的内容,则应在 RX 端输出原始数据。
    要在 OOK 模式下执行此操作、您需要将 MCE_RFE 覆盖更改为
    //模式2:从位切片器到引脚的透明数据(无同步/跟踪)
    MCE_RFE_OVERRIDE (1、0、2、1、0)
    */
    
    MCE_RFE_OVERRIDE (1、0、3、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_phy_rx_aaf_bw_0xd.xml
    // Rx:将抗混叠滤波器带宽设置为0xD (在 ADI0中、设置 IFAMPCTL3[7:4]=0xD)
    ADI_HALFREG_OVERRIDE (0、61、0xF、0xD)、
    
    // override_phy_ook_rx.xml
    // Rx:将 LNA 偏置电流修整偏移设置为3
    (uint32_t) 0x00038883、
    
    // override_phy_rx_rssi_offset_5db.xml
    // Rx:设置 RSSI 偏移以将报告的 RSSI 调整+5dB
    (uint32_t) 0x00FB88A3、
    
    /***** 具体部分的开头部分 /
    
    /******* 调试定义 (三 /#if
    (rf_debug_mode)
    /*
    SYNCWORD 上的中断
    当在引脚上获取找到的 SYNC 信号时、它们应该在覆盖列表中添加以下内容:
    //
    //在 RATGPO1上找到输出 SYNC 信号
    (uint32_t) 0x008F88B3、
    SW_REG_BYTE_OVERRIDE (FrontEndPar、gpoControl、0x8F)、
    
    HW_REG_OVERRIDE (0x1110、 RFC_DBELL_SYSGPOCTL_GPOCTL0_MCEGPO0|//MCE_GPO0二进制数据信号、在发送时会进入调制器。
    RFC_DBELL_SYSGPOCTL_GPOCTL1_MCEGPO1|//MCE_GPO1接收时来自解调器的二进制数据信号。
    RFC_DBELL_SYSGPOCTL_GPOCTL2_RATGPO1|//当在接收器中发现 SYNC 时、信号 RATGPO1可配置为高电平;当数据包被接收或接收中止时、信号 RATGPO1可配置为低电平
    //RFC_DBELL_SYSGPOCTL_GPOCTL2_CPEGPO0|//CPE_GPO0控制外部 LNA 前端 当必须启用 LNA 时为高电平、否则为低电平
    RFC_DBELL_SYSGPOCTL_GPOCTL3_RATGPO0 //RAT_GPO0在传输启动时变为高电平、在传输完成时变为低电平。 可用于实现精确的计时同步。
    )、
    #endif
    /********* 调试定义结束******** /
    
    /********* 带定义,已添加,未更改***** /
    // override_synth_disable_bias_div10.xml
    //合成:将分频器偏置设置为禁用
    HW32_array_override (0x405C、1)、
    //合成:将分频器偏置设置为禁用(特定于 loder=10)
    (uint32_t) 0x18000280、
    ********* 波段结束 /
    
    /********分集定义 Tx/Rx,在 Rx ST3***/中删除
    // Rx:在发现同步事件时冻结 RSSI
    HW_REG_OVERRIDE (0x6084、0x35F1)、
    // override_phy_gfsk_pa_ramp_agc_reflevel_0x1a.xml
    // Tx:启用 PA 斜升(0x41)。 RX:将 AGC 基准电平设置为0x1A。
    HW_REG_OVERRIDE (0x6088、0x411A)、
    // Tx:配置 PA 斜升设置
    HW_REG_OVERRIDE (0x608C、0x8213)
    
    、/******多元化结束 /
    
    
    
    
    /********TX 功率定义,已添加,已更改***** /
    // TX 功率覆盖
    // Tx:将 PA 调整设置为最大值(在 ADI0中、设置 PACTL0=0xf8)
    ADI_REG_OVERRIDE (0、12、0xF8)、
    /******* 带末 Tx 功率***** /
    //******* OOK 定义 (三 /
    // override_phy_agc_reflevel_0x19.xml //tbd!!!
    // Rx:将 AGC 基准电平设置为0x19
    HW_REG_OVERRIDE (0x6088、0x0024)、
    
    // Rx:在发现同步事件时冻结 RSSI
    HW_REG_OVERRIDE (0x6084、0x35F1)、
    
    // override_phy_ook_tx_symbol_4_8kbaud.xml
    // Tx:在符号斜降到0x78 (=120)之前设置符号占空比延迟。 这意味着符号斜降将开始
    达到(T_symbol/2)+后、等待(120/2)=60us 的延迟。
    HW_REG_OVERRIDE (0x52B8、0x8078)、
    
    // 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。
    /*
    Hi Leonid
    
    当使用透明模式到 FIFO 时,寄存器0x40045204中的15:8位提供了控制在透明模式下采样幅度和向引脚写入数据的频率的能力。
    
    0:无透明下行采样
    1:透明下行采样2
    :透明下行采样4:
    透明下行采样8:
    透明下行采样4:透明下行采样16
    
    位7:0在同一寄存器中:
    
    幅度估算器的幅度可以选择通过 IIR 滤波器进行低通滤波、然后再与位切片器阈值进行比较。 通过该寄存器控制 BW:
    0:无滤波
    器1:K=1/2
    2:K=1/4
    3:K=1/8
    
    BR
    Siri
    */
    HW_REG_OVERRIDE (0x5204、0x0102)、 //我们看到每位6个样本,Siri - 8
    
    // override_phy_ook_tx_power_max.xml
    // Tx:将符号形状斜升到最大 PA 级别(0x7200)。 说明:最小功率=0x6100、...、最大功率=0x7200。 位[15:13]设置每个 PA 斜坡级别的等待延迟。 位[12:8]设定从斜升 LUT (范围1-18)使用的 PA 电平的数量。 保留位[7:0]。
    HW_REG_OVERRIDE (0x6098、0x7200)
    、/***** OOK 定义结束 /
    
    
    /******* 特定部分结束 /
    
    (uint32_t) 0xFFFFFFFF
    、};
    BR 
    Leonid

     

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

    据我所见、您正在尝试设置200bps 的数据速率和311kHz 的 RX BW。 不支持此功能。 请在此处使用 SmartRF Studio 和 OOK 设置、您将看到如何配置符号速率和 RX BW。 您可以拥有的最低数据速率为1.9kbps。

    BR

    Siri