CN / EN
CN / EN

GR551X如何扩展PA提高传输距离 GR551x

已解决

Ping

汇顶员工
2021-11-16 17:11

扩展PA应用需要根据选型的PA规格书要求进行对应的硬件设计,以下基于CB2401应用举例, 该型号支持PA和LNA两种模式,逻辑控制引脚只有TXEN/RXEN,以PA模式发送/Bypass模式接收方案为例,软硬件参考设计说明如下:

1. 硬件原理图参考设计,详情见附件

A:CB2401部分参考设计:


B:GR551X RF部分参考设计


C:控制GPIO口参考设计


2. 软件参考设计

由于采用PA模式发送/Bypass模式接收方案,因此可以基于SDK输出的rf_rx_en和rf_tx_en的diagnostic信号对PA和Bypass模式进行控制,rf_rx_en和rf_tx_en信号会在真正rx和tx之前拉高,拉高之后RF有80us的时间进行power up,满足1~5us的开关延时,软件修改方案如下:

A. 增加以下宏定义及

cfg_output_signal_for_pa函数实现;

#define DIAG_PORT GPIO0

#define DIAG_RX_EN GPIO_PIN_2

#define DIAG_TX_EN GPIO_PIN_3

#define REG_32BIT_RD(addr) (*(volatile uint32_t *)(addr))

#define REG_32BIT_WR(addr, value) (*(volatile uint32_t *)(addr)) = (value)


void cfg_output_signal_for_pa(void)

{

gpio_init_t gpio_init = GPIO_DEFAULT_CONFIG;

gpio_init.mode = GPIO_MODE_MUX; // Config GPIO_PIN_MUX_TESTBUS for Diagnostic port

gpio_init.pin = DIAG_RX_EN | DIAG_TX_EN;

gpio_init.mux = GPIO_PIN_MUX_TESTBUS;

hal_gpio_init(DIAG_PORT, &gpio_init);

REG_32BIT_WR(0xA000E224, (REG_32BIT_RD(0xA000E224) & 0xFFFFFF0F) | (0 << 4));

REG_32BIT_WR(0xB0013030, (REG_32BIT_RD(0xB0013030) & 0xFFFFFFF0) | 0x1);

REG_32BIT_WR(0xB0000050, 0xA5A5A5A5);

}

B:在BLE协议栈初始化结束后调用

cfg_output_signal_for_pa函数;

C:如果需要关闭PA功能, 只需要把0xB0000050配为0 ;


KCT8204L的参考设计,可以参考另外一个链接回答:

https://developers.goodix.com/zh/bbs/detail/27dbfa021ec84bd58fe64d2bdcdc6ec5

GR5513BENDU&RFX2401C_PA_20230821.pdf

0收藏

1赞成

最佳答案

Ping

汇顶员工
2022-01-20 16:47

补充说明:

1. 关于不同回答对TX_EN和RX_EN的说法不一致问题,主要是0xB0000050寄存器配置差异

REG_32BIT_WR(0xB0000050, 0xA5A5A5A5) GPIO2为RX_EN,GPIO3为TX_EN

REG_32BIT_WR(0xB0000050, 0x83838383) GPIO2为TX_EN,GPIO3为RX_EN

2. GR5525对应的GPIO不一样,GPIO8为RX使能、GPIO9为TX使能,GR551X/GR5526都是GPIO2/GPIO3,GR553X系列不支持扩展PA,需要高发射功率建议选择GR5332系列(最大15dB);

3. GR5526的扩展PA软件修改方法如下:

#define REG_32BIT_RD(addr) (*(volatile uint32_t *)(addr))

#define REG_32BIT_WR(addr, value) (*(volatile uint32_t *)(addr)) = (value)

Void pa_lna_init()

{

REG_32BIT_WR(0xA000E224, 0x00000000);

REG_32BIT_WR(0xB0013030, 0x00000001);

REG_32BIT_WR(0xB0000050, 0x00000083); // 0xa5 =0x80 +0x03

REG_32BIT_WR(0xA000EE40, 0x88888800);

REG_32BIT_WR(0xA000EE44, 0x00000088);

}

其中TX_EN RX_EN信号为GPIO2,GPIO3,请在BLE协议栈初始化之后调用pa_lan_init()。


PA相关问题回答:

1. 关于使用PA,怎么把一个新的PA集成到现在的SDK里面使用呢?

2. 关于GR5515芯片的扩展PA应用方案推荐的软硬件设计指导

4条评论

1赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注