0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AUTOSAR MCAL-基于Infineon TC3xx芯片的ADC模块

832065824 来源:汽车电子嵌入式 2023-01-29 16:45 次阅读

前言

MCAL的作用是隔离硬件,对上提供统一的标准接口。前面的MCAL_ADC文章<<AUTOSAR-MCAL--ADC模块详解>>已经基于RenesasRH850芯片详细介绍过ADC模块了,由于最近开始使用Infineon TC3xx芯片,在配置ADC模块的时候发现ADC模块对上提供的标准接口是一样的,在切换芯片的时候,IoHwAb_ADC模块基本不用修改,但是对于具体ADC模块的配置,和芯片特性强相关的地方还是有很多地方(AUTOSAR MCAL标准定义的配置项都是一样的),本文将详细介绍基于Infineon TC3xx芯片MCAL_ADC模块特有的一些配置功能。

正文

1.TC377芯片ADC硬件资源

在配置一个MCAL模块的时候主要关注这个模块的三个特性:

1)ADC硬件单元:ADC模块有多少个ADC硬件单元Unit,每个Unit有多少个通道Channel,这样我们就可以知道这个ADC模块最大可以配置多少路ADC数据了。

2) ADC时钟源:知道ADC时钟源和可以使用的分频系数就可以知道ADC模块最大/小的使用时钟频率了(时钟频率在ADC模块作用不是特别明显,在配置PWM/ICU模块的时候就非常重要)。

3) ADC中断源:使用ADC转换完成中断的话就需要知道使用的中断源,也就是每个Unit/Group的中断号,这个中断号在配置OS的ISR的时候需要用到。

Note: 如果是新手的话,查看TC3xx系列芯片共有的特性应该查看下图的文档:

5728403e-99c4-11ed-bfe3-dac502259ad0.png

查看TC37x具体芯片的硬件资源情况需要查看下图的另一份文档:

5741e89a-99c4-11ed-bfe3-dac502259ad0.png

两份文档需要结合起来看,才能找到自己想要的东西。

1.1ADC硬件单元

57554c1e-99c4-11ed-bfe3-dac502259ad0.png

TC37xx有8组ADC采集单元,Group0-8是Primary Groups,Group8-11是Secondary Groups,每组Primary Group有8个Channels,每组Secondary Group有18个Channels,总共可以同时采集8*4 + 16*4 = 96路ADC值。

57872c98-99c4-11ed-bfe3-dac502259ad0.png

1.2.ADC时钟源

5796a38a-99c4-11ed-bfe3-dac502259ad0.png

ADC模块使用fADC作息模块参考时钟,fADC的具体配置在MCU模块(后面分析TC3xxMCU模块的时候再具体分析)。

1.3ADC中断源

57a352b0-99c4-11ed-bfe3-dac502259ad0.png

Group0-3的ISR中断地址计算公式为:0x670 + x*0x10 + y*0x4,其中x为Group号,也就是0/1/2/3,y是选择那一路Service Request输出。

那这个y值怎么确定?-- 见下文分析

57d451d0-99c4-11ed-bfe3-dac502259ad0.png

Group 0可以配置使用G0SR0-3中的一路作为中断输入请求信号

57e8390c-99c4-11ed-bfe3-dac502259ad0.png

通过配置GxSEVNP寄存器的SEViNP位域可以选择使用那一路Service Request Line。

不过需要注意的是在EB的MCAL_ADC配置项里面没有关于每个Group的Service Request的配置项,所以GxSEVNP寄存器的SEViNP位域为默认值0。

综上所诉,我们得出Group0使用的中断服务的地址为:

Group0的ISR中断地址:0x670 + 0*0x10 + 0*0x4 = 0x670,其他Group使用的中断服务的地址以此类推

2. TC3XX MCAL特有的配置

2.1 External Multiplexer Control

580ba59a-99c4-11ed-bfe3-dac502259ad0.png

在TC3xx的ADC模块的General配置属性里面有关于Emux相关的配置选项,这些配置参数不是AUTOSAR_MCAL标准定义的,是TC3xx芯片特有的。

