CN / EN
CN / EN

提问

获得支持

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

GR551X SDK开发中如何获取efuse校准值判断晶体是否校准 GR551x

已解决

Ping

汇顶员工
2021-11-16 19:45

GR551X的32M和32.768K晶振采用内置匹配电容方案,必须对32M晶振进行校准,才能开展BLE的RF性能测试评估,量产过程中是在SMT阶段采用原厂提供的量产工具进行晶体校准。


1. 晶体校准值范围:0~511,量产测试时把校准值存储在efuse中的0x12A起始位置,占用2Byte空间;


2. 软件读取efuse晶体校准参数参考代码如下:

A:实现efuse读取函数dfu_efuse_read,读取数据要求Word对齐:

#include "gr55xx_hal_efuse.h"


bool dfu_efuse_read(uint8_t word_offset, uint32_t *data, uint8_tsize_word)

{

efuse_handle_t EFUSEHandle={0};

hal_status_t status = HAL_OK;

memset(&EFUSEHandle,0,sizeof(efuse_handle_t));

EFUSEHandle.p_instance = EFUSE;

EFUSEHandle.init.info_mode =DISABLE;

hal_efuse_deinit(&EFUSEHandle);

__HAL_EFUSE_DISABLE_MAIN_BACKUP(&EFUSEHandle);

hal_efuse_init(&EFUSEHandle);

status = hal_efuse_read(&EFUSEHandle,word_offset, data, size_word);

if(HAL_OK ==status)

return true;

else

return false;

}

B:读取示例:
uint32_t buff[80] = {0};
dfu_efuse_read(0,buff,75);
uint32_t xo_offset = buff[74];


3. 通过过判断xo_offset是否为0,判断是否写入晶振校准值;

PS:如果xo_offset为0,可能无法判读是没有写入还是写入值为0,按照经验值,该校准值一般不为0。

1收藏

1赞成

Angelo

2021-11-17 15:37

请问一下那怎么才能把校准值写入那个efuse的地址呢?是专门的量产工具?谢谢!

0条评论

0赞成

0收藏

您的评论

Ping

汇顶员工
2021-11-17 15:47

1. 使用我司提供的PLT/PLT Lite量产测试工具进行校准,测试通过后会自动把校准值写入efuse中;

相关工具板如下图所示,可以联系我司代理采购。


2. 可以通过我们提供的调试工具,把校准值写入efuse中;—可以通过邮箱提供,请提供接收邮箱;

1条评论

0赞成

0收藏

您的评论
最佳答案

Ping

汇顶员工
2022-01-14 11:03


0条评论

0赞成

0收藏

您的评论

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

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

扫描关注公众号

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