EB配置ADC - 实现内部电源监控

本文介绍了如何在恩智浦S32K146芯片中实现ADC内部电源监控,涉及分析芯片手册、使用EB工具配置ADC和内部电源监控,以及结果验证过程。作者以实际操作演示了如何配置ADC0内部channel0的电源监控,并讨论了异常检测方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


->返回总目录<-

前言

本文章基于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芯片,如果哪里表达的有问题,还请大佬们指点指点哈。接下来,让我们在后面的博文再相会哈~
->返回总目录<-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&春风有信

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值