paradoxfx

【原创】TI C2833x介绍---系统自带的ADC(8)

0
阅读(2410)

序列发生器(SEQ1SEQ2SEQ)可以在时序上互相独立,并且与多个触发信号SOC同步停止/启动,即ADC模块的启动/停止模式。在此模式下,序列发生器在完成其某次序列转换之后,可以不需要复位序列发生器,并且在触发条件满足时重新触发(这点在使用定时中断来启动ADC转换时很有帮助,因为在中断服务子程序内无需我们去手动复位该序列发生器)。因此,当一个转换序列结束后,序列发生器保持在当前转换状态。为此需要将ADC控制寄存器ADCTRL1中的连续运行位(CONT_RUN)设置为0

以图1的示意为例,我们使用一个定时PWM中断来触发使用序列发生器SEQ1,其中在ePWM计数的下溢时触发V1-3的转换,在计数值=周期值时触发I1-3的转换,即在触发信号SOC1到来时开始三路转换I1I2I3,在触发信号SOC2到来时开始另外三路转换V1V2V3。两路触发信号间隔25µs,由ePWM模块提供,如图1所示。这样的启动方式在电机控制中普遍用到。

图1 ePWM定时中断启动ADC采样

由于每次要进行三次转换,这里MAX_CONV1应设定为2,通道选择寄存器ADCHSELSEQ的设定为

寄存器

15~12

11~8

7~4

3~0

ADCCHSELSEQ1

V1

I3

I2

I1

ADCCHSELSEQ1

x

x

V3

V2

ADCCHSELSEQ1

x

x

x

x

ADCCHSELSEQ1

x

x

x

x

    在第一个触发信号到来时,SEQ1完成I1I2I3的采样,然后SEQ1进入等待状态,等待下一个触发信号的到来,在下一次完成对V1V2V3的采样。