Edit online

ADC 队列

ADC 模块采用队列的方式进行采样转换,通过寄存器设置队列的采样点数以及节点对应的通道,那么在触发信号到来之后,ADC 则按照队列的设置,从节点0开始,依次进行每个节点的采样转换,直至完成队列里面的所有节点的采样转换。

ADC 的队列支持两种模式,一种为双队列模式(即Q1和Q2独立工作),另一种为合并队列模式(即Q1和Q2合并成队列QC)。

双队列模式

双队列模式,指的是队列1(Q1)和队列2(Q2),各自队列最大可支持8个节点,队列采样的节点数可以通过寄存器Q1/2_TRIG_CNT进行配置,而各个节点对应的采样通道则通过寄存器ADC_Q1_NODE和ADC_Q2_NODE进行配置。

Q1支持的触发信号包括:

  • EPWM_ADC_CVRA:EPWM产生的触发信号A,此信号为所有EPWMn_ADC_CVRA的OR逻辑信号(n=0/1/2/…/11);

  • ADC_TRIGE:外部的触发信号,通过外部管脚输入;

  • SW_TRIG:软件触发信号,通过软件写寄存器字段Q1_TRIGS产生。

Q2支持的触发信号包括:

  • EPWM_ADC_CVRB:EPWM产生的触发信号B,此信号为所有EPWMn_ADC_CVRB的OR逻辑信号(n=0/1/2/…/11);

  • SW_TRIG:软件触发信号,通过软件写寄存器字段Q2_TRIGS产生。

在双队列模式下,Q1和Q2是独立的两个队列,为了避免Q1和Q2互相干扰,设置各自的触发信号时需保证ADC完成某一个队列后再完成下一个队列。

下面以ADC0举例说明队列1和队列2的使用方法:

这里对ADC0的队列1设置3个采样节点(Node0~Node2),依次为CH0、CH1、CH2,ADC0的队列2设置4个采样节点(Node0~Node3),依次为CH8、CH9、CH10、CH11。 由于队列1里设置3个采样节点,所以队列1中的Node3~Node7都不会生效,ADC在接收到队列1的有效触发信号后,依次对通道CH0、CH1、CH2进行一次采样转换,完成后队列1的任务即完成,ADC0进入空闲状态。 同样由于队列2设置4个采样点,所以队列2中的Node4~node7都不会生效,ADC在接收到队列2的有效触发信号后,依次对通道CH4、CH5、CH6、CH7进行一次采样转换,完成后队列2的任务即完成,ADC0进入空闲状态。

合并队列模式

单队列模式,指的是Q1和Q2进行合并而成的QC队列。QC队列最大支持16个节点,队列采样的节点数可以通过Q1_TRIG_CNT进行设置,而节点对应的采样通道则通过寄存器ADC_Q1_NODE(对应节点0~7)和ADC_Q2_NODE(对应节点8~15)进行配置。

QC支持的触发信号包括:

  • EPWM_ADC_CVRA:EPWM产生的触发信号A,此信号为所有EPWMn_ADC_CVRA的OR逻辑信号(n=0/1/2/…/11);

  • ADC_TRIGE:外部的触发信号,通过外部管脚输入;

  • SW_TRIG:软件触发信号,通过软件写寄存器产生。

下面以ADC0举例说明合并队列QC的使用方法:

这里对ADC0设置采用合并队列QC,并且设置11个采样节点(Node0~Node10),所以需对Q1的节点寄存器依次配置为CH1、CH3、CH2、CH4、CH4、CH5、CH6、CH7,表示Node0~Node7,对Q2的节点寄存器依次配置为CH11、CH9、CH10,表示Node8~Node10。 由于合并队列QC里设置11个采样节点,所以队列中的Node11~Node15都不会生效,ADC在接收到合并队列的有效触发信号后,依次对通道进行一次采样转换,完成后ADC0进入空闲状态。