工具/软件:Linux
您好,
我使用 TI 蓝牙协议栈来实现 WL18xx 并使用 LinuxIbeaon 二进制文件。 我能够成功配置 UUID、MAJOR、MINOR 和 Txpower、但更改 txpower 后对范围没有影响、在所有情况下范围都是相同的。
SetIbeaconTxPower 0xf8
SetIbeaconTxPower 0xFC
SetIbeaconTxPower 0x04
SetIbeaconTxPower 0x02
请尽快对此进行研究。
谢谢你
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.
工具/软件:Linux
您好,
我使用 TI 蓝牙协议栈来实现 WL18xx 并使用 LinuxIbeaon 二进制文件。 我能够成功配置 UUID、MAJOR、MINOR 和 Txpower、但更改 txpower 后对范围没有影响、在所有情况下范围都是相同的。
SetIbeaconTxPower 0xf8
SetIbeaconTxPower 0xFC
SetIbeaconTxPower 0x04
SetIbeaconTxPower 0x02
请尽快对此进行研究。
谢谢你
您好、Samiksha、
进行挖掘后、IBeacon 应用/配置文件无法更改蓝牙无线电的输出功率。 TX 功率值通常在距离连接设备(手机/平板电脑等) 1m 的距离内校准一次、并使用算法根据校准值和当前 RSSI 估算两个设备之间的距离。
苹果的以下规范可能会让您更深入地了解该主题:
developer.apple.com/.../Getting-Started-with-iBeacon.pdf
BLE 输出功率可通过应用中的 HCI 命令或 BTS 脚本进行更改。 当前应用只是更改广播包中的输出功率串。
首先、您可以使用 HCI_VS_DRPb_SET_Power_Vector HCI 命令更改输出功率、有关参数和返回值的信息可在供应商特定 HCI 命令用户指南的第39页找到。
www.ti.com/.../swru442a.pdf
如需更多信息、请参阅 Wilink8 BLE 快讯中的问题8: processors.wiki.ti.com/.../WiLink_FAQ
最棒的
亚历山大
感谢 Alexander 的回答。
现在、我们将按照 swru442a.pdf 第39页上的 HCI_VS_DRPb_SET_Power_Vector HCI 命令 、使用 SS1Tool 设置功率级别。
在以 SS1Tool 格式转换 VS 命令后、我们运行了低功耗矢量表、高功率矢量表命令和2类功率矢量命令来设置功率级别6、然后运行 TPC 命令。
然后在 LinuxIsacon 二进制文件中使用 StartAdvertising API 进行广播并与频谱分析仪进行检查、不会对功率进行任何更改。
我还附加了 cmd.txt 文件、其中包含 SS1Tool 格式的 VS 命令、以及我们在芯片上运行的 SS1Tool 命令 o/p 的 SS1Tool_logs.txt 文件。
Thanks.e2e.ti.com/.../SS1Tool_5F00_logs.txte2e.ti.com/.../cmd.txt
您好、Samiksha、
在更改每个功率矢量后、似乎没有发出 HCI 等待命令。 从第39页开始:
在每个矢量变化后调用 WAIT_HCI_Command_Complete_VS_DRPb_Set_Power_Vector_Event。
与 SS1Tool 相比、使用 HCI 测试仪工具在 BTS 脚本中执行这些电源更改也更容易、这样您可以配置一次功率级别、并在所有应用中保持该级别。
该工具位于无线工具包中、可从此处下载:
www.ti.com/.../wilink-bt_wifi-wireless_tools
最棒的
亚历山大
感谢 Alexander 的回答。
首先、我们尝试了 HCI 测试仪工具、当我们使用该工具时、我们面临一些问题、我们不会从芯片获取任何传入转储。
我们还尝试在 BTS 脚本中对波特率进行注释、并完成了三线端口配置。
我们的设置包含与 TI wl1831模块连接的 imx6sl 处理器、并使用 USB 转 UART 来运行从 Window7到目标板的 HCI 测试仪工具、但我们仅获得以下日志:
13:00:54.242脚本已启动:
13:00:54.242 --
13:00:54.242数据包"HCI_VS_Update_UART_HCI_Budrate"、操作码0x36
13:00:54.242参数:
13:00:54.242 | UART 波特率:0x002dc6c0
13:00:54.242 --
13:00:54.242传出转储:
13:00:54.242 0000:01 36 ff 04 c0 C6 2D 00 .6...-.13:00:59.243错误-等待事件 HCI_Command_Complete_VS_Update_UART_HCI_Budrate_Event 超时
13:00:59.243错误线路(21):WAIT_HCI_Command_Complete_VS_Update_UART_HCI_BAUDRAATE_Event 5000、0x00、0x0x36、0x00
13:00:59.247--
13:00:59.247脚本结束
如果我错了、请更正我、 会 使用 WAIT_HCI_Command_Complete_VS_DRPb_Set_Power_Vector_Event 命令检查命令是否成功运行。
使用 SS1Tool、我们将获得以下日志:
./SS1Tool cmd 0x3F 0x182 0x00 0xD3 0xDC 0xE5 0xEE 0xF7 0x00 0x0A 0x14 0x3F 0xFF 0x00
Echo 13 >/sys/class/gpio/export
回显>/sys/class/gpio/gpio13/direction
echo 0 >/sys/class/gpio/gpio13/value
Echo 1 >/sys/class/gpio/gpio13/value
echo 0 >/sys/class/gpio/gpio13/value
Echo 1 >/sys/class/gpio/gpio13/value
BT COMM 端口(/dev/ttymxc1):1.
将 HCI 波特率更改为3000000
状态:执行 BTS 脚本/lib/firmware/TIInit_11.8.32.bts.
状态:BTS 脚本成功执行。
< HCI 命令:ogf 0x3F、ocf 0x0182、PLEN 12
00 D3 DC E5 EE F7 00 0A 14 3F FF 00
器件已通电。
DEVM>> HCI 事件:0x0E PLEN 4.
01 82 FD 00
看到这些日志后、希望这意味着首先此命令运行 BTS 脚本、然后运行 HCI 命令、我们还会获得 HCI 事件日志
HCI 事件:0x0E PLEN 4.
01 82 FD 00
在该00中、意味着命令运行成功。
谢谢。
您好、Samiksha、
似乎您正在使用 HCI 用户指南中的默认功率矢量值、我们测试了附加矢量以将 BLE 输出功率降低约10dBm、并看到了结果。 您可以尝试运行这些命令吗?
请注意、此处仅更新了 BLE 矢量:
e2e.ti.com/.../3125.BLE_5F00_10dBm_5F00_Vectors.txt
最棒的
亚历山大
您好、Alexander、
感谢您的回答。
我们执行了以下步骤来配置 wl1831的功率级别:
1.运行./SS1BTPM &
2.
(i)用于低功耗矢量中的 BLE
运行 ./SS1Tool cmd 0x3f 0x0182 0x03 bf 0xc8 0xD1 0xda 0xe3 0xec 0xf6 0x00 0x3f 0xff 0x00
(II)用于高功率矢量中的 BLE
运行 ./SS1Tool cmd 0x3f 0x0182 0x09 0xc5 0xCF 0xd9 0xe3 0xeb 0xf5 0x01 0x0B 0x3f 0xff 0x00
(iii)运行 TPC 校准
运行./SS1Tool cmd 0x3F 0x1FB 0x00 0x00 0x08 0x00 0x01
3.对于连续 TX 测试:
(i)运行"Send_HCI_VS_DRPb_Enable_RF_Calibration_Enhanced 0xFDFB、0x1、0xFF、0x00000000、0x01
(采用 SS1Tool 格式)--./SS1Tool cmd 0x3f 0x1ca 0x62 0x09 0x04 0x00 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
现在、我们将在不同功率级别上更改 txpower、但如果在高功率矢量中设置功率级别7的功率级别5.5dBm (0x0B)、我们将仅获得接近-1.05dbm 的功率。 存在巨大的功率损耗。
下面是我们设置的功率级别
功率级别 功率 获取功率频谱(dBm)
0 0xc5 (-29.5dbm) -29.4.
1 0xCF (-24.5dbm) -27.7
2. 0xd9 (-19.5dbm) -24.7
3. 0xe3 (-14.5dbm) -20.01
4. 0xeb (-10.5dbm) -16.4.
5. 0xf5 (-5.5dBm) -11.8
6. 0x01 (0.5dbm) -5.96
7. 0x0B (5.5dBm) -1.05
我们还尝试在功率级别7上设置11.5dbm、在频谱分析仪上设置5.16dbm。
感谢您对此进行深入研究。
感谢 Alexander 的回答。
实际上、我们将使用 StartAdvertising API 来广播 Ibeacon。 此 API 使用功率矢量中定义的第7个功率级别进行广播。 因此、我们将动态更改功率矢量。
我们已经浏览了 StartAdvertising 代码,发现我们正在使用 DEVM_StartAdvertising ()函数进行广播。
我们是否可以通过任何方式使用此 StartAdvertising API 进行具有不同功率级别的广播?
如果我们动态更改功率矢量、对 wl1831模块有什么影响吗?
谢谢