一、前言
在有些時候產品需要做到更遠的距離在原來的基礎上加上PA放大晶片來實現廣播或者連線距離上的提升。
PA是Power Amplifier的簡稱,中文名稱為功率放大器,簡稱“功放”,指在給定失真率條件下,能產生最大功率輸出以驅動某一負載的放大器。對於射頻通訊系統,PA負責發射通道的訊號放大,實現增加無線通訊距離的目的。
二、PA晶片使用
常用的有AT2401C,RFX2401C,CB2401C等
庫中已經封裝好了對應的函式
/* BLE pa control config struct */ typedef struct tag_ble_pa_control_config { uint32_t txEnableGPIO; // tx enable gpio register uint32_t txDisableGPIO; // tx disable gpio register uint32_t tx_pin; // tx pin define uint32_t rxEnableGPIO; // rx enable gpio register uint32_t rxDisableGPIO; // rx disable gpio register uint32_t rx_pin; // tx pin define } blePaControlConfig_t;
/**
* @brief pa control init
*
* @note Can't be called until role Init
*
* @param paControl - pa control parameters(global variable)
*
* @return Command Status.
*/
#define BLE_PAControlInit (( void (*) ( blePaControlConfig_t *paControl )) BLE_LIB_JT(109) )
程式碼實現
GPIOB_ModeCfg(GPIO_Pin_13|GPIO_Pin_14,GPIO_ModeOut_PP_5mA);//任意兩個IO都可 blePaControlConfig_t pa_config;//全域性變數 pa_config.txEnableGPIO=(uint32_t)&R32_PB_OUT; pa_config.txDisableGPIO=(uint32_t)&R32_PB_CLR; pa_config.tx_pin=GPIO_Pin_13; pa_config.rxEnableGPIO=(uint32_t)&R32_PB_OUT; pa_config.rxDisableGPIO=(uint32_t)&R32_PB_CLR; pa_config.rx_pin=GPIO_Pin_14; BLE_PAControlInit(&pa_config);加在角色初始化之後
原理圖參考
僅用於個人學習分享;
如有錯漏請指正。