Autosar MCAL-ADC配置PWM硬件触发采样

文章目录

  • 前言
  • ADC配置
    • AdcGroupRequestSource
    • AdcGroupTriggSrc
    • AdcHwExtTrigSelect
    • AdcHwGatePin
    • AdcGeneral-AdcHwTriggerApi
    • AdcHwGateSignal
    • AdcHwTrigSignal
    • AdcHwTrigType
  • Gtm
    • GtmConnections
  • PWM
  • 实际使用
  • 总结

前言

在实际项目开发过程中,关于ADC采样,大部分使用软件触发即可,但是在特定情况下,需要应用到硬件触发采样,如在测量电流时,可能就需要使用到ADC的硬件触发功能。本文基于Davinci cfg及TC27x芯片,介绍如何配置通过PWM触发ADC采样。

ADC配置

在之前的一篇文章中,介绍了ADC的大部分配置,传送门:Autosar MCAL-ADC详解(二)-基于Tc27x的cfg软件

下面介绍和硬件触发相关的配置

AdcGroupRequestSource

REQSRC0_8STG_QUE对应Group Queued source
REQSRC1_NCH_SCAN对应Group Scan source
REQSRC2_BGND_SCAN对应Background Scan source

此处我们选择REQSRC0_8STG_QUE,在芯片手册中对于Group Queued source有如下流程图:
Autosar MCAL-ADC配置PWM硬件触发采样_第1张图片
此处很清楚的可以看到,对于硬件触发来说,我们要配置trigger inputs和gating inputs的来源。在后面的配置项中介绍。关于其他请求源,可以参考芯片手册。

cfg中配置:

AdcGroupTriggSrc

此处选择HW触发


cfg中配置:

AdcHwExtTrigSelect

由Group Queued source图可知,该trigger可以由REQTRx[H:A]输入,也可以由gating的pin直接输入。

对于trigger的选择,在芯片手册中有如下定义:
Autosar MCAL-ADC配置PWM硬件触发采样_第2张图片

Autosar MCAL-ADC配置PWM硬件触发采样_第3张图片
此处我们选择trigger由gating input。

cfg中配置:
Autosar MCAL-ADC配置PWM硬件触发采样_第4张图片

AdcHwGatePin

配置Gating pin,在芯片手册中有如下定义:

Autosar MCAL-ADC配置PWM硬件触发采样_第5张图片
此处我们选择GTM_adcx_trig0

cfg配置:

Autosar MCAL-ADC配置PWM硬件触发采样_第6张图片

AdcGeneral-AdcHwTriggerApi

要使用HW触发ADC,需要使用该API函数。

cfg中配置:

Autosar MCAL-ADC配置PWM硬件触发采样_第7张图片

AdcHwGateSignal

此处我们使用的是gate pin作为trigger,且使用PWM波的上升沿触发,这里配置NONE即可,不关心Gate的输入,只关心跳变沿

在芯片手册中对应的寄存器为:

Autosar MCAL-ADC配置PWM硬件触发采样_第8张图片

对应的位为:


cfg中配置:

AdcHwTrigSignal

此处我们选择PWM上升沿触发,具体触发点在PWM中配置duty实现。

在芯片手册中对应的位为:

Autosar MCAL-ADC配置PWM硬件触发采样_第9张图片
cfg中配置:

AdcHwTrigType

此处配置为外部触发

Gtm

GtmConnections

现在需要将对应的PWM通道(TOM)和ADC映射,在手册中有如下映射关系:

Autosar MCAL-ADC配置PWM硬件触发采样_第10张图片
该对应关系存在于GTM模块中,配置也是在这个模块中配置。

此处我们采用TOM Channel6作为trigger0

cfg中配置:

Autosar MCAL-ADC配置PWM硬件触发采样_第11张图片
对应的生成代码对应的值

  
static const uint8 Gtm_kAdcConnections0[GTM_NO_OF_ADC_MODULES] = 
{
 0x01U, 0x00U, 0x00U, 0x00U, 0x00U,
};

PWM

需要配置对应的PWM模块关联对应的TOM模块

之前有介绍过PWM模块的配置,具体可以参考:

Autosar PWM配置及使用

实际使用

ADC初始化时使用Adc_EnableHardwareTrigger函数允许ADC硬件触发


Adc_EnableHardwareTrigger(AdcGroupId);

软件运行过程中对相应通道的ADC采样进行处理。

总结

以上介绍了PWM硬件触发ADC的配置项。在实际使用中,可以按照自己的需求来修改。


若你觉得本文对你有帮助,欢迎点赞,关注,收藏,转发~~~ 你的鼓励是对小弟的最大支持~~~

建了一个WX公众h,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新

你可能感兴趣的:(Autosar笔记,TC277学习笔记,Autosar,ADC)