一恩够、背景
藍(lán)牙接收信號(hào)強(qiáng)度 RSSI 的直接影響因素就是藍(lán)牙信號(hào)的發(fā)射功率钠乏。發(fā)射功率就是你所使用的設(shè)備(開發(fā)板代箭、手機(jī))所發(fā)射出來(lái)給主機(jī)或從機(jī)設(shè)備的信號(hào)強(qiáng)度墩划。同時(shí)在實(shí)際應(yīng)用當(dāng)中,時(shí)常也需要修改藍(lán)牙的發(fā)射功率嗡综,以達(dá)到省電的目的乙帮。
1.1 發(fā)射功率范圍
(最大)4dB、(默認(rèn))0dB极景、-4dB察净、-8dB、-12dB盼樟、-16dB氢卡、-20dB、-30dB晨缴、(最幸肭亍)-40dB
nRF51系列最小值-30dB
nRF52系列最小值-40dB
1.2 發(fā)射功率作用
發(fā)射功率越大,信號(hào)越強(qiáng)喜庞,距離越遠(yuǎn)诀浪,功耗越大。
發(fā)射功率越小延都,信號(hào)越弱雷猪,距離越近,功耗越小晰房。
發(fā)射功率只是影響通信距離的因素之一求摇,通信距離還與環(huán)境射沟、天線選型、天線電路匹配等因素有關(guān)与境。
二验夯、修改實(shí)際發(fā)射功率
2.1 相關(guān)函數(shù)
/**@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));
第一個(gè)參數(shù)設(shè)置對(duì)應(yīng)角色的功耗:
BLE_GAP_TX_POWER_ROLE_ADV:廣播發(fā)射功率
BLE_GAP_TX_POWER_ROLE_SCAN_INIT:掃描或發(fā)起者功率
BLE_GAP_TX_POWER_ROLE_CONN:連接時(shí)的功率
對(duì)于主機(jī)(BLE Central)來(lái)說(shuō),connect的功率是繼承scan的發(fā)射功率摔刁;對(duì)于從機(jī)(BLE Peripheral)來(lái)說(shuō)挥转,connect的功率是繼承advertising功率。第二個(gè)參數(shù)設(shè)置為廣播的連接句柄:BLE_ADVERTISING_DEF(m_advertising); 定義實(shí)體
第三個(gè)參數(shù)設(shè)置功率的層級(jí):-40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +3dBm and +4dBm
2.2 添加代碼
在 GAP 初始化或廣播初始化的時(shí)候共屈,通過(guò) sd_ble_gap_tx_power_set()
設(shè)置發(fā)射功率绑谣。
2.3 最大檔和最小檔發(fā)射功率比較
-35dB是最大檔發(fā)射功率,-76dB是最小檔發(fā)射功率拗引。
2.4 其他SDK版本
或者借宵,根據(jù)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));
三矾削、修改廣播中顯示的發(fā)射功率
查看廣播:
0x0A
就是 廣播中AD Type:BLE_GAP_AD_TYPE_TX_POWER_LEVEL
? 由 Leung 寫于 2021 年 8 月 24 日
? 參考:nrf52832學(xué)習(xí)筆記(3)設(shè)置發(fā)射功率
nRF52832 ------增強(qiáng)廣播功率為4db