1. 概述
本次使用使用ADC模块采集芯片内部参考电压;还有板子上5V电压通过电位器调节后输入到芯片引脚的电压,并通过调节电位器改变输入电压,并通过串口打印。
硬件环境
- 开发板:Knight S32K312开发板(由大大通提供)
- 12 V 电源 适配器,电流2.5V
- Jlink 调试器、JTAG 转接板
软件环境
- 软件:S32 Design Studio for S32 Platform 3.5
- RTD(实时驱动): SW32K3_S32DS_3.5_D2207
2. ADC模块介绍
特点总结
1、ADC类型由三种分别是:精度、标准、外部有不同精度和性能水平.
2、ADC分辨率可以选择8、10、12但是转换结果总是14位的
3、ADC自检功能、DMA搬运ADC;模拟看门狗功能,主要是用来限制ADC范围的
4、IDLE:表示ADC正在等待Trigger,Trigger可以是硬件的Trigger,也可以软件的Trigger
5、多个ADC通道可以映射到一个引脚上。为此,可以通过DCM的GPR位用于连接到特定的ADC通道上。
6、触发方式
软件触发:
○标准/注入转换:通过设置特定的控制位(NSTART/JSTART)来启动转换。这种方式适用于对采样时机有精确控制要求的场景。
○BCTU触发:通过设置SFTRGn位来启动由块控制定时器(BCTU)管理的转换,适合需要复杂触发条件的应用。
硬件触发:
○标准/注入转换:通过配置TRGMUX(触发多路复用器)来选择触发源,这允许在多个ADC之间实现同步触发,确保在外部事件发生时开始转换。
○BCTU触发:BCTU提供72个触发源,其中绝大部分(69个)通过eMIOS通道触发,剩余的3个源可以来自其他片上模块,具有较高的灵活性和扩展性。
如图:

3. 工程配置
3.1 PORT配置
电路图如下,PORT配置,将PTD4 配置成ADC0_S19 功能

配置如下

3.2 ADC配置
- 选择ADC硬件单元0即ADC0、单次转换软件触发一次就转换一次、ADC空闲自动下电选择
- 主要是一些内部参考电压选择、触发模式使能
- 通知使能函数是否开启

通道配置
1、选择S19_ChanNum43 是否使能普通链和注入链我们选择都不使能,这个意思就是开启后我们可以把多个ADC通道当成一个链,触发一次转换,所有的ADC都会依次转换,会从链的第一个通道开始转换,直到这个链的最后一个ADC通道。
使能预采样,不使能、选择阈值检测(使能后就要配置2中阈值检测上下限的范围)

3.3 UART配置

1.选择LPUART_0 、波特率11500、通信方式中断方式、不校验、一位停止位、8位数据位
4. 代码部分






UART 部分代码


最要函数接口说明
Adc_Sar_Ip_StatusType Adc_Sar_Ip_Init(const uint32 u32Instance, const Adc_Sar_Ip_ConfigType * const pConfig)
描述:该函数初始化ADC(模数转换器)SAR(逐次逼近寄存器)模块。根据pConfig结构中指定的参数配置所有可用的功能,例如参考电压、分辨率、时钟设置等。它接受一个实例编号
(u32Instance),用于识别要初始化的哪个ADC模块。
Adc_Sar_Ip_StatusType Adc_Sar_Ip_Deinit(const uint32 u32Instance)
描述:该函数用于反初始化指定的ADC实例。它将ADC的所有内部寄存器重置为默认值,有效地关闭该模块并清除之前设置的任何配置。
void Adc_Sar_Ip_ChainConfig(const uint32 u32Instance, const Adc_Sar_Ip_ChansIdxMaskType * const pChansIdxMask, const Adc_Sar_Ip_ConvChainType pChainType)
描述:该函数用于配置ADC的正常和注入转换链。它接受指定要通过掩码(pChansIdxMask)配置的通道以及要设置的转换链类型(pChainType,可以是正常链或注入链)的参数。
void Adc_Sar_Ip_EnableChannel(const uint32 u32Instance, const Adc_Sar_Ip_ConvChainType pChainType, const uint32 u32ChnIdx)
描述:该函数用于在指定的转换链中启用一个通道。通过传入的参数pChainType指定转换类型,以及 u32ChnIdx指定要启用的通道索引。
void Adc_Sar_Ip_DisableChannel(const uint32 u32Instance, const Adc_Sar_Ip_ConvChainType pChainType, const uint32 u32ChnIdx)
描述:该函数用于在指定的转换链中禁用一个通道。与启用通道的函数类似,通过传入的参数指定转换类型和通道索引。
void Adc_Sar_Ip_StartConversion(const uint32 u32Instance, const Adc_Sar_Ip_ConvChainType pChainType)
描述:该函数开始执行指定类型的转换通道(正常或注入转换)。
uint32 Adc_Sar_Ip_GetStatusFlags(const uint32 u32Instance)
描述:该函数返回ADC的状态标志。这些标志指示当前ADC的状态,例如转换是否完成、是否发生错误等。
void Adc_Sar_Ip_ClearStatusFlags(const uint32 u32Instance, const uint32 u32Mask)
描述:该函数用于清除ADC的状态标志。通过传入的掩码(u32Mask)指定需要清除的状态标志。
Adc_Sar_Ip_StatusType Adc_Sar_Ip_SelfTest(const uint32 u32Instance)
描述:该函数对指定的ADC实例执行自检。自检通常用于验证ADC功能是否正常,确保设备在运行前处于良好状态。
5.实验现象
参考文献
S32K3XXRM.pdf NXP S32K312_IOMUX.pdf NXP
S32K3_RTD_Training_ADC.pdf NXP S32K3XX.pfd
S32K3_RTD_Training_ADC_BCTU_TRGMUX.pdf
文章来自“S32K312 开发板评测活动”测评者:杨成
欢迎在博文下方留言评论,我们会及时回复您的问题。


156

被折叠的 条评论
为什么被折叠?



