主题中讨论的其他器件: 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;
能否对这两种方法是否合理提出一些看法?