ADC内部电源监控

编程入门 行业动态 更新时间:2024-10-20 01:18:56

ADC内部<a href=https://www.elefans.com/category/jswz/34/1768759.html style=电源监控"/>

ADC内部电源监控

文章目录

  • 前言
  • 一、分析芯片手册
    • 1、43.5 ADC internal supply monitoring
    • 2、11.1.1.1 Chip Control register (CHIPCTL)
      • 1)SIM_CHIPCTL[ADC_SUPPLY]
      • 2)SIM_CHIPCTL[ADC_SUPPLYEN]
    • 3、44.4.2 ADC Status and Control Register 1 (SC1A - aSC1P)
  • 二、EB配置
    • 1、使能ADC内部电源监控
    • 2、新建channel
    • 3、将channel关联置Group
  • 三、结果验证
  • 总结


前言

本文章基于64pin的恩智浦 S32K146型号的芯片,针对汽车电子功能安全要求,对ADC 内部电源进行监控。
当ADC内部电源发生异常(参考电压异常等…)事件之后,MCU应该执行相应的操作(如:将ADC采样的结果判定为错误值)

具体实现流程包括如下几点:
1, 分析芯片手册 2, EB工具链配置 3, 结果验证

话不多说,走你~
NXP官方社区相关的帖子:
一号链接
二号链接

一、分析芯片手册

手册下载处:S32K1xx手册

1、43.5 ADC internal supply monitoring

Tips:
1) S32K14x和S32K14xW包含两个12位ADC模块,ADC0和ADC1;
2) 64pin的S32K146的ADC0包含16个外部channel,ADC1包含13个外部channel;

3) ADC0包含一个内部通道channel0。

如下图所示,ADC内部供电可以通过ADC0的内部channel0来进行监控,
通过选择ADC0_SC1n[ADCH]配置为010101b)。请参考SIM_CHIPCTL[ADC_SUPPLY]和SIM_CHIPCTL[ADC_SUPPLYEN] bits。

~

~

2、11.1.1.1 Chip Control register (CHIPCTL)

1)SIM_CHIPCTL[ADC_SUPPLY]

如下图所示,该Field占3bit,我们以监控ADC参考电压VREFH为例(010b)。
~

~

2)SIM_CHIPCTL[ADC_SUPPLYEN]

如下图所示,该Field占1bit,我们将该位置1,使能内部电源监控功能。
~

~

3、44.4.2 ADC Status and Control Register 1 (SC1A - aSC1P)

ADC0_SC1n[ADCH]

如下图所示,该Field占6bit,我们将该位设置为010101b,将ADC0的内部channel0被选中作为输入通道。
tips: ADC Status and Control Register 1 (SC1A - SC1P),该寄存器共16个,可以理解成ADC0共16个外部通道,
在此处,我们选择一个未被占用的外部channel来链接到ADC0的内部channel0

在该文章中,我们以ADC0的channel 2为实例(即:ADC0_SC1c[ADCH]),用其来实现ADC0内部channel0的内部电源监控功能。
~

~

二、EB配置

打开EB tresos,执行如下操作步骤:

1、使能ADC内部电源监控

AdcEnableSimSupplyMonitor,位于Adc/General。
勾选该选项,其实就是对应将SIM_CHIPCTL[ADC_SUPPLYEN]置1。
~

~

2、新建channel

位于Adc/AdcHwUnit/AdcHwUnit_0/AdcChannel
Tips: 如果不使能步骤1的ADC内部电源监控功能,则无法做下图操作。
对ADC0新建一个channel2,改名为AdcChannel_MONITOR,并让其映射内部物理通道VREFH,如下图所示:
即:设置SIM_CHIPCTL[ADC_SUPPLY]为 010b。
~

~

3、将channel关联置Group

位于Adc/AdcHwUnit/AdcHwUnit_0/AdcGroup/AdcGroupDefinition
~

~
到此,EB的配置就结束了,生成代码。

三、结果验证

博主,通过串口打印,将采样的内部参考电源VREFH的AD值给打印出来,参考电压是3.3V,采样精度为12bit(4095);
正常工作情况下,采样值应该为4095,当该值出现偏差时,我们可以进行相关操作。

操作手段: 通过串口打印ADC采样数组中的数据。
期待现象: 采样AD值为4095。

博主也另外采样了BandGap电压,该电压为1V,它是ADC内部电路保证的。
举个例子:1V对应AD值为1240,Vbg偏差±3%。当其低于0.97V,高于1.03V时,我们可以认为ADC内部电路出现了故障。
1203 < AD值 < 1277
~

~

总结

博主是AutoSar小白,刚开始接触NXP芯片,如果哪里表达的有问题,还请大佬们指点指点哈。接下来,让我们在后面的博文再相会哈~

更多推荐

ADC内部电源监控

本文发布于:2023-11-14 14:30:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587660.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:电源   ADC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!