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.

[参考译文] LAUNCHXL-CC1352P:如何在 SysConfig 中启用/禁用高 PA

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1162018/launchxl-cc1352p-how-to-enable-disable-high-pa-in-sysconfig

器件型号:LAUNCHXL-CC1352P
主题中讨论的其他部件:SysConfigCC1352P、、LAUNCHXL-CC1352R1 CC1352R

您好!

 这里是业余爱好者。 我正在尝试通过对 SysConfig 执行以下更改来禁用 simple_peripheral 项目中的高 PA:

1 -选项卡"Software->BLE->Radio->BLE Radio Configuration":取消 标记"High PA"选项并在 "Tx Power (dBm)"支架中选择"5"。

2-选项卡“Software->RF Design”:在“Asing High PA to Frequency Band”中选择“None”。

 在尝试构建时、我在文件"Ble_user_config.c"中遇到以下错误:

1 - 标识符"pOverrides_bleTx20"未定义 ble_user_config.c /simple_peripheral_CC13X2P_LAUNCHXL_tirtos_ccs/iCallBLE 行365 C/C++问题

2 - 标识符"pOverrides_bleTxStd"未定义 BLE_USER_CONFIG.c /simple_peripheral_CC13X2P_LAUNCHXL_tirtos_CCS/iCallBLE 行364 C/C++问题

BLE_USER_CONFIG.c 不是由 SysConfig 自动生成的、因此我想我可能缺少一个步骤来禁用"High PA"。

一个有趣的问题  是、我在 SysConfig 选项卡"软件->BLE->无线电->BLE 无线电配置"上看到以下消息:"BLE 模块未使用 ti_radio_config.c"中的 RF_Mode。

我使用的是 cc13x2_26x2_SDK_5_10_00_48 (我知道它在一年半 前做一些测试时已经过时)。

 

