开发板测评系列六 | NXP S32K312 系列核心板免费试用 +ADC采集并通过UART打印

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配置

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

通道配置

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 开发板评测活动”测评者:杨成

欢迎在博文下方留言评论,我们会及时回复您的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值