NRF52832学习笔记(38)——修改发射功率

Posted Leung_ManWah

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NRF52832学习笔记(38)——修改发射功率相关的知识,希望对你有一定的参考价值。

一、背景

蓝牙接收信号强度 RSSI 的直接影响因素就是蓝牙信号的发射功率。发射功率就是你所使用的设备(开发板、手机)所发射出来给主机或从机设备的信号强度。同时在实际应用当中,时常也需要修改蓝牙的发射功率,以达到省电的目的。

1.1 发射功率范围

(最大)4dB、(默认)0dB、-4dB、-8dB、-12dB、-16dB、-20dB、-30dB、(最小)-40dB
nRF51系列最小值-30dB
nRF52系列最小值-40dB

1.2 发射功率作用

发射功率越大,信号越强,距离越远,功耗越大。
发射功率越小,信号越弱,距离越近,功耗越小。

发射功率只是影响通信距离的因素之一,通信距离还与环境、天线选型、天线电路匹配等因素有关。

二、修改实际发射功率

2.1 相关函数

/**@brief Set the radio's transmit power.
 *
 * @param[in] role The role to set the transmit power for, see @ref BLE_GAP_TX_POWER_ROLES for
 *                 possible roles.
 * @param[in] handle   The handle parameter is interpreted depending on role:
 *                     - If role is @ref BLE_GAP_TX_POWER_ROLE_CONN, this value is the specific connection handle.
 *                     - If role is @ref BLE_GAP_TX_POWER_ROLE_ADV, the advertising set identified with the advertising handle,
 *                       will use the specified transmit power, and include it in the advertising packet headers if
 *                       @ref ble_gap_adv_properties_t::include_tx_power set.
 *                     - For all other roles handle is ignored.
 * @param[in] tx_power Radio transmit power in dBm (see note for accepted values).
 *
 * @note Supported tx_power values: -40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +3dBm and +4dBm.
  * @note The initiator will have the same transmit power as the scanner.
 * @note When a connection is created it will inherit the transmit power from the initiator or
 *       advertiser leading to the connection.
 *
 * @retval ::NRF_SUCCESS Successfully changed the transmit power.
 * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
 * @retval ::BLE_ERROR_INVALID_ADV_HANDLE Advertising handle not found.
 * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
 */
SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(uint8_t role, uint16_t handle, int8_t tx_power));
  • 第一个参数设置对应角色的功耗:
    BLE_GAP_TX_POWER_ROLE_ADV:广播发射功率
    BLE_GAP_TX_POWER_ROLE_SCAN_INIT:扫描或发起者功率
    BLE_GAP_TX_POWER_ROLE_CONN:连接时的功率
    对于主机(BLE Central)来说,connect的功率是继承scan的发射功率;对于从机(BLE Peripheral)来说,connect的功率是继承advertising功率。

  • 第二个参数设置为广播的连接句柄:BLE_ADVERTISING_DEF(m_advertising); 定义实体

  • 第三个参数设置功率的层级:-40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +3dBm and +4dBm

2.2 添加代码

在 GAP 初始化或广播初始化的时候,通过 sd_ble_gap_tx_power_set() 设置发射功率。

2.3 最大档和最小档发射功率比较

-35dB是最大档发射功率,-76dB是最小档发射功率。

2.4 其他SDK版本

或者,根据SDK版本不同,可能是以下情况:

/**@brief Set the radio's transmit power.
 *
 * @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30, -20, -16, -12, -8, -4, 0, and 4 dBm).
 *
 * @note The -30dBm setting is only available on nRF51 series ICs.
 * @note The -40dBm setting is only available on nRF52 series ICs.
 *
 * @retval ::NRF_SUCCESS Successfully changed the transmit power.
 * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
 */
SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(int8_t tx_power));

三、修改广播中显示的发射功率


查看广播:


0x0A 就是 广播中AD Type:BLE_GAP_AD_TYPE_TX_POWER_LEVEL


• 由 Leung 写于 2021 年 8 月 24 日

• 参考:nrf52832学习笔记(3)设置发射功率
    nRF52832 ------增强广播功率为4db

以上是关于NRF52832学习笔记(38)——修改发射功率的主要内容,如果未能解决你的问题,请参考以下文章

相比于nrf51822蓝牙模块,nrf52832蓝牙模块性能怎么样?

NRF52832学习笔记(33)——低功耗实现

为啥很多蓝牙模块厂家选择nRF52832,就因为这5个理由

nrf52832 学习笔记配对和绑定

nrf52832 学习笔记蓝牙主从机连接和连接参数更新

nrf52832 学习笔记蓝牙主机发现服务