5819d82c-99c4-11ed-bfe3-dac502259ad0.png

从上文可以 得知TC37x总共可以同时采集96路ADC,如果项目中采集的ADC超过96路(芯片引脚又足够用)该怎么办?-- 换更多Pin脚的芯片显然不划算,那就可以考虑TC3xx的EVADC模块硬件实现的外部多路复用器的功能,简单的来讲,就是使用一路ADC通道可以采集最多八路的ADC信号,具体由Emux相关寄存器配置实现。

一般情况,ADC通道足够,在配置MCAL_ADC的时候不用配置EMUX,了解有这个特性即可。

2.2 Input Class Register

58244230-99c4-11ed-bfe3-dac502259ad0.png

在ADC 模块的顶层配置容器里面有一个全局(Global)的配置容器ADCGlobalInputClass。

584ba7d0-99c4-11ed-bfe3-dac502259ad0.png

在AdcHwUnit配置容易下面有一个AdcHwUnitInputClass的子配置。

58715796-99c4-11ed-bfe3-dac502259ad0.png

AdcChannel配置容器下的每一路Channel都会引用一个AdcInputClass,可以选择Globl的InputClass,也可以选择每一个HwUinit下的Input Class。

那这个Input Class 到底是什么了? -- 查看芯片手册

58876f90-99c4-11ed-bfe3-dac502259ad0.png

配置InputClass其实就是配置GxlCLASSi和GLOBICLASSi系列寄存器。

58b57db8-99c4-11ed-bfe3-dac502259ad0.png

翻译过来就是:全局输入类寄存器为通过其通道控制寄存器GxCHCTRy中的位字段ICLSEL选择它们的相应组的每个通道定义采样时间和数据转换模式。

58d5b3a8-99c4-11ed-bfe3-dac502259ad0.png

翻译过来:特定于组的输入类寄存器为通过其通道控制寄存器GxCHCTRy中的位字段ICLSEL选择它们的任何组的每个通道定义采样时间和数据转换模式。

也就是说Input Class在配置每个AdcChannel的采样时间、转换模式(具体哪些模式可以参考芯片手册)、预充电时间等输入属性,个人觉得如果没有特殊性能要求的话,这些可选属性维持默认配置就可以了。

3.总结

现在的芯片手册基本都快上万页了,在接触一块新的芯片的时候先把芯片手册看完,基本是不可能的,就算看完也记不住,所有只有等需要解决疑惑的时候带着问题的查手册,才是比较合适的学习方法。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2486

    浏览量

    46547
  • 接口
    +关注

    关注

    33

    文章

    7648

    浏览量

    148521
  • adc
    adc
    +关注

    关注

    95

    文章

    5653

    浏览量

    539500
  • AUTOSAR
    +关注

    关注

    9

    文章

    330

    浏览量

    21138
  • Infineon
    +关注

    关注

    2

    文章

    81

    浏览量

    28646

原文标题:AUTOSAR MCAL-基于Infineon TC3xx芯片的ADC模块