提前感谢!

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

    您好、Elias、

    供参考、它实际上也在 SDK 6.20中发生。 我们将对此进行检查。

    此致、

    Arthur

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

    大家好、Elias、

    您是否会在应用中使用 PA?
    这里的权变措施是实际导入  CC13X2P_1_LAUNCHXL Launchpad 的"simple_peripheral"、但我们将尝试查找导致该行为的原因。

    此致、

    Arthur

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

    Arthur、您好!

     我计划在将来使用它、但我可以备份当前启用了"高 PA"的工作。 我将在明天进行测试、并告诉您结果。

     我的想法是让边缘 BLE 器件使用正常的 PA (5dBm)与智能手机通信、并在 BLE 网状网络中使用"高 PA"。 是否可以在运行时配置此参数? 或者,我需要选择其中一个,并永久地坚持使用(仅在配置时更改)?

    此致、

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

    您好、Elias、

    我实际上意识到您的所有答案都在这个主题中: https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1065737/cc1352p-how-to-set-ble-tx-power

    总之:

    _在 SysConfig 中、切换到基于"LAUNCHXL-CC1352P-2"的定制设计。 这将允许您选择高功率放大器或将其禁用。
    _要在运行时更改 TX 功率:
       _用于广播: https://software-dl.ti.com/simplelink/esd/simplelink_cc2640r2_sdk/2.20.00.49/exports/docs/ble5stack/ble_user_guide/doxygen/ble/html/group___gap_adv.html#ga65020be0895c76efdaf18cb6da791a60 、具有"GAP_ADV_PARAM_TX_POWER" ID。
       _默认电源: https://software-dl.ti.com/simplelink/esd/simplelink_cc2640r2_sdk/3.40.00.10_new/exports/docs/ble5stack/ble_user_guide/doxygen/ble/html/group___h_c_i.html#gafb44c5a388a047db7c3c4d0a4ac57320

    此致、

    Arthur

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

    您好、Elias、

    这似乎对您没有帮助。 您是否有更多您愿意分享的详细信息、以便我们为您提供帮助?

    此致、

    Arthur

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

    您好、Arthur!

     昨天一整晚都在想让它正常工作。 提供的所有变通办法都不起作用、请在下面检查它们:

    1 -将 复制的 ble_user_config.c 的"simple_peripheral_CC1352P1_LAUNCHXL_tirtos7_climang"导入到"simple_peripheral_CC1352P_2_LAUNCHXL_tirtos7_climang";仍然会发生相同的问题。

    2 -尝试使用"定制板"选项、但有许多参数可用于设置操作中使用常用值的参数;同样的问题仍然存在、并且会提出新的参数。

     是否有方法禁用 SysConfig 工具以自动生成 ti_radio_config.c? 我正在考虑使用生成的代码片段、用于正常 PA 的"High PA"。

     另外、在另一个线程中、我了解到有一种方法可以在运行时更改 Tx 功率、但选择/取消选择"高 PA"似乎不是一个选项? 您能确认吗?

    此致、

    埃利亚斯

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

    您好、Elias、

    这很奇怪、对于权变措施2、通过我向您发送的指令查看功耗(0dBm 与20dBm)、似乎可以正常工作。 我一直在使用6.20 SDK、这可能是原因所在。 我将尝试5.10。

    从 SysConfig 问题开始、您将通过以下方式执行该操作:

    1. 首先、复制生成的 ti_radio_config.c/.h (如果必须保存)。
    2. 单击窗口右上角 SysConfig 中的括号按钮。
    3. 通过取消选中单选按钮来禁用文件生成。

    此致、

    Arthur

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

    您好、Arthur!

     实际上、 当我尝试使用解决方法1的"定制板"设置时、我使用了6.20 SDK。

      我曾尝试禁用自动生成,但当我尝试构建 CCS 时,会删除未选择的文件,因此由于缺少 ti_radio_config.h,会引发许多错误。

     我已经正式放弃尝试将此板与常规 PA 一起使用、也许 是这样的。  

    此致、

    埃利亚斯

      

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

    您好、Elias、

    如果看一下我之前的说明、第一步是将 ti_radio_config.h 和 ti_radio_config.c 复制到项目的根目录、以精确地防止这些错误。 您能再试一次吗?

    此致、

    Arthur

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

    您好、Arthur!

    从图片中可以看到、出现了相同的错误。

    1 -我复制了"simple_peripheral_CC1352P1_LAUNCHXL_tirtos7_climang"项目中的 ti_radio_config.h 和.c、并将它们粘贴到项目"simple_peripheral_CC1352P_2_LAUNCHXL_tirtos7_tosang"的根目录中。

    2-禁用这些文件的自动生成。

    3 -再次尝试构建。

    此致、

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

    您好、Elias、

    实际上、之所以会发生这种情况、是因为这是 E2E 帖子所涉及的问题。 我意识到我之前发送给您的说明是错误的(关于定制板设置)。

    同样、您必须在 SysConfig 中切换项目、使其使用自定义板。 但这次使用"LAUNCHXL-CC1352P1"。 此时、我假设您遇到的错误是"  You must _imple_rfDriverCallbackAntennenSwitching_se_generated_ti_drivers_config_c_in_debug_folder_OR_SysConfig 预览./syscfg/ti_drivers_config.o。"。

    为了修复该错误,请将以下代码复制粘贴到 simple_peripheral.c (从原始 simple_peripheral 项目的 ti_driver_config.c 复制)中:

    /*
     * ======== rfDriverCallbackAntennaSwitching ========
     * Sets up the antenna switch depending on the current PHY configuration.
     *
     * Truth table:
     *
     * Path       DIO28 DIO29 DIO30
     * ========== ===== ===== ===== 
     * Off        0     0     0
     * 2.4 GHZ    1     0     0
     * HIGH PA    0     1     0
     * SUB1 GHZ   0     0     1
     */
    void rfDriverCallbackAntennaSwitching(RF_Handle client, RF_GlobalEvent events, void *arg)
    {
    
        if (events & RF_GlobalEventRadioSetup) {
            bool    sub1GHz   = false;
            uint8_t loDivider = 0;
    
            /* Switch off all paths. */
            GPIO_write(CONFIG_RF_24GHZ, 0);
            GPIO_write(CONFIG_RF_HIGH_PA, 0);
            GPIO_write(CONFIG_RF_SUB1GHZ, 0);
    
            /* Decode the current PA configuration. */
            RF_TxPowerTable_PAType paType = (RF_TxPowerTable_PAType)RF_getTxPower(client).paType;
    
            /* Decode the generic argument as a setup command. */
            RF_RadioSetup* setupCommand = (RF_RadioSetup*)arg;
    
            switch (setupCommand->common.commandNo) {
                case (CMD_RADIO_SETUP):
                case (CMD_BLE5_RADIO_SETUP):
                        loDivider = RF_LODIVIDER_MASK & setupCommand->common.loDivider;
    
                        /* Sub-1GHz front-end. */
                        if (loDivider != 0) {
                            sub1GHz = true;
                        }
                        break;
                case (CMD_PROP_RADIO_DIV_SETUP):
                        loDivider = RF_LODIVIDER_MASK & setupCommand->prop_div.loDivider;
    
                        /* Sub-1GHz front-end. */
                        if (loDivider != 0) {
                            sub1GHz = true;
                        }
                        break;
                default:break;
            }
    
            if (sub1GHz) {
                /* Sub-1 GHz */
                if (paType == RF_TxPowerTable_HighPA) {
                    /* PA enable --> HIGH PA
                     * LNA enable --> Sub-1 GHz
                     */
                    GPIO_setMux(CONFIG_RF_24GHZ, IOC_PORT_GPIO);
                    /* Note: RFC_GPO3 is a work-around because the RFC_GPO1 (PA enable signal) is sometimes not
                             de-asserted on CC1352 Rev A. */
                    GPIO_setMux(CONFIG_RF_HIGH_PA, IOC_PORT_RFC_GPO3);
                    GPIO_setMux(CONFIG_RF_SUB1GHZ, IOC_PORT_RFC_GPO0);
                } else {
                    /* RF core active --> Sub-1 GHz */
                    GPIO_setMux(CONFIG_RF_24GHZ, IOC_PORT_GPIO);
                    GPIO_setMux(CONFIG_RF_HIGH_PA, IOC_PORT_GPIO);
                    GPIO_setMux(CONFIG_RF_SUB1GHZ, IOC_PORT_GPIO);
                    GPIO_write(CONFIG_RF_SUB1GHZ, 1);
                }
            } else {
                /* 2.4 GHz */
                if (paType == RF_TxPowerTable_HighPA)
                {
                    /* PA enable --> HIGH PA
                     * LNA enable --> 2.4 GHz
                     */
                    GPIO_setMux(CONFIG_RF_24GHZ, IOC_PORT_RFC_GPO0);
                    /* Note: RFC_GPO3 is a work-around because the RFC_GPO1 (PA enable signal) is sometimes not
                             de-asserted on CC1352 Rev A. */
                    GPIO_setMux(CONFIG_RF_HIGH_PA, IOC_PORT_RFC_GPO3);
                    GPIO_setMux(CONFIG_RF_SUB1GHZ, IOC_PORT_GPIO);
                } else {
                    /* RF core active --> 2.4 GHz */
                    GPIO_setMux(CONFIG_RF_24GHZ, IOC_PORT_GPIO);
                    GPIO_setMux(CONFIG_RF_HIGH_PA, IOC_PORT_GPIO);
                    GPIO_setMux(CONFIG_RF_SUB1GHZ, IOC_PORT_GPIO);
                    GPIO_write(CONFIG_RF_24GHZ, 1);
                }
            }
        }
        else if (events & RF_GlobalEventRadioPowerDown) {
            /* Switch off all paths. */
            GPIO_write(CONFIG_RF_24GHZ, 0);
            GPIO_write(CONFIG_RF_HIGH_PA, 0);
            GPIO_write(CONFIG_RF_SUB1GHZ, 0);
    
            /* Reset the IO multiplexer to GPIO functionality */
            GPIO_setMux(CONFIG_RF_24GHZ, IOC_PORT_GPIO);
            GPIO_setMux(CONFIG_RF_HIGH_PA, IOC_PORT_GPIO);
            GPIO_setMux(CONFIG_RF_SUB1GHZ, IOC_PORT_GPIO);
        }
    }


    请在每个步骤之间清洁项目。

    我已将该项目附加到这里、适用于6.20 SDK: e2e.ti.com/.../sp_5F00_no_5F00_PA_5F00_620.zip

    此致、

    Arthur

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

    您好、Arthur!

     当我将此项目刷写到 LAUNCHXL-CC1352P2时,它是否起作用 ? 我没有  LAUNCHXL-CC1352P1 板。 我的意思是、不仅编译/编译、功能还能正常工作吗?

    此致、

    埃利亚斯

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

    您好、Elias、

    它可以正常工作、但由于 LAUNCHXL 电路板之间的射频匹配网络不同、因此您不会获得最佳范围/电流消耗。 因为这是一个业余项目、所以这应该是好的。

    除了让 LAUNCHXL-CC1352P2 放电外、是否有理由不选择 LAUNCHXL-CC1352R1?

    此致、

    Arthur

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

    您好、Arthur!

     它可以正常工作、但在我执行您要求的更改之前、"simple_peripheral_CC1352P1_LAUNCHXL_tirtos7_clicang"项目正在使用禁用的高 PA 选项(自定义电路板并向 simple_peripheral.c 添加代码片段)。 那么、这两者之间的区别现在是什么?

     关于电路板、我认为这是当时最好的选择、因为我想为我的个人项目切换 Tx 功率设置。 它们之间的主要区别是什么?

    此致、

    埃利亚斯

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

    您好、Elias、

    区别在于、现在使用定制板、您可以自由选择射频设置、并且高功率放大器将根据您选择的设置启用(此处为 CC1352P-2设置、而高功率放大器分配给2.4GHz 频带):

    请记住、您必须将高功率放大器分配给2.4GHz、使其正常工作。 这首先使我们逃脱了,造成了这个问题。

    CC1352R 和 CC1352P 是相同的芯片、但 CC1352P 集成了射频功率放大器、如我们所见。 CC1352R 可在低于1GHz 频段中输出+14dBm、在2.4GHz 频段中输出5dBm。

    此致、

    Arthur