TMS320F28xx ADC转换图解

 ADC模块框图ADC Module Block Diagram

 

 说明:

  • 左上角为ADC的核心模块,实现AD转换功能。
  • 左下角为参考电压选择模块
  • 右上角为模数封装逻辑。

其中:

  • 核心部分为采样保持电路(S/H Circuit)和AD转换器。
  • 有16路启动转换(SOC)
  • 4路后处理模块(PPB)
  • 4路中断模块

 信号模式

28002x只支持单端信号模式。

转换结果与参考电压之间的关系为:

 

启动转换(start-of-conversions,SOC)

 说明:

  • 最多有16路SOC用于启动转换;
  • 每一路SOC需要配置3个信号:采样通道、采样持续时间、触发源;
  • 多路SOC同时满足条件时,交给SOC仲裁和控制模块;

触发源可以是:

  • 软件触发:ADCSOCFRC1.SOC0
  • ADC中断触发:ADCINT1和ADCINT2
  • 其他触发源(CPU定时器和PWM事件):具体如下。

触发源:

 

ADC转换优先级

Round Robin优先级

当同时设置多个 SOC 标志时,两种优先级形式中的一种决定了它们转换的顺序。 默认优先级方法是循环法。 在这个方案中,没有一个 SOC 具有比另一个更高的固有优先级。 优先级取决于循环指针(RRPOINTER)。 ADCSOCPRIORITYCTL 寄存器中反映的RRPOINTER 指向最后转换的SOC。 最高优先级的 SOC 被赋予下一个大于 RRPOINTER 值的值,在 SOC15 之后返回到 SOC0。 复位时该值为 16,因为 0 表示已发生转换。 当 RRPOINTER 等于 16 时,最高优先级被赋予 SOC0。 当 ADCCTL1.RESET 位置位或写入 SOCPRICTL 寄存器时,RRPOINTER 由器件复位复位。

 

A

复位后,SOC0 为最高优先级 SOC ;

SOC7 收到触发信号;

SOC7 配置的通道立即转换。

BRRPOINTER 更改为指向 SOC 7;
SOC8 现在是最高优先级的 SOC。
CSOC2 & SOC12 同时收到触发信号 ;
SOC12 是循环轮上的第一个;
SOC12 配置的通道在转换的同时
SOC2 保持待定。
DRRPOINTER 更改为指向 SOC 12;
SOC2 配置的通道现已转换。
ERRPOINTER 更改为指向 SOC 2;
SOC3 现在是最高优先级 SOC 。

高优先级SOC

ADCSOCPRIORITYCTL 寄存器中的 SOCPRIORITY 字段可用于将高优先级从单个 SOC 分配给所有 SOC。 当配置为高优先级时,SOC 将在任何当前转换完成后中断循环轮并作为下一个转换插入。 转换完成后,循环轮将在中断的地方继续运行。 如果同时触发两个高优先级 SOC,则编号较低的 SOC 将优先。

高优先级模式首先分配给 SOC0,然后按数字递增的顺序分配。 SOCPRIORITY 字段中写入的值定义了第一个不是高优先级的 SOC。 换句话说,如果将值 4 写入 SOCPRIORITY,则 SOC0、SOC1、SOC2 和 SOC3 被定义为高优先级,其中 SOC0 最高。

其中:

  • RRPOINTER指示了当前轮盘处理的SOC编号。(0x10为初始状态,表示还未开始SOC转换,下一个最高优先级为SOC0)。
  • SOCPRIORITY表示第一个不是高优先级的SOC。比如,值为4则表示SOC0~SOC3为高优先级,SOC4~SOC15是RR优先级。
  • 当高优先级的SOC满足条件时,会中断当前的RR优先级的SOC,处理高优先级的SOC,处理完成后再返回之前的RR优先级。
  • 如果同时有多个高优先级的SOC,则编号最小的优先处理。

 

下图 给出了使用高优先级 SOC 的示例。

 

A复位后,SOC4 在循环轮上为第 1 位;
SOC7 收到触发信号;
SOC7 配置的通道立即转换。
BRRPOINTER 更改为指向 SOC 7;
SOC8 现在在循环轮上排名第一。
CSOC2 & SOC12 同时收到触发信号 ;
SOC2 中断循环轮, SOC 2 配置的通道被转换,而 SOC 12 保持挂起。
D

RRPOINTER 一直指向 7;

SOC12 配置的通道现已转换。

ERRPOINTER 更改为指向 SOC 12;
SOC13 现在在循环轮上排名第一。

突发模式(Burst Mode)

突发模式允许单个触发器一次遍历一个或多个循环 SOC。 设置 ADCBURSTCTL 寄存器中的位 BURSTEN 将 ADC 包装器配置为突发模式。 这会导致 TRIGSEL 字段被忽略,但仅适用于为循环操作(非高优先级)配置的 SOC。

所有循环 SOC 均基于 ADCBURSTCTL 寄存器中的 BURSTTRIG 字段而不是 TRIGSEL 字段触发。 收到突发触发后,ADC 包装器不会设置所有要转换的循环 SOC,而只会设置 (ADCBURSTCTL.BURSTSIZE + 1) SOC。 要设置的第一个 SOC 将是基于循环指针的具有最高优先级的 SOC,并且将设置后续 SOC,直到设置了 BURSTSIZE SOC。


其中:

  • BURSTEN:是否使能BURST转换
  • BURSTSIZE:当BUUST触发时,一次连续转换N+1个SOC。第一个SOC是从RRPOINTER开始。
  • BURSTTRIGSEL:BURST转换的触发源,包括CPU定时器、PWM等。

 

 

示例:

 

A复位后,循环轮上的SOC4为1;
收到 BURSTRIG 触发;
SOC4 & SOC5 设置和配置通道立即转换。
BRRPOINTER 更改为指向 SOC5;
SOC6 现在在循环轮上为 1。
CBURSTTRIG & SOC1 触发 rcvd。 同时;
设置SOC1、SOC6、SOC7;
SOC1 中断循环轮和 SOC1 配置的通道被转换,而 SOC6 和 SOC7 保持挂起。
DRRPOINTER 一直指向 5;
SOC6/SOC7 配置的通道现已转换。
ERRPOINTER 更改为指向 SOC7;
SOC8 现在在循环轮上为 1,等待 BURSTTRIG。

ADC转换结束产生中断

 说明:

每一个ADC模块有4个可配置的中断。可以选择从16个SOC的EOC标志来触发。

参考文档:

https://www.ti.com.cn/cn/lit/pdf/spruin7

TMS320F28002x Microcontrollers Technical Reference Manual (Rev. A) (英文內容)

Chapter 15
Analog-to-Digital Converter (ADC)

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值