文章出处:【微信号:汽车电子嵌入式,微信公众号:汽车电子嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TC3xx芯片的Endinit功能详解

    上锁Endinit。那什么是Endinit功能了? -- 本文就来详细解锁TC3xx芯片的Endinit机制。
    的头像 发表于 11-27 09:23 823次阅读
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的Endinit功能详解

    TC3xx芯片时钟系统的锁相环PLL详解

    中的Tick数就是基于模块时钟的)。本系列文章就来详细介绍TC3xx芯片的时钟系统及其具体配置。本文为TC3xx芯片时钟系统的锁相环PLL详
    的头像 发表于 12-01 09:37 809次阅读
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>时钟系统的锁相环PLL详解

    AURIX™ TC3XX如何暂时仅启用/禁用CAN中断?

    你我使用的是 AURIX™ TC3XX。 在 CAN ISR 处理期间,如何暂时仅启用/禁用 CAN 中断?
    发表于 01-18 06:47

    TC3xx SCR功耗应该怎么评估?

    TC3xx SCR处于70kHz active状态,以及CAN WAKE UP也处于active,Tricore都掉电了,这个时候功耗是多少呢?SCR中不同的组件激活状态下,功耗应该怎么评估,有没有
    发表于 01-19 08:28

    TC3XX寄存器读写时间过长怎么解决?

    我目前在做TC3XX底层代码优化,经过之前多次测试目前可以确定该系列芯片对单个寄存器地址的读写耗时超过100us。请问对于寄存器读写耗时你们官方有没有确切的文件说明?还有就是既然寄存器读写时间那么长100M的外设总线时钟是否有意义?
    发表于 01-25 06:56

    TC3xx系列怎么禁用trap?

    目前在TC3xx调试flash读写功能,单独运行flash相关功能没有问题,但将flash相关功能集成到工程中。操作pflash就会进入trap中,查看了一些帖子说是要禁掉trap?请问怎么禁用trap?目前没找到相关函数
    发表于 01-31 06:21

    TC3xx系列是否支持RTC功能?

    请教各位,TC3xx系列芯片是否支持RTC功能,目前要记录snapshot的时间点(年月日时分秒)。
    发表于 02-02 07:53

    GCC和TASKING有什么区别?应该为AURIX™ TC3xx选择什么?

    GCC 和 TASKING 有什么区别? 我应该为 AURIX™ TC3xx 选择什么? 这将如何影响代码的运行?
    发表于 03-01 10:09

    TC3xx的HSM中有没有单调计数器?

    你好, 我看到 OPTIGA 有单调计数器,但我在 TC3xx 的 HSM 中确实找不到单调计数器。 能否确认TC3xx的HSM中没有单调计数器?
    发表于 03-05 07:56

    S32K3 MCAL支持哪些版本的Autosar

    我有几个关于 Autosar 的问题1.S32K3 MCAL支持哪些版本的Autosar?2. Autosar R19-11 支持不支持?
    发表于 03-27 07:52

    英飞凌TC3XX MCAL CAN模块简析

    英飞凌的芯片在汽车电子里用得可谓是颇多,刚好小编也用过,最近刚好在摸TC3系列的CAN模块,刚好简单写写。
    的头像 发表于 03-07 09:29 1865次阅读

    AURIX™嵌入式软件: 增强型MC-ISAR TC3xx MCAL增加了符合ASIL D和SIL-2标准的驱动程序,以支持AUTOSARv4.4.0

    TC3xx MCAL。这将加快OEM厂商的软件开发。针对ASIL D应用,MC-ISAR TC3xx路线图已更新,以提供符合ASIL D标准的驱动程序。通过即将推出的维护版2.25.0,该驱动程序将包含符合
    发表于 07-04 16:07 240次阅读
    AURIX™嵌入式软件: 增强型MC-ISAR <b class='flag-5'>TC3xx</b> <b class='flag-5'>MCAL</b>增加了符合ASIL D和SIL-2标准的驱动程序,以支持AUTOSARv4.4.0

    TC3xx芯片DMU介绍

    AUTOSAR架构图下的Fls模块对上(Fee)模块提供统一的标准接口,但是具体的实现因不同的芯片而不一样,Infineon公司的Fls
    的头像 发表于 08-31 14:10 871次阅读
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>DMU介绍

    TC3xx芯片的MPU功能详解

    在前面的文章文章中我们介绍了RH850-U2A的内存保护单元(MPU),了解了MPU的概念以及在RH850-U2A上的具体使用流程,但是对于TC3xx系列芯片的的MPU功能不甚了解。本文就来详细介绍下
    的头像 发表于 09-19 11:42 1020次阅读
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的MPU功能详解

    深入解析TC3xx芯片中的SMU模块应用

    TC3xx芯片是德国英飞凌半导体公司推出的汽车级处理器芯片系列,其中的SMU(System Management Unit)模块是其重要组成部分之一。SMU
    的头像 发表于 03-01 18:08 551次阅读