S32K144之ADC

news2024/11/30 15:32:17

一,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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41113.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spark - RDD 算子介绍及使用 Scala、Java、Python 三种语言演示

一、RDD 的起源 在 RDD 出现之前, 当时 MapReduce 是比较主流的, 而 MapReduce 如何执行流程如下: 多个 MapReduce 任务之间只能通过磁盘来进行传递数据,很明显的效率低下,再来看 RDD 的处理方式: 整个过程是共享内存的, 而不需…

利用pycharm调试ssh远程程序,并实时同步文件

或许你的服务器由于设置问题,不能通过Vscode进行远程调试python程序,那么本篇文章提供了利用pycharm远程调试程序的方法,且使用的编译器可以是服务器中的虚拟环境的编译器,可以实时同步本地与服务器的文件内容。希望对你能够有所帮…

【Oracle系列1】Oracle 的connect权限和create session的区别

【Oracle系列1】Oracle 的connect权限和create session的区别 背景 oracle数据库新建用户之后是无法登录的,需要赋予connect角色或者create session权限。 注意: connect是角色不是权限,create session是权限不是角色。角色是权限的集合。…

c++中的结构体

结构体:属于用户自定义的数据类型,允许用户存储不同的数据类型 语法:struct 结构体名 {结构体成员列表};通过结构体创建变量的三种方式:1、struct 结构体名 变量名2、struct 结构体名 变量名{成员1值,成员…

第一个Shader程序

shader 很复杂,我学习的过程中也确实感受到了,需要会数学、图形学、编程语法等等知识。不如让我们直接看看 Shader 到底是什么?直接应用起来。或许没有那么复杂。 1、在场景中新建一个正方体,如下图 2、在 project 面板下新建一…

超级棒,使用 LIME 和 SHAP 可轻松解释机器学习模型的预测

在本文中,我将介绍两个可以帮助了解模型的决策过程的模型 LIME 和 SHAP。 作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。 文章目录技术提升模型SH…

day02 redis

day02 Redis 第一章 Redis持久化机制 Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘(文件)中,这一过程就是持久化。Redis 提供了一系列不同的持久化选项&#x…

MyBatis框架入门(含实例)

目录 1.MyBatis简介 2.ORM框架 3.数据持久化 4.Mybatis入门实战案例 4.1 下载mybatis的jar包 4.2 将jar包导入工程中 4.3 配置Mybatis的核心配置文件 4.3.1 MyBatis核心文件模板(mybatis-config) 4.3.2 mybatis-config模板的设置 4.4 创建User 实体类 4.5定义DAO层M…

11.25学到的东西==命令行

创建文件,可以直接选择文件之后再加上.py import argparse# 单个参数 # 创建解析器 # ArgumentParser 对象包含将命令行解析成 Python 数据类型所需的全部信息。 parser argparse.ArgumentParser() # 单独的参数 square 之后这个help就是提示的信息 # 显示给定数字…

【药材识别】基于matlab GUI SVM色差色温判断药材炮制程度系统【含Matlab源码 2241期】

⛄一、SVM色差色温判断药材炮制程度系统简介 本课题来源于"十二五"国家科技支撑计划项目(2012BAI29B11).颜色是中药质量标准中性状评价极为重要的内容,但传统的中药颜色检测大多依靠人的感官评估,人对颜色的辨别是一个非常复杂的过程,受到光学,视觉生理,视觉心理等诸…

JDBC操作数据库实现增、删、查、改

0.JDBC概念 实际开发中,手动的输入SQL语句是少之又少,大多数情况下是通过编译代码进行来控制自动执行. 具体操作如下: 上述展示有一个【自己写的Mysql客户端】,这种操作是非常容易的,因为各种数据库本身就提供一系列的API,可以让用户很方便…

wordpress 安装主题显示要配置FTP的解决办法

目录 问题复现 1、在安装插件的时候会弹出一个窗口 2、输入相关信息后显示失败 问题解决方法 1、查看wordpress文件权限 2、修改wordpress文件权限 3、插件安装完后,将权限改回 场景:基于Linux 的 wordpress 安装主题显示要配置FTP 安装插件或者主…

RegExp 对象

文章目录RegExp 对象创建RegExp对象正则表达式语法RegExp 对象方法支持正则表达式的 String 对象的方法RegExp.prototype[search]()replace() 方法match()常用正则表达式RegExp 对象 RegExp对象表示正则表达式,是由普通字符和特殊字符(也叫元字符或限定符)组成的文…

基于节点分层的配网潮流前推回代方法matlab程序(IEEE33节点潮流计算)

基于节点分层的配网潮流前推回代方法matlab程序(IEEE33节点潮流计算) 摘要:结合配电网特有的辐射状特点,提出了一种新的基于节点分层的配网潮流前推回代方法。该方法利用配网支路及其节点参数所形成的节点-节点关联矩阵推导出节点…

MiniAlphaGo黑白棋 蒙特卡洛搜索

做个笔记。 一、蒙特卡洛在黑白棋的应用 输入:棋盘𝑏𝑜𝑎𝑟𝑑、当前执子方𝑐𝑜𝑙𝑜𝑟、搜索时间𝑡𝑖𝑚&#x…

小米平板5ProWIFI(elish)刷ArrowOS

文章目录警告下载奇兔刷机系统本体及Recovery清除数据刷入AospRec开始刷入警告完成设置输入法变砖头了qwq又是警告芝士截图Root方法结尾警告 此文章只针对 小米平板5Pro Wifi版本(elish) 由于条件限制,本文大部分无配图 请务必仔细认真阅读此…

Airflow用于ETL的四种基本运行模式, 2022-11-20

(2022.11.20 Sun) 基本运行模式(pattern)是data pipeline使用Airflow的DAG的不同结构,基本模式有如下四种 : 序列Sequence平行拆分Parallel split同步Synchronisation单选Exclusive choice 序列模式 序列模式即若干task按先后顺序依次执行,…

中远通在创业板IPO过会:前三季度收入11亿元,罗厚斌为董事长

近日,深圳证券交易所创业板披露的新显示,深圳市核达中远通电源技术股份有限公司(下称“中远通”)获得上市委会议通过。据贝多财经了解,中远通于2021年6月30日在创业板递交申请。 本次冲刺创业板上市,中远通…

以go rabbitmq为例子--用最少的时间最好的掌握消息队列

为什么要使用消息队列? 流量削峰 举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的…

向QTableView单元格插入窗体小部件的功能实现

1.前言 我们知道:QTableWidget类有如下函数: void QTableWidget::setCellWidget(int row, int column, QWidget *widget) 可以实现在指定的单元格插入窗体部件QWidget对象,如下代码: setCellWidget(row, column, new QLineEdi…