82 lines
2.3 KiB
C
82 lines
2.3 KiB
C
/*
|
|
******************************************************************************
|
|
* @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;
|
|
}
|
|
|