CN / EN
CN / EN

提问

获得支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

PA的一个调试问题 GR551x

已解决

Angelo

2022-01-11 18:11

你好!我最近在调试PA,现在我们的IO口如下:

#define DIAG_PORT GPIO0

#define DIAG_RX_EN APP_IO_PIN_14

#define DIAG_TX_EN APP_IO_PIN_15

#define DIAG_BYPASS_EN APP_IO_PIN_11

#define DIAG_ANT_SEL APP_IO_PIN_12

然后加上上述的参考代码以后,我发现整个蓝牙协议栈好像都没有跑起来。请教有什么可能导致这个原因呢?如果我只是注释掉这部分,软件就正常了。

以下是我的代码:

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 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, 0x83838383);

}

0收藏

0赞成

{-}{-}

汇顶员工
2022-01-12 20:18

抱歉,明天答复您,感谢!

0条评论

0赞成

0收藏

您的评论

Solin

2022-01-13 09:50

Hi Angelo,


方便贴下你的初始化代码吗?你这个现象应该是在协议栈初始化之前对基带的寄存器进行了操作导致;

你上面初始化PA控制的代码中有配置基带的寄存器,在协议栈初始化之前实际上基带处于掉电状态,此时操作基带的寄存器会导致hardfault,你可以尝试修订下PA的初始化流程,将其放置在协议栈初始化完成的回调函数中。


Thanks

0条评论

0赞成

0收藏

您的评论

Angelo

2022-01-13 14:24

int main(void){ app_periph_init(); /*< init user periph .*/ system_pmu_calibration_start(); app_calendar_init(); ble_gap_default_tx_power_set(7); fatfs_init(); ble_stack_init(&s_app_ble_callback, &heaps_table); /*< init ble stack*/cfg_output_signal_for_pa(); /*< config PA*/} cfg_output_signal_for_pa(); 这个函数就是PA初始化,按道理我已经放到了 ble_stack_init 后面了。

0条评论

0赞成

0收藏

您的评论

Solin

2022-01-13 20:25

Hi angele,

从你贴的代码来看应该是没有问题的,你可以先确认下跑不起来的具体现象:

1. CPU正常运行还是Hardfault;

2. 如果是出现了Hardfault,你可以尝试去读写基带寄存器比如上述代码中的0xB0000050,如果不能正常访问说明是基带没有上电导致,可能还是需要检查下初始化流程;

3. 如果CPU正常运行,并且基带已经上电,可能需要从业务流程去排查


Thanks.


0条评论

0赞成

0收藏

您的评论

Angelo

2022-06-07 16:25

Hi, Solin:

最近我们又开始重新调试PA了,得到下面的结论:如果我通过设置PA工作在纯接收模式,PA确实对于接收灵敏度有很大的帮助;同时我通过设置PA工作在纯发射模式,PA确实把发射功率提高了20dBm。但是如果我按照你们提供的那段参考代码


这段代码我加在了ble_stack_init(&s_app_ble_callback, &heaps_table); /*< init ble stack*/这段代码后面。

结果发现PA基本没有工作,反而衰减了信号。同时我也去抓了TX_EN, RX_EN这两个管脚的信号,感觉是5515本身输出的就不太对,很乱。按道理应该是两个管脚反转信号才对。所以判断还是这段代码可能需要优化一下。对了,我用的SDK版本是1.6.10。用的PA芯片是上海康希的KCT8204L这个芯片。多谢!

0条评论

0赞成

0收藏

您的评论

Angelo

2022-06-07 16:35

还有,我现在怀疑5515对于RX_EN,TX_EN这两个管脚是不是只能用GPIO2, 和GPIO3?我现在用的是GPIO14和GPIO15

0条评论

0赞成

0收藏

您的评论
最佳答案

134***007

汇顶员工
2022-06-07 17:54

Hi Angelo,

是的,只能是GPIO2和GPIO3可以映射到TX_EN 和 RX_EN上面


1条评论

0赞成

0收藏

您的评论

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

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

扫描关注公众号

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