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.
您好!
这里是业余爱好者。 我正在尝试通过对 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 问题开始、您将通过以下方式执行该操作:
此致、
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); } }
您好、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