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.

[参考译文] CC2541:具有 PA 的 CC2541仅使用 TX 和 RX

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1218586/cc2541-cc2541-with-pa-only-uses-tx-and-rx

器件型号:CC2541
主题中讨论的其他器件: CC2590

对于 CC2541和 PA 的编程有几个问题(协议栈1.3.2版)

1.在 HCI_EXT_ExtendRfRangeCmd,的协议栈中、默认情况下、该 HCI 指令设置、P1_1 (__LW_AT__P1_2、P1_3)的全部三个引脚?

由于我们的硬件设计仅针对 PA,包含 P1_2和 P1_3、因此(P1_1)引脚用于按钮、可将其设置为上拉输入以检测下降沿。

因此、我想问如何仅使用这两个引脚(P1_2、P1_3)为 RF 配置相应的寄存器。

如果未启用、命令行中的宏(HAL_PA_LNA_CC2590)会影响 PA 的设置(仅使用 P1_2和 P1_3引脚)。

3.是否需要将(P1_2、P1_3)设置为正常 IO 并将其设置为低电平以使 PA 芯片保持低功耗状态,而无需在进入低功耗时执行指令(HCI_EXT_ExtendRfRangeCmd )和禁用宏(HAL_PA_LNA_CC2590)。 要将这两个引脚(P1_2、P1_3)从射频观察映射引脚设置为正常 IO、需要哪些特殊的寄存器配置。

当启用 PA 功能时、协议堆栈将在(P1_1)引脚上运行。 但是、(P1_1)引脚在我们的硬件上用于密钥检测。 有两种方法可以确保两者不相互影响。 方法 B 尚未实施。 有必要确认这两个寄存器(RFC_BBS-CTRL0、RFC_BBS-CTRL1)的配置值。

a.处理此问题的当前方法是调用指令{hciStatus_t HCI_EXT_ExtendRfRangeCmd (void)}、然后调用指令{hciStatus_t HCI_EXT_SetRxGainCmd (uint8 rxGain)}。 条目参数为:(HCI_EXT_RX_GAIN_HIGH)。 然后、我观察到(P1_1)已设置为输出和高电平。 然后、我将(P1_1)设置为输入、并使用它检测下降沿。 在编程运行期间不会出现程序指令下拉(P1_1)的现象。 程序从睡眠状态转换至唤醒状态后、再次执行上述步骤。 目前、测试过程中没有出现异常现象。 但我不确定当 DTM 通过调用(HCI_LE_TestEndmd)或(HCI_Reset)结束时、发送器输出功率设置是否会恢复到0dBm 的默认值。 这种情况会导致程序内部(P1_1)引脚处出现下降沿。 它不是外部按钮生成的下降沿、不会导致程序运行错误。

b.对于这个问题、我还有另一个预期的解决方案是直接配置寄存器以仅将(P1_2、P1_3)引脚配置为 PA 功能引脚、然后将(P1_1)引脚配置为用于检测按钮的正常输入引脚。 但我发现:

RFC_ OBS_ CTRL0 = 0x68;

RFC_ OBS_ CTRL1 = 0x6A;

能否对这两种方法是否合理提出一些看法?

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

    您好!

    此查询需要我们进行调查。 请在5月1日这一周内期待收到一些反馈。

    感谢您的理解。

    此致、

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

    您好!

    我即将开始处理此查询。

    请问您是否有新的内容可供分享?

    此致、

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

    问题1:协议栈在启用 PA 功能时运行 P1_1引脚、但 P1_1引脚用于我们硬件上的密钥检测。 可以通过两种方法在不相互影响的情况下做到这一点。 模式 B 尚未被执行。 您需要确认 RFC_OBS_CTRL0和 RFC_OBS_CTRL1寄存器的配置值。

    a、我目前对此问题的处理是首先调用 hciStatus_t HCI_EXT_ExtendRfRangeCmd (void)该指令随后被称为 hciStatus_t HCI_EXT_SetRxGainCmd (uint8 rxGain)、条目参数为: HCI_EXT_RX_GAIN_HIGH 此时、我注意到 P1_1设置为输出和高电平、然后我将 P1_1设置为输入并用来检测下降沿。 在编程操作期间、没有迹象表明 P1_1被编程指令降低。 程序从休眠模式转至唤醒模式后、重新执行上述步骤。 在当前测试中未检测到异常。 但我无法确定何时出现:当 DTM 通过调用 HCI_LE_TestEndCmd 或 HCI_Reset 来结束时、发送器输出功率设置恢复到0dBm 的默认值。 这将导致程序在 P1_1引脚内具有一个下降沿。 程序运行不正确、而不是由外部密钥引起的下降沿。

    B、我有另外一种思考这个问题的方法是通过直接配置寄存器只将 P1_2、P1_3配置为 PA 功能引脚、然后将 P1_1配置为用于检测密钥的正常输入引脚。 但我发现:

    RFC_OBS_CTRL0 = 0x68;
    RFC_OBS_CTRL1 = 0x6A;

    问题2:你能否就这两种做法是否合理发表一些意见?  

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

    此外、如果您使用 DD、这里有两个引脚作为正常 IO、则没有风险、例如误进入调试模式  

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

    您好!

    所遵循的方法不是标准的、我们方面也没有经过全面测试。 此外、我们建议使用 P1_1作为 PA 引脚、因为它具有20mA 驱动能力。

    请参阅 CC254x 用户指南(https://www.ti.com/lit/swru191)、器件数据表(https://www.ti.com/lit/ds/symlink/cc2540.pdf)以及已发布的参考设计。

    此致、