查看: 3448|回复: 2

[已解决] 关于K60 ADC校准(已解决)

[复制链接]

该用户从未签到

1

主题

6

帖子

0

新手上路

Rank: 1

积分
25
最后登录
1970-1-1
发表于 2014-2-3 18:45:03 | 显示全部楼层 |阅读模式
 有以下几个疑问:
1.ADC校准的时候输入信号有要求吗?是输入0V还是VDDA?
2.ADC按手册上说需要4M的频率下进行。这是为了更好的提高精度,原理是什么?
3.ADC校准后的处理函数(PE生成)没有处理CLPD,CLMD,这两个寄存器是做什么用的?
LDD_TError AD2_GetCalibrationResultStatus(LDD_TDeviceData *DeviceDataPtr)
{
  uint32_t GainValue;
 
  (void)DeviceDataPtr;                 /* Parameter is not used, suppress unused argument warning */
  if (ADC_PDD_GetCalibrationFailedStatusFlag(ADC1_BASE_PTR)) {
    return ERR_FAILED;
  }
  /* If calibration is successfully passed place calibrated value into gain registers */
  /* Cumulated gradually because of undefined behavior: the order of volatile accesses is undefined in this statement */
  GainValue = ADC_PDD_GetPlus0CalibrationValue(ADC1_BASE_PTR); /* Find plus gain value */
  GainValue += ADC_PDD_GetPlus1CalibrationValue(ADC1_BASE_PTR);
  GainValue += ADC_PDD_GetPlus2CalibrationValue(ADC1_BASE_PTR);
  GainValue += ADC_PDD_GetPlus3CalibrationValue(ADC1_BASE_PTR);
  GainValue += ADC_PDD_GetPlus4CalibrationValue(ADC1_BASE_PTR);
  GainValue += ADC_PDD_GetPlusSCalibrationValue(ADC1_BASE_PTR);
  GainValue = (GainValue >> 1U) | 0x8000U;
  ADC_PDD_SetPlusGainValue(ADC1_BASE_PTR,GainValue); /* Set plus gain value */
  GainValue = ADC_PDD_GetMinus0CalibrationValue(ADC1_BASE_PTR); /* Find minus gain value */
  GainValue += ADC_PDD_GetMinus1CalibrationValue(ADC1_BASE_PTR);
  GainValue += ADC_PDD_GetMinus2CalibrationValue(ADC1_BASE_PTR);
  GainValue += ADC_PDD_GetMinus3CalibrationValue(ADC1_BASE_PTR);
  GainValue += ADC_PDD_GetMinus4CalibrationValue(ADC1_BASE_PTR);
  GainValue += ADC_PDD_GetMinusSCalibrationValue(ADC1_BASE_PTR);
  GainValue =  (GainValue >> 1U) | 0x8000U;
  ADC_PDD_SetMinusGainValue(ADC1_BASE_PTR,GainValue); /* Set minus gain value */
  return ERR_OK;
}
4.有文章写到如果把校准参数保存到FLASH中可以在重启后直接使用保存到FLASH中的参数。这些参数都需要保存那几个寄存器呢?
CLP0,CLP1,CLP2,CLP3,CLP4,CLPD,CLPS等等都需要保存吗?
5.ADC校准中的几个寄存器(CLP0,CLP1,CLP2,CLP3,CLP4,CLPD,CLPS等等)是怎样参加ADC后续采集运算的有公式吗?
6.从PE生成的函数看校准是自动完成的,而且ADCx_PG,ADCx_MG数据生成方式都是一定的为什么不是自动生成,而是要用户程序计算一遍,这样做有什么好处吗?
 
本人初学这个处理器,谢谢各位解答!
我知道答案 目前已有1人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-11 14:18:53 | 显示全部楼层

    回复:关于K60 ADC校准

    楼主你好,由于你的问题比较多,我将分别回答
    Q1.ADC校准的时候输入信号有要求吗?是输入0V还是VDDA?
    A:参考手册中有一段英文描述提到了,在校准期间输入通道等都是可以被忽略的。
    The input channel, conversion mode continuous function, compare function, resolution
    mode, and differential/single-ended mode are all ignored during the calibration function.
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    25
    最后登录
    1970-1-1
     楼主| 发表于 2014-2-21 17:42:23 | 显示全部楼层

    回复:关于K60 ADC校准

     谢谢解答!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 21:33 , Processed in 0.086824 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表