S32K144之ADC

一,S32K144的ADC介绍

1,ADC模块特性

        S32K14x和S32K14xW包含两个12位ADC模块,ADC0和ADC1。

        S32K11x包含一个12位的ADC模块,ADC0。

        不同封装,ADC0和ADC1所包含的通道数不一样,LQFP100来说ADC0和ADC1分别有16个外部通道。

  • 双ADC模块支持交错(interleave)采样通道

43.4 ADC硬件交错通道在有两个ADC的设备上,有几种特殊的ADC通道支持多个ADC之间的硬件交错。以ADC0_SE4和ADC1_SE14通道为例,这两个通道可以独立工作,但它们也可以是硬件交错的,如下图所示。在硬件交错模式下,引脚PTB0上的一个信号都可以通过ADC0和ADC1进行采样。交错模式由SIM_CHIPCTL[ADC_INTERLEAVE_EN]位启用。

 

 2,ADC的电源和参考电压

        VREFH/VREFL -连接作为主要参考选项

        VALTH/VREFL -连接作为备用参考选项

        ADCx_SC2[REFSEL]位为ADC的电压参考源。有关更多细节,请参阅ADC章节中的REFSEL描述。在所有的S32K1xx设备中,VALTH与VDDA相同。在没有专用VREFH / VREFL引脚的包中,VREFH在包中连接到VDDA,VREFL连接到VSSA。如果外部可用,正参考应连接到与VDDA相同的电位,或者可能由外部源驱动到最小VREFH和VDDA电位之间的水平。VREFH永远不能超过VDDA。VREFL应被连接到与VSSA相同的电压电位上。

3,ADC的触发源

  • ADC触发源
  • 触发器通过 PDB 或者 TRGMUX 连接,并提供灵活的触发组合。
  • 2xPDB 产生触发和预触发给 2xADC(ADC 和 PDB 都是成对动作的,例如 PDB0 和 ADC0,PDB1 和 ADC1),每个 PDB 通道最多有8个与处罚期给 ADC 通道控制。
  • 每个ADC最少有1个外部引脚(通过TRGMUX支持)
    • 软件必须确认相对的优先级
    • 在上一个转换完成后开始下一个转换
  • 通过 TRGMUX,CMP 输出,LPIT,RTC 和 LPTMR 都可以作为每个ADC的触发源。
  • LPIT 支持最多4个与处罚期,来限制只在每个 ADC 的 ADHWTSO~ADHWTS3。对于剩下的外设,需要软件扩张来提供预触发器,这部分参照 SIM_ADCOPT[ADCxSWPRETRG] 设置软件预触发器。

什么是ADC的触发源,可以参考以下文章

工程师笔记|ADC 触发源介绍-电子头条-EEWORLD电子工程世界

4,ADC的特征

  • ADC特征
  • 12-bit精度的线性逐次逼近算法
  • 最多16个单端模拟外部输入
  • 输出模式:
  • 单端12-bit,10-bit,8-bit
  • 单端输出为右对齐的无符号形式
  • 单次或持续转换
  • 可配置的采样时间和转换速度/功率
  • 转换完成/硬件平均值计算完成标志和中断
  • 4种输入时钟源选择
  • 低噪声低功率运行模式
  • 可选的硬件转换触发器
  • 自动产生多于,少于或等于的比较中断,或者是在范围内、范围外或一个可配置的值
  • 温度传感器
  • 硬件平均值计算功能
  • 可选的电压参考值:外部的或可供选择的
  • 自我矫正模式

5,ADC的结构框图

 

 

 二,ADC在S32DS中的配置

1,添加ADC模块到工程

 2,选择用哪个ADC

 3,配置ADC

 

 4,将使用的ADC 外部通道添加进来

 

三,程序中使用

1,初始化


   ADC_DRV_ConfigConverter(INST_ADCONV1, &adConv1_ConvConfig0);
   ADC_DRV_AutoCalibration(INST_ADCONV1);

2,读取函数


float ADC_GET_EXT2(void)
{
	float 		 adcValue;
	uint16_t	 adcRawValue;
	uint16_t	 adcMax = 4096;
	/* Configure ADC channel and software trigger a conversion */
	ADC_DRV_ConfigChan(INST_ADCONV1, 0U, &adConv1_ChnConfig0);
	/* Wait for the conversion to be done */
	ADC_DRV_WaitConvDone(INST_ADCONV1);
	/* Store the channel result into a local variable */
	ADC_DRV_GetChanResult(INST_ADCONV1, 0U, &adcRawValue);

	/* Process the result to get the value in volts */
	adcValue = ((float) adcRawValue / adcMax) * (ADC_VREFH - ADC_VREFL);
	return adcValue;
}



float ADC_GET_EXT3(void)
{
	float 		 adcValue;
	uint16_t	 adcRawValue;
	uint16_t	 adcMax = 4096;
	/* Configure ADC channel and software trigger a conversion */
	ADC_DRV_ConfigChan(INST_ADCONV1, 0U, &adConv1_ChnConfig1);
	/* Wait for the conversion to be done */
	ADC_DRV_WaitConvDone(INST_ADCONV1);
	/* Store the channel result into a local variable */
	ADC_DRV_GetChanResult(INST_ADCONV1, 0U, &adcRawValue);

	/* Process the result to get the value in volts */
	adcValue = ((float) adcRawValue / adcMax) * (ADC_VREFH - ADC_VREFL);
	return adcValue;
}

3,调用

float adcValue0 = ADC_GET_EXT2();
float adcValue1 = ADC_GET_EXT3();

参考文章

【S32K 进阶之旅】ADC 模块介绍与应用 - 大大通 (wpgdadatong.com) 

S32K144之SDK版:ADC模块使用_*balance的博客-CSDN博客_s32k adc

S32K144(14)ADC_Suifqwu的博客-CSDN博客_trgmux

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]中的信息,s32k144adc的PWM周期为50us,频率为20KHz。通过修改FTM3_C0V的数值可以对占空比进行调节。而死区时间则通过配置PWM互补输出模式自动生成。 根据引用\[2\]中的信息,s32k144adc的触发源可以通过PDB或者TRGMUX连接,并提供灵活的触发组合。每个ADC最少有1个外部引脚(通过TRGMUX支持),软件必须确认相对的优先级在上一个转换完成后开始下一个转换。 根据引用\[3\]中的信息,s32k144adc在有两个ADC的设备上支持硬件交错通道。在硬件交错模式下,两个通道可以独立工作,也可以进行硬件交错采样。 综上所述,s32k144adc的采样时间可以通过调整PWM周期、占空比和死区时间来控制,并且可以通过PDB、TRGMUX和硬件交错通道来触发采样。 #### 引用[.reference_title] - *1* [关于不同电机控制策略下ADC采样时序的问题](https://blog.csdn.net/weixin_43824188/article/details/130077673)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [S32K144ADC](https://blog.csdn.net/m0_38012497/article/details/128064100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值