目录
1.adc基础知识
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_StartGroupConversion | Adc_StopGroupConversion |
硬件触发 | Adc_EnableHardwareTrigger | Adc_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_SetupResultBuffer | Buffer的初始化 |
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.总结
本文为博主个人学习总结记录,如有不正,欢迎指正