AutosarMCAL开发——基于TC367、EBTresos 开发之ADC

1.adc基础知识

  • pipelin ADC 电阻分压比较 市面上应用较少
  • SAR型adc原理
    链接: link
  • Σ-Δ转换器
    链接: link

2.AUTOSAR中adc架构

该部分内容转载自链接: AUTOSAR ADC理解

以下为内容总结:

hardwa/group/channel关系

在这里插入图片描述

其中对应关系为

  • HW_CHx抽象为SW_CHx,一般为一一对应映射
  • 一个SW_Group可以包含多个SW_CH,一个SW_CH也可以属于多个Group
  • Group中不能为空,Group可以设置优先级,数字越大优先级越高
  • 上层调用是对Group操作

转换方式

在这里插入图片描述

  • 单次转换:转换信号触发一次只转换一次
  • 连续转换:转换信号触发一次连续不停转换,可手动关闭
触发方式启动/使能AP停止/关闭API
软件触发Adc_StartGroupConversionAdc_StopGroupConversion
硬件触发Adc_EnableHardwareTriggerAdc_DisableHardwareTrigger

Buffer访问模式

在这里插入图片描述

  • Buffer是Group转换结果的抽象层
  • 一个Group对应一个Buffer
  • buffer所需空间:single模式固定为1 单位为通道允许最小类型,12bit设置为Uint16_t即可;Streaming模式取决于StreamSampleNum配置,例如:StreamSampleNum设置为2,某个Group里面你配置了3个Channel,则你定义的Buffer大小为:3*2=6,类型为位宽大于uint16类型的,比如uint16 TestBuffer[6]
  • 每次buffer转换完成后都会从头覆盖
  • Linear 模式:每个通道依次采,buff满了就停止采集;circular循环覆盖buff
  • Num_sample设置为2则表示同样采样时间一个通道将会采集2次
API作用
Adc_SetupResultBufferBuffer的初始化
Adc_GetStreamLastPointer返回第一个Channel的buffer位置
Adc_ReadGroup第一个参数是你想读取的组的索引号,第二个参数是缓存的指针

3.TC3xADC架构

在这里插入图片描述
其中,EVadc包括结果处理器、请求源仲裁器、服务产生器以及三个SAR adc集群 (主转换器组、副转换器组、快速比较通道)组成

在这里插入图片描述
上图为sar adc内核组成部分,负责adc的主要比较转换功能
在这里插入图片描述
上图为请求控制器,输出至转换器,其中主集群8队列,副集群16队列

4.EB配置

软件触发adc

定时器硬件触发adc

配置步骤:

  • 配置GTM中计数器(TOM/ATOM)模块产生时钟边沿
  • 连接计数器(TOM/ATOM)模块输出的时钟边沿至EVADC触发器
  • 配置EVADC Group(硬件触发方式)
  • 配置ADCChannel

配置ATOM特定通道产生的边沿输出至ADC模块:

Mcu——McuHardwareResourceAllocationConf_0——McuGtmAllocationConf_0——McuGtmAtomAllocationConf_0
在这里插入图片描述

连接至adc模块触发器触发通道配置:

Mcu——GtmGlobalConfiguration_0——GtmTriggerForAdc
在这里插入图片描述

配置ADC Group:

Adc——AdcHwUnit_0——AdcGroupHWUint0
在这里插入图片描述
在这里插入图片描述

定义Group配置生效的通道

在这里插入图片描述
在这里插入图片描述

补充:

触发复用选择器 该部分资料在User_Manual——GTM中
在这里插入图片描述
ADC每个TRIG通道对应GTM中两个部分out0与out2,共12路对应12个adc
在这里插入图片描述
例如需要设置adc0_trig0具体的触发通道,EB配置为
在这里插入图片描述
手册中对应内容
在这里插入图片描述

DMA采样结果搬运

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

TransactionSet这里是通道的详细配置
DmaTcsIndex: 这个参数是Transaction的Id,如果通道中只有一个,就是0就可以,如果有Linked List,存在多个Transaction,就需要依次排序;

DmaTcsSourceAddress & DmaTcsDestinationAddress: 搬运的源地址和目的地址,这里可以使用地址值,也可以使用变量、寄存器名等,但是前提是下面的头文件引用能够包含该信息;
DmaUserHeaderFileWithExternDeclarations: 引用头文件;
DmaTcsMoveLength: Move搬运的数据宽度
DmaPatternMode: 数据匹配模式,能够进行数据匹配
DmaTcsTransferLength: 一个Transfer中Move的数量;
DmaTcsTransactionLength: 一个Transaction中Transfer的数量;
DmaTcsCircularBufferSourceEnable: 源地址循环Buffer使能;
DmaTcsCircularBufferDestinationEnable: 目的地址循环Buffer使能;
DmaTcsCircularBufferSourceLength: 源地址循环Buffer尺寸,这里我们配置16字节循环;
DmaTcsCircularBufferDestinationLength: 目的地址循环Buffer尺寸,这里我们配置16字节循环;
DmaTcsSourceAddressModificationFactor: 源地址偏移值,这里我们配置1个Move宽度,不留间隙;
DmaTcsDestinationAddressModificationFactor: 目的地址偏移值;
DmaTcsAppendTimeStamp: 时间戳功能;
DmaTcsSourceAddressMovement: 源地址偏移方向,这里配置为增加;
DmaTcsDestinationAddressMovement: 目的地址偏移方向,这里配置为增加;
DmaTcsShadowRegisterConfiguration: 影子寄存器配置,未使用;
DmaTcsTriggerFrequency: Transaction触发频率,也就是选择一次触发是完成一个Transfer还是完成一个Transaction;
DmaTcsHardwareTrigger: 是否使用硬件触发,单次还是连续;
DmaTcsDaisyChaining: 是否配置为Daisy链,如果勾选则完成后触发相邻的低通道的请求,这里不使用

PWM延时触发adc

配置步骤:
确定触发通道
连接触发源

确定trig通道

以及确定的信息为PWM使用的定时器通道为TOM1_3以及ADC通道ADC1_1
在这里插入图片描述
再用户手册(总览)中搜索对应PWM通道,获取到对应的TIGR号以及TRIG_SEL序列
在这里插入图片描述

在这里插入图片描述
该部分内容主要位于下列位置
在这里插入图片描述

ADC Group配置以及TRIG通道连接

在这里插入图片描述
在这里插入图片描述

5.总结

本文为博主个人学习总结记录,如有不正,欢迎指正

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值