在线时间269 小时
UID2056636
注册时间2013-11-13
NXP金币0
TA的每日心情 | 慵懒 2016-11-24 10:19 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
金牌会员
 
- 积分
- 2870
- 最后登录
- 1970-1-1
|
KL03的 VREF 模块默认电压为1.2V,但是KSDK1.2的驱动却在初始化的时候强制将相关寄存器清零,然后由用户进行设置,但是用户怎么知道设置多少数值的时候才是1.2V呢,有没有相关资料介绍,求FAE支招。KSDK1.2中相关代码如下:
1、初始化 VREF 的驱动
vref_status_t VREF_DRV_Init(uint32_t instance, const vref_user_config_t *userConfigPtr)
{
assert(instance < VREF_INSTANCE_COUNT);
VREF_Type * base = (VREF_Type *)g_vrefBase[instance];
if (!userConfigPtr)
{
return kStatus_VREF_InvalidArgument;
}
/* Enable clock for VREF. */
CLOCK_SYS_EnableVrefClock(instance);
/* Reset all the register to default state. */
VREF_HAL_Init(base);
/* Configure VREF to a known state*/
VREF_HAL_Configure(base, userConfigPtr);
VREF_HAL_WaitVoltageStable(base);
return kStatus_VREF_Success;
}
2、红色的代码将相关寄存器强制清零
void VREF_HAL_Init(VREF_Type * base)
{
VREF_BWR_SC_VREFEN(base, true);
VREF_BWR_SC_REGEN(base, true);
VREF_BWR_TRM_TRIM(base, 0x00);
VREF_BWR_SC_MODE_LV(base, kVrefModeBandgapOnly);
#if FSL_FEATURE_VREF_HAS_COMPENSATION
VREF_BWR_SC_ICOMPEN(base, true);
#endif
#if FSL_FEATURE_VREF_HAS_CHOP_OSC
VREF_BWR_TRM_CHOPEN(base, true);
#endif
}
3、用户设置
void VREF_HAL_Configure(VREF_Type * base, const vref_user_config_t *userConfigPtr)
{
#if FSL_FEATURE_VREF_MODE_LV_TYPE
assert(userConfigPtr->bufferMode <= kVrefModeLowPowerBuffer);
#else
assert(userConfigPtr->bufferMode <= kVrefModeTightRegulationBuffer);
#endif
assert(userConfigPtr->trimValue <= 0x3F);
#if FSL_FEATURE_VREF_HAS_CHOP_OSC
VREF_BWR_TRM_CHOPEN(base, userConfigPtr->chopOscEnable);
#endif
VREF_BWR_SC_REGEN(base, userConfigPtr->regulatorEnable);
#if FSL_FEATURE_VREF_HAS_COMPENSATION
VREF_BWR_SC_ICOMPEN(base, userConfigPtr->soccEnable);
#endif
VREF_BWR_SC_MODE_LV(base, userConfigPtr->bufferMode);
VREF_BWR_TRM_TRIM(base, userConfigPtr->trimValue);
}
|
评分
-
查看全部评分
|