• TMS320F28374S之ADC一


    介绍

    ADC模块是一个逐次逼近(SAR)风格的ADC,具有16位或12位的可选分辨率。 ADC由一个核心和一个封装器组成。 核心由模拟电路组成,包括通道选择MUX、采样保持(S/H)电路、逐次逼近电路、基准电压电路和其他模拟支持电路。 包装器由配置和控制ADC的数字电路组成。 这些电路包括可编程转换的逻辑、结果寄存器、模拟电路的接口、外围总线的接口、后处理电路和其他片上模块的接口。
    每个ADC模块由一个采样保持(s/h)电路组成。 ADC模块被设计为在同一芯片上重复多次,允许多个ADC同时采样或独立运行。
    ADC block diagram

    ADC配置流程

    有些ADC配置由soc单独控制,而其他ADC配置则由每个soc全局控制ADC模块。
    下图总结了基本ADC选项及其可配置级别
    SOC

    时钟配置

    ADC时钟直接由系统时钟(syclk)提供。 此时钟用于生成ADC采集窗口。 寄存器ADCCTL2有一个确定adccclk的PRESCALE字段。 ADCCLK用于时钟转换器。
    在16位模式下,核心大约需要29.5个ADCCLK周期来计算采样结果,在12位模式下,这个过程大约需要10.5个ADCCLK周期。转换的结果还取决于持续时间的采集窗口。

    时钟配置流程:
    0000 = PRESCALE 表示 输入时钟不分频
    0001 = PRESCALE 表示 非法无效值
    0011 = PRESCALE 表示 输入时钟2分频

    更多配置见下图
    prescale

    分辨率设置

    ADC的分辨率决定了模拟范围被量化成数字值的精细程度。该ADC支持16位或12位的可配置分辨率。
    该解析应该通过使用AdcSetMode()或ADC_setMode()函数来配置,这取决于所使用的头文件,在F2837xS_Adc.c的C2000ware中提供。这些函数确保正确的装饰被加载到ADC装饰寄存器,并且必须在设备复位后至少调用一次。不要通过直接写入ADCCTL2寄存器来配置分辨率。当ADC处于空闲状态(没有活动或挂起的soc)时,可以随时更改分辨率。在转换开始前,改变分辨率后不需要等待时间。如果更改分辨率时soc处于活动状态或挂起状态,那么这些soc可能会产生不正确的转换结果。

    分辨率配置流程:
    0 = RESOLUTION 表示12bit resolution
    1 = RESOLUTION 表示16bit resolution

    电压参考配置

    每个ADC都有一个VREFHI输入和一个VREFLO输入。 在外部参考模式下,这些引脚被用作比例参考来确定ADC转换输入范围

    备注

    •在没有外部VREFLO信号的设备上,VREFLO已内部连接到设备上的模拟地面,VSSA。
    •参考您的设备的数据表来确定VREFHI和的允许电压范围VREFLO。
    •外部参考模式需要在VREFHI引脚上有一个外部电容。
    ADC ref

    信号采样模式

    ADC支持单端和差分两种信号模式。
    1、在单端模式下,转换器的输入电压通过一个单引脚(ADCINx)采样,参考VREFLO。
    2、在差分信号模式下,转换器的输入电压通过一对输入引脚进行采样,其中一个是正输入(ADCINxP),另一个是负输入(ADCINxN)。实际的输入电压为两者之差(ADCINxP - ADCINxN)。
    信号采样模式配置流程:
    0 = SINGALMODE 表示单端采样
    1 = SINGALMODE 表示差分采样

    期望转换AD值

    expected

    实际转换AD值

    实际转换AD值

    SOC工作原理

    ADC触发和转换顺序通过可配置的转换启动来完成(soc)。每个SOC都是一个配置集,定义单个通道的单个转换。在这组
    有三种配置:启动转换的触发源、转换通道和采集(样本)窗口持续时间。在接收为SOC配置的触发器时,包装器将确保使用指定的获取窗口持续时间捕获指定的通道。可以根据需要为同一个触发器、通道和/或采集窗口配置多个soc。将多个soc配置为使用同一个触发器将允许触发器生成一个序列转换。配置多个soc使用相同的触发器和通道将允许过采样。
    SOC

    SOC配置

    每个SOC都有自己的配置寄存器ADCSOCxCTL。在这个寄存器中,可以将SOCx配置为触发器源、转换通道和获取(示例)窗口持续时间。

    触发操作

    每个SOC可以配置为在多个输入触发器中的一个启动。 SOCx的主要触发器选择是ADCSOCxCTL。 TRIGSEL寄存器,可以选择:
    •禁用(仅限软件)
    •CPU定时器0/1/2
    •GPIO: Input X-Bar INPUT5
    •每个ePWM模块的ADCSOCA或ADCSOCB

    ADC采集(采样和保持)窗口

    外部信号源快速有效地驱动模拟信号的能力各不相同。 为了
    实现额定分辨率时,信号源需要对ADC核心中的采样电容进行充电信号电压0.5 lsb以内。
    采集窗口是采样电容的时间量可以通过ADCSOCxCTL对SOCx进行配置。
    ACQPS是一个9位寄存器,可以设置为0到511之间的值,从而产生一个采集窗口持续时间:
    采集窗口= (ACQPS + 1)∙(系统时钟(SYSCLK)周期时间)
    •采集窗口持续时间是基于系统时钟(SYSCLK),而不是ADC时钟(ADCCLK)。
    •所选采集窗口持续时间必须至少是一个ADCCLK周期。
    •数据表将指定最小采集窗口持续时间(以纳秒为单位)。 用户
    负责选择符合此要求的获取窗口持续时间。

    ADC输入模型

    输入模型

    通道选择

    每个SOC可以配置转换任何ADC通道。 通过ADCSOCxCTL.CHSEL寄存器进行选择。 根据信号模式的不同,选择也不同。
    对于单个信号模式,选择单个引脚作为输入。
    对于差分信号模式 ,选择一个偶奇引脚对作为正输入和负输入。
    通道模式

  • 相关阅读:
    基于Spring实现策略模式
    I/O Passthru: Upstreaming a flexible and efficient I/O Path in Linux——泛读笔记
    【无线传感器】WSN 查找两个节点之间的最短路径并发送数据(Matlab代码实现)
    C. Binary String Reconstruction
    java毕业生设计医院新型冠状病毒疫苗接种管理系统计算机源码+系统+mysql+调试部署+lw
    pip install selenium异常
    QGIS二次开发:鼠标在矢量图层上方悬浮,弹出图层提示
    板凳-------unix 网络编程 卷1-1简介
    面试题: Spring AOP是如何实现的? 它和AspectJ有什么区别?
    rsync远程同步
  • 原文地址:https://blog.csdn.net/weixin_29982209/article/details/126438728