ADC 队列
ADC 模块采用队列的方式进行采样转换,通过寄存器设置队列的采样点数以及节点对应的通道,那么在触发信号到来之后,ADC 则按照队列的设置,从节点 0 开始,依次进行每个节点的采样转换,直至完成队列里面的所有节点的采样转换。
ADC 的队列支持两种模式,一种为双队列模式(即 Q1 和 Q2 独立工作),另一种为合并队列模式(即 Q1 和 Q2 合并成队列 QC)。
双队列模式
双队列模式,指的是队列 1(Q1)和队列 2(Q2),各自队列最大可支持 8 个节点,队列采样的节点数可以通过寄存器 Q1/2_TRIG_CNT 进行配置,而各个节点对应的采样通道则通过寄存器 NODE 和 ADC_Q2_NODE 进行配置。
Q1 支持的触发信号包括:
-
EPWM_ADC_CVRA:EPWM 产生的触发信号 A,此信号为所有 CVRA 的 OR 逻辑信号(n=0/1/2/…/11);
-
ADC_TRIGE:外部的触发信号,通过外部管脚输入;
-
SW_TRIG:软件触发信号,通过软件写寄存器字段 TRIGS 产生。
Q2 支持的触发信号包括:
-
EPWM_ADC_CVRB:EPWM 产生的触发信号 B,此信号为所有 CVRB 的 OR 逻辑信号(n=0/1/2/…/11);
-
SW_TRIG:软件触发信号,通过软件写寄存器字段 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 个节点,队列采样的节点数可以通过 CNT 进行设置,而节点对应的采样通道则通过寄存器 NODE(对应节点 0~7)和 NODE(对应节点 8~15)进行配置。
QC 支持的触发信号包括:
-
EPWM_ADC_CVRA:EPWM 产生的触发信号 A,此信号为所有 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 进入空闲状态。