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.

[参考译文] WL1837MOD:如何设置 BLE 功率级别限制

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/793939/wl1837mod-how-to-set-ble-power-level-limit

器件型号:WL1837MOD

团队、

我的客户需要根据测试功率级别5限制模块的 BLE 输出功率。
他们可以在测试设置中通过 HCI 命令执行此操作。

是否可以限制模块的 BLE 功率、使其与测试功率级别5相匹配?

谢谢!

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

    请参阅以下用户指南中的 HCI_VS_DRPb_SET_Power_Vector (0xFD82)命令文档、了解如何更改任何调制(包括 BLE)的输出功率。

    www.ti.com/.../swru442

    此致、
    Vihang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的快速回复 Vihang!

    我是否可以要求您发布准确的说明?
    我的客户面临时间压力、这对他们非常有帮助。

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

    我们了解了 SET_Power_Vector 命令。 但我们不知道为每个功率级别设置哪些值、因为我们不知道标准设置是什么。

    您能否为 LP 和 HP 的功率级别0-7提供每个调制的确切标准功率设置? 然后、我们可以将6级和7级的功率降低到5级的功率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    菲律宾、

    上述链接的用户指南中介绍了标准电源设置(例如默认设置)。

    [引用 user="Philipp Blumberg"]然后,我们可以将级别6和级别7的功率降低到级别5的功率。

    为任何调制设置功率矢量时、BT 规格有两个主要要求。

    最高功率级别(功率级别7)决定器件的类别。 每个类别的功率(以 dBm 为单位)范围可在 BT 规范文档中找到。

    2.步进(两个连续功率级别之间的差值)最好为4dBm 或5dBm。 因此、一旦您确定了功率级别7值、您可以从该值中减去步进值、以确定给定矢量的其余功率级别值。

    将功率级别5、6和7全部设置为相同的值不是一个好主意、并且违反了 BT 规格要求。

    此致、

    Vihang

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

    Vihang、您好!

    抱歉、我找到了默认值。 出现了更多问题:

    -我们使用 hcitool 提交 HCI 命令。 负功率值是否以二进制补码提交?
    - TX_POWER_EDR_EPC_idx 值是否仍然为0x3F? 我认为它是指"新"功率级别7值、可以保持不变?
    -功率级别值的这些变化是永久性的还是易失性的?

    感谢您迄今为止的支持!

    大家好、Philipp

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

    Vihang、您好!

    我尝试验证命令。 执行"hcitool 扫描"时、频谱分析仪上的输出功率在命令前后是相同的(大约8.7dBm)。 我们如何验证命令的效果?  

    下面是我们要发送的命令:

    # BT BR (GFSK) LP
    hcitool cmd 0x3F 0x182 0x00 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    # BT EDR 2MB 低功耗
    hcitool cmd 0x3F 0x182 0x01 0xBD 0xC6 0xCF 0xD8 0xE1 0xEA 0xF3 0xFC 0x3F 0x00FF
    # BT EDR 3MB LP
    hcitool cmd 0x3F 0x182 0x02 0xBD 0xC6 0xCF 0xD8 0xE1 0xEA 0xF3 0xFC 0x3F 0x00FF
    # BT LE (BLE) LP
    hcitool cmd 0x3F 0x182 0x03 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    # ANT LP
    hcitool cmd 0x3F 0x182 0x04 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    # BT BR (GFSK)耳机
    hcitool cmd 0x3F 0x182 0x08 0xC5 0xCF 0xD9 0xE3 0xED 0xF7 0x01 0x0B 0x3F 0x00FF
    # BT LE (BLE)惠普(HP)
    hcitool cmd 0x3F 0x182 0x09 0xC5 0xCF 0xD9 0xE3 0xED 0xF7 0x01 0x0B 0x3F 0x00FF
    # ANT HP
    hcitool cmd 0x3F 0x182 0x0A 0xC5 0xCF 0xD9 0xE3 0xED 0xF7 0x01 0x0B 0x3F 0x00FF
    # BT EDR 2MB 惠普
    hcitool cmd 0x3F 0x182 0x0B 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    # BT EDR 3MB 惠普(HP)
    hcitool cmd 0x3F 0x182 0x0C 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vihang、您好!  

    对此进行了任何更新?

    大家好、Philipp

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

    您好、 Philipp、

    [引用 user="Philipp Blumberg">我们如何验证命令的效果?  [/报价]

    您可以通过为特定调制执行连续 TX 测试来验证更新的输出功率值。 有关这些测试所需的 HCI 命令以及如何将它们转换为 hcitool 格式、请参阅以下指南。

    http://processors.wiki.ti.com/index.php/WL18xx_Bluetopia_PM_Bluetooth_RF_Testing#Continuous_TX_2

    此致、

    Vihang

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

    Vihang、您好!

    我尝试验证输出功率的变化。 我使用频谱分析仪执行了测量。 我接着说:

    1.验证未更改的输出功率:

    -启用"BT_EN"引脚

    -执行"hciattach -s 115200 /dev/ttymxc0 Texas (hciattach -s 115200德州仪器)"

    -开始连续 TX 测试 ACC。 参考指南

    hcitool cmd 0x03 0x001a 0x00
    hcitool cmd 0x3f 0x01fb 0x01 0xff 0x00 0x00 0x00 0x01
    hcitool cmd 0x3f 0x01ca 0x62 0x09 0x01 0x00 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

    => 2.402 GHz 时的输出功率为8.0dBm

    2.验证输出功率的变化:

    -启用"BT_EN"引脚

    -执行"hciattach -s 115200 /dev/ttymxc0 Texas (hciattach -s 115200德州仪器)"

    -发送上述10条命令以降低输出功率

    所有10条命令都返回返回状态0x00

    -开始连续 TX 测试 ACC。 参考指南

    hcitool cmd 0x03 0x001a 0x00
    hcitool cmd 0x3f 0x01fb 0x01 0xff 0x00 0x00 0x00 0x01
    hcitool cmd 0x3f 0x01ca 0x62 0x09 0x01 0x00 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

    => 2.402 GHz 时、输出功率仍然为8.0dBm

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

    您好、Philipp、

    [引用 user="Philipp Blumberg"]-发送上述10条命令以降低输出功率[/引用]

    您能否分享您正在使用的确切命令(具有新的功率值)? 请注意、除了写入新功率矢量值的10条命令外、 还 必须向控制器发送 HCI_VS_DRPb_SET_Class2_Single_Power 和 HCI_VS_DRPb_Enable_RF_Calibration_Enhanced (用于 TPC 校准)命令、以便新的功率矢量能够生效。 您可以在供应商特定命令文档的第42页上找到详细信息。

    http://www.ti.com/lit/pdf/swru442

    [引用 user="Philipp Blumberg"]=> 2.402 GHz 时输出功率仍然为8.0dBm [/quot]

    另请提供此测试的 BT 固件日志、以便我验证 WL18xx 控制器中的功率矢量是否已正确更新。

    此致、

    Vihang

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

    Vihang、您好!

    下面是我们正在做的详细操作:

    1) 1)为器件加电

    [root]~# echo 1 >/var/links/gpios/bt_enable
    
    [root]~# hciattach -s 115200 /dev/ttymxc0德州仪器
    (TI)找到了一款芯片!
    固件文件:/lib/firmware/ti-connectivity/TIInit_11.8.32.bts
    加载了 BTS 脚本版本1
    Texas:将波特率更改为3000000,将流控制更改为1
    器件设置完成 

    2) 2)设置功率矢量

    [root]~# /usr/bin/hcitool cmd 0x3F 0x182 0x00 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    00 C1 CA D3 DC E5 EE F7 00 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 FD 00
    
    [root]~# /usr/bin/hcitool cmd 0x3F 0x182 0x01 BD 0xC6 0xCF 0xD8 0xE1 0xEA 0xF3 0xFC 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    01 BD C6 CF D8 E1 EA F3 FC 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 FD 00
    
    [root]~# /usr/bin/hcitool cmd 0x3F 0x182 0x02 0xBD 0xC6 0xCF 0xD8 0xE1 0xEA 0xF3 0xFC 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    02 BD C6 CF D8 E1 EA F3 FC 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 FD 00
    
    [root]~# /usr/bin/hcitool cmd 0x3F 0x182 0x03 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    03 C1 CA D3 DC E5 EE F7 00 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 FD 00
    
    [root]~# /usr/bin/hcitool cmd 0x3F 0x182 0x04 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    04 C1 CA D3 DC E5 EE F7 00 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 FD 00
    
    [root]~# /usr/bin/hcitool cmd 0x3F 0x182 0x08 0xC5 0xCF 0xD9 0xE3 0xED 0xF7 0x01 0x0B 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    08 C5 CF D9 ED F7 01 0B 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 00
    
    [根]~# FD FD /usr/bin/hcitool cmd 0x3F 0x182 0x09 0xC5 0xCF 0xD9 0xE3 0xED 0xF7 0x01 0x0B 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    09 C5 CF D9 ED F7 01 0B 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 00
    
    [根]~# FD FD /usr/bin/hcitool cmd 0x3F 0x182 0x0A 0xC5 0xCF 0xD9 0xE3 0xED 0xF7 0x01 0x0B 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    0A C5 CF D9 ED F7 01 0B 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 00
    
    [根]~# FD FD /usr/bin/hcitool cmd 0x3F 0x182 0x0B 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    0B C1 CA D3 DC E5 EE F7 00 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 00
    
    [根]~# FD /usr/bin/hcitool cmd 0x3F 0x182 0x0C 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0x00FF
    < HCI 命令:ogf 0x3f、ocf 0x0182、PLEN 11
    0C C1 CA D3 DC E5 EE F7 00 3F FF
    > HCI 事件:0x0E PLEN 4
    01 82 FD 00 

    3) 3)设置2类单电源并执行射频校准

    [root]~# /usr/bin/hcitool cmd 0x3f 0x187 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05
    < HCI 命令:ogf 0x3f、ocf 0x0187、PLEN 10
    05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
    > HCI 事件:0x0E PLEN 4
    01 87 FD 00
    
    [root]~# /usr/bin/hcitool cmd 0x3f 0x1FB 0x00 0x00000800 0x01
    < HCI 命令:ogf 0x3f、ocf 0x01fb、PLEN 3
    00 01
    > HCI 事件:0x0E PLEN 4
    01 FB FD 00 

    4) 4)执行连续 TX 测试

    [root]~# hcitool cmd 0x03 0x001a 0x00
    < HCI 命令:ogf 0x03、ocf 0x001a、PLEN 1
    00
    > HCI 事件:0x0E PLEN 4
    01 1A 0C 00
    
    [根]~# hcitool cmd 0x3f 0x01fb 0x01 0xff 0x00 0x00 0x00 0x00 0x01
    < HCI 命令:ogf 0x3f、ocf 0x01fb、PLEN 7
    01 FF 00 00 00 01
    > HCI 事件:0x0E PLEN 4
    01 FB FD 00
    
    [root]~# hcitool cmd 0x3f 0x01ca 0x62 0x09 0x01 0x09 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    < HCI 命令:ogf 0x3f、ocf 0x01ca、PLEN 13
    62 09 01 09 07 00 00 00 00 00 00 00 00
    > HCI 事件:0x0E PLEN 4
    01 CA FD 00 

    执行上述步骤2-3或不执行步骤时、我可以看到输出功率没有差异(仍然大约为8.0dBm)。

    您是指 HCI 输出" BT 固件日志"、还是需要更多信息?

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

    早上好、Vihang、

    您对此有任何更新吗? 我们需要尽快解决这个问题!

    此致、Philipp

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

    菲律宾、

    [引用 user="Philipp Blumberg"]执行上述步骤2-3或不执行步骤时,我可以看到输出功率没有差异(仍然大约为8.0dBm)。

    hcitool cmd 格式的有效负载字节序很可能是未成功实现功率更改的原因。 由于 ogf 和 ocf 之后 hcitool 格式的所有参数都是字节、因此您需要在小端字节序中表示 HCI_VS_*命令的16位或32位参数。 请针对您的功率值尝试以下操作。

    2) 2)设置功率矢量 

    hcitool cmd 0x3F 0x182 0x00 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0xFF 0x00 hcitool cmd 0x3F 0x182 0x01 0xBD 0xCF 0xCF 0xD88 0xE1 0xEA 0xF3 0xFC 0x3F 0xFF 0x00 hcitool cmd 0x3F 0x02 0xBD 0xC6 0xC6 0xFC 0xE1 0x3F 0xFF 0x3F 0xFC 0x3F 0xC1 0xC1 0xC6 0xFF 0x3F 0xC1 0xC2 0xC6 0xC1 0xC1 0xC1 0xC1 0xC1 0xFF 0xF3 0xFC 0xFF 0x3F 0x3F 0x3F 0x182 0x03 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0xFF 0x00 hcitool cmd 0x3F 0x182 0x04 0xC1 0xCA 0xD3 0xDC 0xE5 0xEE 0x3F 0xFF 0x00 0x3F 0xFF 0x00 hcitool D9 0x3F 0x182 0x08 0xC5 0xCF 0xE3 0x3F 0x3F 0xF8 0x3F 0x3F 0x3F 0xF8 0x3F 0x3F 0x3F 0xF8 0x3F 0x3F 0xF8 0x3F 0x3F 0xF8 0x3F 0x3F 0xF8 0x3F 0x3F 0xF8 0x3F 0x3F 0x3F 0x3F 0x09 0xC5 0xCF 0xD9 0xE3 0xED 0xF7 0x01 0x0B 0x3F 0xFF 0x00 hcitool cmd 0x3F 0x182 0x0A 0xC5 0xCF 0xD9 0xE3 0xF7 0xF7 0x01 0x0B 0x3F 0xFF 0x00 hcitool cmd 0x182 0x0B 0xC1 0xCA 0xD3 0xD3 DC 0xF7 0x3F 0x3F 0x00 0x3F 0x3F 0x3F 0x3F 0xC1 0xC2 0x3F 0xC2 0x3F 0x3F 0xC2 0x3F 0x3F 0xC2 0x3F 0xC2 0x3F 0xC2 0x3F 0x3F 0xC2 0xF8 0x3F 0xF8 0x3F 0x 0xCA 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x3F 0xFF 0x00
    3) 3)设置2类单电源并执行射频校准

    hcitool cmd 0x3f 0x187 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 hcitool cmd 0x3f 0x1FB 0x00 0x00 0x08 0x00 0x00 0x01

    [引用 user="Philipp Blumberg"]您是指 HCI 输出(按 BT 固件日志),还是需要更多信息?

    我是指从 WL18xx 器件/模块的 BT_UART_DBG 引脚捕获的固件日志。

    http://www.ti.com/lit/pdf/swau058

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

    Vihang、您好!

    您对命令的更改似乎有效! 在执行命令前后的7级连续 TX 测试时、我们可以看到输出功率有显著差异。 另外、"hcitool scan"也表现出显著差异!

    本主题的最后一个问题:是否可以将配置永久存储在蓝牙模块中? 每次启动时执行这些命令在软件安全方面都非常薄弱

    感谢您的支持!

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

    您好、Philipp、

    无法永久更改 WL18xx 蓝牙控制器内部的功率值、因为它在每次启动后默认为器件 ROM 中的原始值。 如果您希望使用除默认设置以外的任何电源设置,则需要在每次启动后向控制器发送 HCI_VS*命令。

    请注意、控制器仅需要通过 HCI UART 使用这些命令(或等效字节流)来实现功率更改。 如果您担心的是安全问题是每次使用诸如 hcitool 之类的用户空间应用程序、则可以在嵌入式 C 应用程序中实施相同的命令。

    此致、

    Vihang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、然后我们将寻找解决此问题的合适方法。 非常感谢您和每个人的支持!