800*320工程文件+初始demo提交
This commit is contained in:
81
SW/components/drivers/device/fr30xx/trim_fr30xx.c
Normal file
81
SW/components/drivers/device/fr30xx/trim_fr30xx.c
Normal file
@ -0,0 +1,81 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file trim_fr30xx.c
|
||||
* @author FreqChip Firmware Team
|
||||
* @version V1.0.0
|
||||
* @date 2023
|
||||
* @brief Config Chip analog/digit/RF using Chip Probing(CP) and
|
||||
Final Test(FT) trim parameters.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2022 FreqChip.
|
||||
* All rights reserved.
|
||||
******************************************************************************
|
||||
*/
|
||||
#include "fr30xx.h"
|
||||
#include "crc32.h"
|
||||
|
||||
static struct_ADC_Cal_Param_t ADC_Cal_Param;
|
||||
|
||||
/*********************************************************************
|
||||
* @fn trim_cp_config
|
||||
*
|
||||
* @brief Config Chip analog/digit/RF using Chip Probing(CP) trim parameters.
|
||||
*
|
||||
* @param none.
|
||||
* @return none.
|
||||
*/
|
||||
void trim_cp_config(void)
|
||||
{
|
||||
/* ------------------------- */
|
||||
/* FT trim */
|
||||
/* ------------------------- */
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn trim_ft_config
|
||||
*
|
||||
* @brief Config Chip analog/digit/RF using Final Test(FT) trim parameters.
|
||||
*
|
||||
* @param none.
|
||||
* @return none.
|
||||
*/
|
||||
void trim_ft_config(void)
|
||||
{
|
||||
uint32_t FT_CRC;
|
||||
struct_FT_Trim_t FT_Trim_Param;
|
||||
|
||||
flash_OTP_read(QSPI0,0x1000,sizeof(FT_Trim_Param),(uint8_t*)&FT_Trim_Param);
|
||||
|
||||
FT_CRC = crc32(0x00000000, (void *)&FT_Trim_Param, (uint32_t)&FT_Trim_Param.u32_crc - (uint32_t)&FT_Trim_Param);
|
||||
|
||||
if(FT_CRC == FT_Trim_Param.u32_crc)
|
||||
{
|
||||
if(FT_Trim_Param.u16_Version == 0xA001)
|
||||
{
|
||||
/* configure IOLDO output to 3.3v */
|
||||
ool_write(PMU_REG_IOLDO1_CTRL_0, 0x0a);
|
||||
/* config SBG */
|
||||
ool_write(PMU_REG_SBG_CFG,FT_Trim_Param.u16_ioldo);
|
||||
|
||||
//Get the adc calibration value
|
||||
ADC_Cal_Param.u16_slopeA = FT_Trim_Param.Param.V1.u16_SlopeA;
|
||||
ADC_Cal_Param.u16_slopeB = FT_Trim_Param.Param.V1.u16_SlopeB;
|
||||
ADC_Cal_Param.s32_constantA = FT_Trim_Param.Param.V1.s32_ConstantA;
|
||||
ADC_Cal_Param.s32_constantB = FT_Trim_Param.Param.V1.s32_ConstantB;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn trim_get_adc_cal_param
|
||||
*
|
||||
* @brief get adc ft calibration param.
|
||||
*/
|
||||
struct_ADC_Cal_Param_t *trim_get_adc_cal_param(void)
|
||||
{
|
||||
return &ADC_Cal_Param;
|
||||
}
|
||||
|
Reference in New Issue
Block a user