ADC (模数转换器)

简介

芯片包含 3 个 12 位的逐次逼近型模数转换器 (SAR ADC)。3 个 ADC 具有各自的控制 电路,基于触发源选择,可以在同步模式下运行,也可以在非同步模式下运行。 每个 ADC 具有多达 16 个复用通道。各种不同通道的 A/D 转换可以单次、连续或者不 连续采样模式下进行。ADC 的采样结果存储在多个 16 位的寄存器中。 每个 ADC 具有模拟看门狗功能,允许应用检测输入电压的采样值是否超过了用户自定 义的阈值上限或下限。

ADC 映射到系统 AHB 总线,从而可实现快速数据处理。 每个 ADC 内置硬件滤波器,支持多种滤波类型,可提高模拟性能,同时还能减轻 CPU 进行相关计算的负担。

功能概述

  • 支持采样转换,每个ADC支持 16 个采样通道

  • 支持12位分辨率,最高采样率为4.1MSPS

  • 支持采样校准,每个ADC支持软件启动校准

  • 支持采样延迟时间捕获

  • 支持采样触发源选择,16 个 VC 触发源可独立配置选择,触发源来自 SRPWM、ETIMER、STIMER、XBAR、ADC、ACMP 等模块。

  • 支持 ADC 采样虚拟通道配置,每个 ADC 包含 16 个可独立控制的采样虚拟通道 VC

  • 支持 EOC,每个 VC 通道包含一个对应的 EOC 信号,该 EOC 信号可用于产生中断、DMA 请求、ADC 采样触发

  • 支持采样结果预处理,每个 ADC 包含 16 个预处理通道 PC,与 16 个 VC 一一对应

  • 支持采样结果滤波,每个 ADC 包含 8 个滤波通道 FC,每个 VC 可任选 1 个进行采样结果滤波处理

  • 支持采样结果缓存,每个 ADC 包含两组采样结果缓存通道,每组包含 16 个独立寄存器存储采样结果

  • 支持中断上报,每个 ADC 输出 1bit 中断信号

  • 支持 4 个 DMA 请求通道,4 个通道可独立选择请求源

  • 支持状态和告警上报

虚拟通道配置

每个ADC包含16个虚拟通道,每个虚拟通道可以单独配置项包括:采样时间、采样通道类型、采样通道选择、采样触发源、触发模式、滤波使能、VC与滤波通道的映射关系、通道优先级配置;

采样时间

每个虚拟通道可单独配置采样时间,采样时间范围为0-256,采样时间与ADC的采样时钟频率相关,单次转换窗口固定为13UI,ADC采样结果输出打拍0.5UI,所以单次ADC采样加转换最小时间窗口为16UI(ADC时钟); 实际的采样窗口总长度为:

\[Sample window duration = VC\_SPLTIME + 2.5UI\]

例如:ADC在66.66Mhz时钟下,ADC的最高采样率为4.125Mhz,66.66Mhz/(2.5UI+13.5UI)= 4.166Mhz;测试最高采样率的情况下建议使用EOC中断触发,进行循环采样;

采样延时时间捕获

ADC采样延时时间捕获:捕获的是采样触发时间点和对应VC通道实际开始采样的时间点,实际计算得出从触发到实际采样的延时时间计算,捕获时钟是通过一个基于HCLK的12bit free-run内部计数器,用于Trigger-to-Sample 延 迟计算,最大可计 4096 个 HCLK 时钟周期,该计数器的值软件可通过寄存器 T2S_FR_CNT进行实时读取。

采样捕获延迟时间
  • 每个虚拟通道都有一个对应的捕获延迟计数值,用于表示当前虚拟通道从触发到采样的延迟时间;

  • 常规使用下SYSCLK配置为200M,ADC时钟为200M/3=66.66Mhz,所以16UI = 48cycle;

  • 由于对应计数器只有12bit,所以当T2S_STAMP.DLY大于4096时,该值可能是错误值,不可信;

  • 同一个触发源的情况下,低优先级的触发延迟时间依次加上前面的采样转换时间长度;

采样通道类型

ET6001目前不支持通道类型配置,仅支持单端采样模式;

通道优先级

每个ADC包含16个虚拟通道,当多个虚拟通道选择同一个触发源时,可以将多个虚拟通道配置成不同的优先级组进行区分:
  • 优先级共分为4组,优先级组0的优先级最高,优先级组3的优先级最低;

  • 同一优先级组内,VC通道序号越小优先级越高;

当产生触发事件冲突时有两种处理方式:
  • ADC_PRIORITY_MODE_LOW_DISCARD :低优先级任务的通道被丢弃,仅处理最高优先级的通道进行采样,其他优先级低的通路不进行采样;

  • ADC_PRIORITY_MODE_LOW_QUEUE :低优先级任务根据通道优先级进行排队,依次处理;

  • 下图为不同触发事件冲突下的处理方式和触发被打断的情况下的处理方式对比:

优先级使用示例

备注

1.触发冲突事件包括不同的VC通道选择同一触发事件,这也是触发事件冲突,这时候如果想要这些VC通道依次进行采样就需要选择低优先级任务排队处理模式。

  • 下面为根据通道优先级排队处理示例图:

优先级使用示例

采样触发源

16路虚拟通道可独立配置选择触发源,触发源事件共有53种,分别来自以下几个模块,可以通过 ADC_Trigger 选择:

采样触发源

BITS

SARC0/1/2

SRPWM

[11:0]

{EPWM_SADC2_TRIG[3:0],EPWM_SADC1_TRIG[3:0],EPWM_SADC0_TRIG[3:0]}

ETIMER

[25:12]

ETIM2ADC_EVT[13:0]

ACMP

[33:26]

{CMPC_CTRIPL[3],CMPC_CTRIPH[3],CMPC_CTRIPL[2],CMPC_CTRIPH[2], CMPC_CTRIPL[1],CMPC_CTRIPH[1],CMPC_CTRIPL[0],CMPC_CTRIPH[0]}

STIMER

[41:34]

{STM1_OC_EXP[3:0],STM0_OC_EXP[3:0]}

XBAR

[45:42]

XBAR2SARC_CLUDATA[3:0]

ADC

[51:46]

{SARC2_EOC2SPL_TRIG[1:0],SARC1_EOC2SPL_TRIG[1:0],SARC0_EOC2SPL_TRIG[1:0]}

INPUTXBAR

52

INPUTXBAR_DATA[4]

IPTEST

53

IPtest_adc_start

  • SARCx_EOC2SPL_TRIG[1:0] 这里的EOC触发信号只有两个,不是单纯的EOC事件,两个EOC触发信号都是在16个虚拟通道的EOC信号中选则一个作为对应EOC触发信号。默认每个虚拟通道都有EOC信号,两个EOC触发信号默认都选择VC0的EOC信号作为触发信号。

  • 同步采样功能通过多个ADC Core进行实现,每个ADC Core 需要同步采样的虚拟通道配置为相同的触发源,采样时间、采样触发模式等也需要配置相同,避免在触发信号到来时,由于其他原因导致某个采样延迟;

触发模式

触发模式分为单次触发模式和连续触发模式,使用 ADC_TriggerMode 参数进行配置;
  • 单次触发模式:虚拟通道每次配置完成且使能后,只响应一次触发事件,如果需要二次触发,则需要关闭 VC_EN,并重新配置通道参数,重新使能VC_EN后才能响应新的触发信号。

  • 连续触发模式:虚拟通道每次配置完成且使能后,可以重复响应触发事件,直到VC_EN被关闭才不再响应触发事件。

消隐功能

消隐模块为单模块,配置后对所有虚拟通道有效,在消隐窗口范围内,只有VC0的触发信号有效,其他通道的触发信号无效; 消隐功能使用需要配置消隐触发源、消隐触发延迟、消隐窗口长度;

消隐触发源分别来自SRPWM、ETIMER模块,具体通过 ADC_BlankingTrigger 进行配置,以下为具体事件源:

消隐触发源

BITS

SARC0/1/2

SRPWM

[11:0]

{EPWM_SADC2_TRIG[3:0],EPWM_SADC1_TRIG[3:0],EPWM_SADC0_TRIG[3:0]}

ETIMER

[25:12]

ETIM2ADC_EVT[13:0]

消隐触发延迟为消隐触发后,消隐窗口延时多上时间生效,延时时间范围为:1~ \(2^{16}\) SYSCLK时钟数; 消隐窗口长度为触发被忽略的区间,范围为:1~ \(2^{16}\) SYSCLK时钟数;

  • 消隐功能使用注意事项:

    1. 消隐窗口的配置时钟是SYSCLK时钟,不是ADC的模块时钟。

    2. 消隐窗口内除了VC0的触发(专用周期触发源)可以正常响应,其他VC通道的触发信号进行锁存,在消隐窗口结束后,按优先级排队处理。

    3. 若在消隐窗口内,除VC0以外的通道的触发信号出现重复触发,忽略该重复触发信号,并产生触发溢出告警信号。

ADC消隐处理
  • 消隐功能使用示例代码

 /* 配置blanking */
ADC_selectBlankingTrigger(ADC0, ADC0_BLANKING_TRIGGER_ETIMER0);  //触发事件源选择
ADC_setBlankingTrigDelay(ADC0, 10);  //消隐触发后的生效延迟时间
ADC_setBlankingWidth(ADC0, 0x1FF);   //消隐有效窗口
ADC_enableBlanking(ADC0);            //消隐使能

输出数据格式

ADC的输出数据通路分三种情况:

1.原始数据经出厂校准后直接输出,此时需要关闭预处理和滤波模块使能位,在此种情况下如果预处理输出格式和滤波输出格式一致的话,两者输出数据是一致的;

2.原始数据经出厂校准后经预处理通路后输出,此时输出格式有s(15,0),s(16,2)可以选择;此时输出数据在PRE_RESULT结果寄存器读取;

3.原始数据经出厂校准后经滤波通道滤波后输出,此时输出格式有u(12,0),s(16,2)可以选择,此时输出数据在FIL_RESULT结果寄存器读取;

  • ADC数据格式选择路线

ADC数据流程图
  • 下面对配置三种输出数据格式下的输出码值计算做说明(Ain:模拟通路输入电压大小; Vref+:参考电压):

理论s(15,0)/u(12,0)格式输出

原始数据不经任何校准处理的输出数据格式,预处理不使能,滤波不使能,输出格式选择s(15,0)/u(12,0); 输出码值计算:

\[Code = (Ain/Vref+) * 4095\]
  • 由上可知输出码值范围为【0~4095】;

  • 输入VSS理论采样码值为:0;

  • 输入参考电压Vref+理论值为:4095;

  • 下图为输入满量程(VSS~Vref+)三角波采样波形:

    ADC在u(12,0)/s(15,0)格式理论输出数据范围

理论s(16,2)格式输出

输出数据配置为s(16,2)格式,预处理不使能,滤波不使能,前级满量程理论输出码值为0~4095; 输出码值计算:

\[Code = (((Ain/Vref+) * 4095) - 2048) * 4\]
  • 输出码值范围为【-8192 ~ 8188】;

  • 输入VSS理论采样码值为:-8192;

  • 输入参考电压Vref+理论值为:8188;

  • 下图为输入满量程(VSS~Vref+)三角波采样波形:

    ADC在s(16,2)格式理论输出数据范围

校准后s(15,0)格式输出

出厂校准数据输出格式预处理输出s(15,0),s(15,0)格式下的输出码值范围按数字格式应该为【-16384, 16383】,但是在实现过程中该格式是通过s(16,2)格式下转换来的【-32768, 32767】->【-8192,8191】,加上最后的结果需要加2048的偏置得出的结果范围为【-6144, 10239】; 实测中的最值输出范围为【-6144,10240】; ADC校准计算:

\[Code = ((((Ain/Vref+) * 4095) - 2048) + offset) * gain + 2048\]
  • 例如ADC校准配置: Gain=0x2000(0x2000/0x1000=2),offset=0xf;在当前校准数据配置下计算输出数据范围;

  • 输入VSS时,理论输出码值: Code = ((0 - 2048) + 15) * 2 + 2048 = -2018;

  • 输入Vref+时,理论输出码值: Code = ((4095 - 2048) + 15) * 2 + 2048 = 6172;

  • 下图为输入满量程(VSS~Vref+)三角波采样波形:

    示例配置下s(15,0)格式下的采样波形

校准后u(12,0)格式输出

滤波功能不使能,输出格式选择u(12,0), u(12,0)格式的输出码值范围为【0,4095】; ADC校准计算:

\[Code = ((((Ain/Vref+) * 4095) - 2048) + offset) * gain + 2048\]
  • 例如ADC校准配置Gain=0x2000(0x2000/0x1000=2),offset=0xf;在当前校准数据配置下计算输出数据范围;

  • 输入VSS时,理论输出码值: Code = ((0 - 2048) +15) * 2 + 2048 = -2018;

  • 输入Vref+时,理论输出码值: Code = ((4095 - 2048) + 15) * 2 + 2048 = 6172;

  • 下图为输入满量程(VSS~Vref+)三角波采样波形(超出部分被饱和,限制在超出阈值最值点):

    ADC示例校准配置下采样波形

校准后s(16,2)格式输出

预处理和滤波输出结果寄存器值选择s(16,2) 格式,在该格式下的理论值范围为【-32768,32767】,转小数位范围为【-8192, 8191.75】; ADC校准计算:

\[Code = (((((Ain/Vref+) * 4095) - 2048) + offset) * gain) * 4\]
  • 例如ADC校准配置Gain=0x2000(0x2000/0x1000=2),offset=0xf;在当前校准数据配置下计算输出数据范围;

  • 输入VSS时,理论输出码值: Code = (((0 - 2048) + 15) * 2) * 4 = -16264;

  • 输入Vref+时,理论输出码值: Code = (((4095 - 2048) + 15) * 2) * 4 = 16496;

  • 下图为输入满量程(VSS~Vref+)三角波采样波形:

    ADC示例配置校准采样波形

预处理s(15,0)格式输出

出厂校准后再经预处理校准后配置s(15,0) ,该格式下的输出范围在 校准后s(15,0)格式输出 章节下已有说明; ADC校准计算:

\[Y1 = ((((Ain/Vref+) * 4095) - 2048) + offset) * gain + 2048\]

预处理校准计算:

\[Code = ((Y1 - 2048) + offset) * gain + 2048\]
  • 示例配置1:ADC校准配置Gain=0x2000(0x2000/0x1000=2),offset=0xf;预处理校准配置gain=0x2000(0x2000/0x1000=2),offset(s(16,2))=0x7ff=2047=511.75;在当前校准数据配置下计算输出数据范围;

  • 输入VSS时,理论输出码值:
    • Y1 = ((0 - 2048) + 15) * 2 + 2048 = -2018;

    • Code = (((-2018 - 2048) + 511.75) * 2) + 2048 = -5060.5 (5061);

  • 输入Vref+时,理论输出码值:
    • Y1 = ((4095 - 2048) + 15) * 2 + 2048 = 6172;

    • Code = (((6172 - 2048) + 511.75) * 2) + 2048 = 11319.5 (11320);(超出输出数据范围被饱和在最大值10240)

  • 下图为输入满量程(VSS~Vref+)三角波采样波形:

    示例配置下预处理后数据上溢输出波形
  • 示例配置2:ADC校准配置Gain=0x2000(0x2000/0x1000=2),offset=0xf;预处理校准配置gain=0x2000(0x2000/0x1000=2),offset(s(16,2))=0xEFF0=0xEFF0>>2=-1028;在当前校准数据配置下计算输出数据范围;

  • 输入VSS时,理论输出码值:
    • Y1 = ((0 - 2048) + 15) * 2 + 2048 = -2018;

    • Code = (((-2018 - 2048) + (-1028)) * 2) + 2048 = -8140;(超出该格式下的理论输出值-6144,超出部分数据饱和在最小值输出)

  • 输入Vref+时,理论输出码值:
    • Y1 = ((4095 - 2048) + 15) * 2 + 2048 = 6172;

    • Code = (((6172 - 2048) + (-1028)) * 2) + 2048 = 8240;

  • 下图为输入满量程(VSS~Vref+)三角波采样波形:

    示例配置下预处理后数据下溢输出波形

预处理s(16,2)格式输出

出厂校准后再经预处理校准后配置s(16,2) ,该格式下的输出范围在 校准后s(16,2)格式输出 章节下已有说明; ADC校准计算:

\[Y1 = ((((Ain/Vref+) * 4095) - 2048) + offset) * gain * 4\]

预处理校准计算:

\[Code = (Y1 + offset) * gain\]
  • 例如ADC校准配置Gain=0x2000(0x2000/0x1000=2),offset=0xf;预处理校准配置gain=0x2000(0x2000/0x1000=2); offset(s(16,2))=0x7ff=2047=511.75;在当前校准数据配置下计算输出数据范围:

  • 输入VSS时,理论输出码值:
    • Y1 = ((0 - 2048) + 15) * 2 * 4 = -16264;

    • Code = (-16264 + (2047)) * 2 = -28434; (这里offset直接使用2047进行计算,是由于前级输出数据也为s(16,2)格式数据,所以不进行转换)

  • 输入Vref+时,理论输出码值:
    • Y1 = ((4095 - 2048) + 15) * 2 * 4 = 16496;

    • Code = (16496 + 2047) * 2 = 37086;(超出输出数据范围被饱和在最大值32767)

  • 下图为输入满量程(VSS~Vref+)三角波采样波形:

    示例配置下预处理后输出波形

数据预处理

ADC的预处理输入是对ADC采样原始结果进行初次校准后的数据进行,每个虚拟通道都对应一个预处理PC,可以选择是否进行处理;预处理主要是针对偏置和增益进行配置; 常规情况下经过出厂校准后的数据已经基本能够达到要求,但是在一些特殊情况下,需要对原始数据进行预处理,若在使用中外部板级偏置较大等情况,则可以对该通道的输入进行二次预处理校准,用来校准板级偏差;

看门狗检测

每个虚拟通道分别对应一组看门狗监测模块,每个通道的看门狗都可以配置不一样的高低阈值进行监测,看门狗检测对象为 预处理后的数据结果 ,当采样结果大于上门限阈值时,产生上溢告警;当采样结果小于下门限阈值时,产生下溢告警; 看门狗超门限监测信号输出方式通过 ADC_AnalogWdgOutMode 进行配置:

  • 配置为 ADC_ANALOG_WDG_OUT_MODE_OS 时为单次模式,当采样值超出阈值时输出拉高后不能通过硬件清除,需要软件进行手动清除;

  • 配置为 ADC_ANALOG_WDG_OUT_MODE_CBC 时为连续模式,当采样值超出阈值时输出拉高后可以通过硬件清除,当比较采样值不超出配置门限时,硬件自动清除输出;

ADC看门狗检测模式

ADC的看门狗监测信号主要输出给XBAR和ETIMER模块,ADC输出到XBAR和ETIMER模块的信号分为4个,4组事件源从16个虚拟通道的输出信号中选择;

  • ADC模块输出给XBAR模块的信号选择 ADC_selectAnalogWdgOutEvt2XBAR() 函数进行配置。

    • 参数 ADCx 指定ADC模块的通道号。

    • 参数 ADC_AnalogWdgEvtNum 指定ADC输出信号的事件组选择,共能输出4个事件。

    • 参数 ADC_AnalogWdgEvt 指定产生看门狗监测事件的虚拟通道源。

  • ADC模块输出给XBAR模块的信号选择 ADC_selectAnalogWdgOutEvt2ETIMER() 函数进行配置,参数与输出到XBAR的参数一致。

看门狗检测功能使用示例代码

/* 配置看门狗 */
ADC_configAnalogWdgMode(ADC0, ADC_VIRTUAL_CHANNEL0, ADC_ANALOG_WDG_OUT_MODE_CBC);  //看门狗检测模式
ADC_setAnalogWdgThreshold(ADC0, ADC_VIRTUAL_CHANNEL0, 4095, 2048);                 //看门狗检测阈值配置 高阈值4095,低阈值2048
ADC_enableAnalogWdg(ADC0, ADC_VIRTUAL_CHANNEL0, ADC_ANALOG_WDG_THRESHOLD_LOW);     //使能低阈值检测
ADC_enableAnalogWdg(ADC0, ADC_VIRTUAL_CHANNEL0, ADC_ANALOG_WDG_THRESHOLD_HIGH);    //使能高阈值检测
ADC_selectAnalogWdgOutEvt2XBAR(ADC0, ADC_ANALOG_WDG_EVT_NUM_1, ADC_ANALOG_WDG_EVT_VC0); //看门狗输出到XBAR事件1选择VC0的看门狗输出
  • 看门狗不同模式下的注意事项:

    1. 由于超出阈值信号是一个脉冲信号,所以当在两个采样触发之间如果软件清除标志位的话,标志位清除是有效的。

    2. CBC模式是根据每次的采样结果进行判断输出告警状态;

    3. OS模式下,如果在使能高低阈值检测,在前一个超出低阈值之后没有清除标志位,然后继续在后面超出高阈值状态,此时如果想要清除输出,需要软件同时清除高阈值和低阈值状态才行。

    4. CBC模式下,同时使能高低阈值检测,若前一个数超出低阈值之后低阈值标志位置位,下一个数超出高阈值,此时硬件自动清除低阈值标志位,高阈值标志位置位;此时如果想要在下一个数之前软件清除输出状态,只用软件清除高阈值状态。

滤波通道

每个ADC共有8个滤波通道,每个虚拟通道可以选择是否进行滤波处理,并在8组滤波通道中选择一个滤波通路进行滤波处理; 每个滤波通道通过 ADC_FilterType 结构体选择滤波类型。

FIR滤波

阶数固定为32阶。

其计算公式如下:

\[y[k] = \sum_{n=0}^{N-1} a[n] \cdot x[k-n]\]

公式中:

x[k] 输入时间序列

a[n] 滤波器参数。N为滤波器阶数。

y[k] 输出时间序列

该FIR滤波器的结构如下图所示:

滤波通道的FIR滤波器结构
  • 若要使用FIR进行滤波,滤波器只有8个滤波通道,每个滤波通道能在16组输入VC通道中选择一组作为输入;

  • FIR滤波使用配置:

  1. 使能对应的VC通道的滤波功能;使用 ADC_enableVCFilter() 函数使能对应虚拟通道的滤波功能。

  2. 使能需要使用的滤波通道;使用 ADC_enableFilterChannel() 函数使能需要使用的滤波。

  3. 将使能滤波的VC通道与要使用的滤波通道进行对应;使用 ADC_remapFilterChannel() 函数将前面使能的两个通道对应上。

  4. 选择滤波类型为FIR类型;使用 ADC_selectFilterType() 函数选择对应滤波通道的滤波类型。

  5. 配置滤波系数,滤波系数配置范围为: 0 ≤ α ≤ 1,使用 ADC_setFilterFIRCoeff() 函数配置对应滤波通道的滤波系数。

下面给出一个针对虚拟通道6选择滤波通道3进行FIR滤波的配置示例:

/* 滤波配置 */
ADC_enableVCFilter(ADC0, ADC_VIRTUAL_CHANNEL6);
ADC_enableFilterChannel(ADC0, ADC_FILTER_CHANNEL3);
ADC_remapFilterChannel(ADC0, ADC_VIRTUAL_CHANNEL6, ADC_FILTER_CHANNEL3);
ADC_selectFilterType(ADC0, ADC_FILTER_CHANNEL3, ADC_FILTER_TYPE_FIR);
ADC_setFilterFIRCoeff(ADC0, ADC_FILTER_CHANNEL3, 2048);

IIR滤波

ADC 中的 IIR 滤波器采用一阶低通滤波。其计算公式如下:

\[Y(n) = \alpha X(n) + (1 - \alpha)Y(n - 1)\]
公式中:

α 为滤波系数,取值范围为: 0 ≤ α ≤ 1

X(n) 为本次采样值

Y(n−1) 为上次滤波输出值

Y(n) 为本次滤波输出值

该IIR滤波器的结构如下图所示:

滤波通道的IIR滤波器结构
  • 若要使用IIR进行滤波,滤波器只有8个滤波通道,每个滤波通道能在16组输入VC通道中选择一组作为输入;

  • IIR滤波使用配置:

    1. 使能对应的VC通道的滤波功能;使用 ADC_enableVCFilter() 函数使能对应虚拟通道的滤波功能。

    2. 使能需要使用的滤波通道;使用 ADC_enableFilterChannel() 函数使能需要使用的滤波。

    3. 将使能滤波的VC通道与要使用的滤波通道进行对应;使用 ADC_remapFilterChannel() 函数将前面使能的两个通道对应上。

    4. 选择滤波类型为IIR类型;使用 ADC_selectFilterType() 函数选择对应滤波通道的滤波类型。

    5. 配置滤波系数,滤波系数配置范围为: 0 ≤ α ≤ 1,输入配置寄存器为s(13,12)格式的定点数,例如要配置滤波系数为0.8,输入寄存器配置为:0.8*2^12=2048,即0x800。使用 ADC_setFilterIIRCoeff() 函数配置对应滤波通道的滤波系数。

下面给出一个针对虚拟通道6选择滤波通道3进行IIR滤波的配置示例:

/* 滤波配置 */
ADC_enableVCFilter(ADC0, ADC_VIRTUAL_CHANNEL6);
ADC_enableFilterChannel(ADC0, ADC_FILTER_CHANNEL3);
ADC_remapFilterChannel(ADC0, ADC_VIRTUAL_CHANNEL6, ADC_FILTER_CHANNEL3);
ADC_selectFilterType(ADC0, ADC_FILTER_CHANNEL3, ADC_FILTER_TYPE_IIR);
ADC_setFilterIIRCoeff(ADC0, ADC_FILTER_CHANNEL3, 2048);

滑动平均滤波

“滑动平均”功能是通过FIR滤波器实现,在该芯片中,被归于FIR滤波类型。用户可以通过参数的配置实现。

“滑动平均”实际就是按照用户事先设定的信号个数,将多个信号进行平均处理,得到一个平均值。

以每4个信号做一次平均为例,如下图所示:

滑动平均滤波

非滑动平均滤波

非滑动平均滤波相当于一个过采样功能,根据用户配置的滤波次数n,将 2^n 个转换结果进行累加,然后通过将累加右移 n 位,得到非滑动平均的滤波结果。滤波次数配置范围为4bit,最大滤波次数为2^15。

非滑动平均滤波
  • 每隔2^n个数据更新一次滤波结果数据,此时输出采样率相当于降低了2^n倍。

  • 非滑动平均滤波使用配置与IIR滤波使用配置基本一致,只用将滤波器类型换成非滑动平均滤波类型即可。

下面给出一个针对虚拟通道6选择滤波通道3进行非滑动平均滤波的配置示例:

/* 滤波配置 */
ADC_enableVCFilter(ADC0, ADC_VIRTUAL_CHANNEL6);
ADC_enableFilterChannel(ADC0, ADC_FILTER_CHANNEL3);
ADC_remapFilterChannel(ADC0, ADC_VIRTUAL_CHANNEL6, ADC_FILTER_CHANNEL3);
ADC_selectFilterType(ADC0, ADC_FILTER_CHANNEL3, ADC_FILTER_TYPE_NON_SLIDING_AVERAGE);
ADC_setFilterNonAverCoeff(ADC0, ADC_FILTER_CHANNEL3, 3);  //滤波次数配置为3次,即2^3=8次采样结果平均

ADC同步模式

虽然每个模数转换器不具备双采样保持电路,但实现同步采样十分简便。该功能通过将两个或更多模数转换器模块的启动转换触发器设置为使用同一触发源来实现。这里的采样设置与ST的差异较大但是与TI的ADC同步使用应该是一致的。

ADC基础同步采样

ADC共有 3 个独立的ADC Core,可以同时进行 3 个通道的转换,此时需要保证参与同步模式的ADC Core配置相同的采样触发源;

  • 下图中 3 个ADC采用相同的配置,配置为连续触发模式,配置VC0为通道0,VC1为通道1;VC0的采样时间配置为10clk, VC1的采样时间配置为15clk;

基础同步采样

虽然相同编号的VC必须具有相同的采样时间,但不同编号的VC可以采用不同的采样时间。同步操作并不需要统一的全局采样保持时间,只需保证同时采样的通道具有相同的采样保持时长即可。 这里需要注意的是对应VC的优先级配置需要一致,避免因优先级不同导致同时采了不同的VC通道。

ADC多个触发源实现同步采样

除了常规的同步采样外,同步采样也可以使用不同的触发源也可以实现同步采样,只要确保每组ADC的对应VC通道(采样时间、采样触发源、采样优先级)保持相同即可;

  • 下图中使用ADC0/ADC1的VC0/VC1/VC2三个通道作为示例,VC0/VC1配置相同的触发源,VC2选择另一个触发源(但是在两个ADC的不同VC2通道选择的是同一个触发源);下图中关于两种触发事件在不同的使用场景下的处理方式不同,但是ADC0、ADC1的采样仍是同步的。

多个触发源同步采样

备注

软件触发源不能实现同步操作,软件触发需要代码进行操作。

ADC不同VC通道数下的同步采样

ADC同步采样可以在每个ADC中配置不同的VC通道数,不同VC对应通道不用于同步采样处理,这时候需要注意每次触发之后需要保证每个ADC的所有VC通道采样并转换完成,避免触发某个ADC未转换完成从而产生溢出。

  • 下图中ADC0配置了三个采样通道(VC0/VC1/VC2),ADC1配置了两个采样通道(VC0/VC1),ADC0/ADC1的VC0/VC1通道配置相同的触发源和采样时间,ADC0的VC2单独配置;触发事件间隔大于ADC0的所有通道转换时间。

不同ADC之间不同VC通道数同步采样
  • 下图中ADC0配置了三个采样通道(VC0/VC1/VC2),ADC1配置了两个采样通道(VC0/VC1),ADC0/ADC1的VC0/VC1通道配置相同的触发源和采样时间,ADC0的VC2单独配置;触发事件间隔小于ADC0的所有通道转换时间,大于ADC1的所有通道转换时间。

不同ADC之间不同VC通道数采样触发溢出

多个ADC之间实现非重叠采样

ADC的交替采样属于非重叠采样,这里关于ST的Dual ADC模式中的交替触发和交错触发模式,这两种模式的实现需要通过用户配置不同时间间隔的触发源实现。

  • 交错触发:使用一个触发源,触发源触发后先采ADC0,同时延时固定N个clk后采ADC1,如此循环。此时可以使用两个始终存在N个clk延迟的SRPWM源作为ADC0和ADC1触发源实现相同的交错触发模式。

  • 交替触发:第一次触发采ADC0,第二次触发采ADC1,第三次触发采ADC0,第四次触发采ADC1,如此循环。此时可以使用两个始终存在180度相位差的SRPWM源作为ADC0和ADC1触发源实现相同的交替触发模式。

  • 下图交替触发实现使用两个ADC的触发信号分别来自两个始终存在180度相位差的SRPWM源,可采用相同的转换通道0(VC0-对应同一外部模拟通道)来配置ADC0与ADC1,只需设置不同的触发源和不同的采样保持时间参数即可。

ADC交替触发

DMA通路

每个ADC Core都有4个DMA通道,4个DMA通道的请求信号独立选择,每个DMA通道的请求源选择共66个触发源,分别为:

  • EOC脉冲信号,基于VC通道,16个触发源

  • 模拟看门狗告警信号,基于VC通道,16个触发源(这里将采样结果大于高阈值告警与采样结果低于低阈值告警信号进行 操作)

  • 采样结果写入缓存通道

    • 缓存通道BC1 - 结果数据写入预处理结果寄存器,基于VC通道,共16个DMA请求源

    • 缓存通道BC2 - 结果数据写入滤波结果寄存器,基于VC通道,共16个DMA请求源

  • 缓存通道BC1对应的FIFO模式中,FIFO的非空信号作为触发源,这个请求信号模式可以用于在一个DMA通道中读取多个预处理结果寄存器(PRE_RESULT)的数据,按通道处理顺序读取;

  • 缓存通道BC2对应的FIFO模式中,FIFO的非空信号作为触发源,这个请求信号模式可以用于在一个DMA通道中读取多个滤波结果寄存器(FIL_RESULT)的数据,按通道处理顺序读取;

  • 使用 ADC_enableDMARequest() 函数进行配置;

    • 参数 ADCx 指定使用哪个ADC模块。

    • 参数 adc2dmaChannel 指定选择哪个DMA通道,在 ADC_DMAChannel 结构体选择,共4个通道。

    • 参数 src 指定DMA请求源,在 ADC_DMARequest 结构体选择,共66个触发源。

  1. 单DMA通路读单通道数据 下通常是每个DMA通道传输一个VC通道的数据读取;比如想要读取虚拟通道11的滤波结果,可以将DMA的源地址配置为 FIL_RESULT[11] 寄存器,ADC的DMA请求选择 ADC_DMA_REQUEST_FILTER_RESULT_VC11 源。

  2. 单DMA通路读多通道数据 下通常是每个DMA通道传输多个VC通道的数据读取:这里需要使用FIFO模式,具体配置见 DMA使用FIFO传输配置示例代码

FIFO 模式

每个ADC共有两个缓存FIFO,分别对应存储预处理结果FIFO和滤波结果FIFO,两个FIFO独立使用; 每个FIFO深度为16、FIFO宽度为16bit;

软件可通过状态寄存器PRE_FIFO_STS/FIL_FIFO_STS 查询 FIFO 状态,包括空,满,空溢出,满溢出,FIFO 中数据个数。

FIFO 应用特性:

  1. 要使用FIFO读取数据需要确保两级参数使能,VC通道使能与上对应 VC 映射到 FIFO 模式使能;在初始化中进行配置(filterFifoModeEn / preFifoModeEn)。

  2. 配置完成后需要对通道使能进行加载触发生效。

  3. 如果使用FIFO存储数据对结果读取,需要保证采样顺序是按照VC通道由小到大进行的,因为FIFO读取是按照每次读取 bitmap(该值来自VC使能和VC FIFO映射使能相与的结果) 中最低位为1 的 bit 对应的 VC 通道采样结果。这样在读取搬出的结果时能准确判断哪个数据对应哪个虚拟通道。

根据使用特性对比正确配置和错误使用状态下FIFO数据的写入示例, 硬件对 bitmap 进行管理,每次读取后,对 bitmap 上的对应位进行清 0 操作;在最后一次读取后,对 bitmap 进行硬件初始化操作

  • 下图给出了正确配置和错误配置状态下, FIFO写入的数据对比。

ADC FIFO 读取
  • 将VC0/VC5的预处理结果写入FIFO中,并通过DMA通道0读取到变量数组中。

ADC_InitTypeDef stInit;

ADC_initStruct(&stInit);
stInit.virtualChannelMask =  ADC_VIRTUAL_CHANNEL0 | ADC_VIRTUAL_CHANNEL5; // 1.这里会同时使能对应虚拟通道 VC_EN
stInit.triggerMode = ADC_TRIGGER_MODE_CONTINUOUS;
stInit.trigger = ADC_TRIGGER_SRPWM_TRIGGER_NUM0;
stInit.preResultAlign = ADC_RESULT_ALIGN_RIGHT;
stInit.preFifoDepth = 16;
stInit.preFifoModeEn = ENABLE;    // 2. 确保对应虚拟通道的FIFO使能
ADC_init(ADC0, &stInit);

ADC_remapSingleAC(ADC0, ADC_VIRTUAL_CHANNEL0, ADC_ANALOG_CHANNEL0);
ADC_remapSingleAC(ADC0, ADC_VIRTUAL_CHANNEL5, ADC_ANALOG_CHANNEL1);
ADC_setPriorityMode(ADC0, ADC_PRIORITY_MODE_LOW_QUEUE);

/* 3. 配置DMA0通道请求事件为 PRE_FIFO非空触发 */
ADC_enableDMARequest(ADC0, ADC_DMA_CHANNEL0, ADC_DMA_REQUEST_PRE_RESULT_FIFO);

/* 4. 使能对应虚拟通道并同时会使能 FIFO_BITMAP_RELOAD,确保FIFO读数据地址重新加载有效 */
ADC_enable(ADC0, ADC_VIRTUAL_CHANNEL0 | ADC_VIRTUAL_CHANNEL5);

ADC中断事件

每个ADC Core输出都只有一个中断接口,中断的来源来自三个方面,总共有80个中断源,分别来自:

  • EOC脉冲信号,基于虚拟通道共16个中断源

    • EOC的中断产生时间可以选择 在采样完成时刻产生EOC中断 或者选择 转换结束时刻产生EOC中断

    • 从EOC产生的时刻到产生EOC中断上升沿之间可以进行延时配置,控制中断产生到响应的时间。

  • 不同EOC信号点和中断时间点选择:

EOC信号到中断产生时间点
  • 模拟看门狗超阈值告警信号

    • 采样结果超过上门限阈值,基于虚拟通道,共16个中断源

    • 采样结果超过下门限阈值,基于虚拟通道,共16个中断源

  • 采样结果缓存写入中断

    • 缓存通道BC1 - 预处理结果写入,基于虚拟通道,共16个中断源

    • 采样结果BC2 - 滤波结果写入,基于虚拟通道,共16个中断源

当中断产生时,上一中断还未响应 (中断标志位未被清除),此时产生中断溢出告警指示。

关于中断使能配置,使用 ADC_enableInterrupt() 函数进行,由于每个中断都是和VC通道相关联的,所以使能中断时需要指定虚拟通道源。

  • 参数 ADCx 指定使用哪个ADC模块。

  • 参数 virtualChannelMask 指定选择虚拟通道源。

  • 参数 interruptTrigger 指定中断触发类型,包含EOC、看门狗高阈值、看门狗低阈值、预处理结果写入、滤波结果写入五种类型,使用 ADC_IntTrigger 枚举类型选择。

typedef enum
{
   ADC_INT_TRIGGER_EOC                = 0,
   ADC_INT_TRIGGER_WDG_HIGH_THRESHOLD = 1,
   ADC_INT_TRIGGER_WDG_LOW_THRESHOLD  = 2,
   ADC_INT_TRIGGER_PRE_RESULT         = 3,
   ADC_INT_TRIGGER_FILTER_RESULT      = 4
} ADC_IntTrigger;

软件配置流程

基础采样配置流程如下:

  1. ADC初始化 调用 ADC_init() 传入ADCx和参数结构体指针

  2. 将模拟通道映射到虚拟通道 调用 ADC_remapSingleAC() 传入ADCx和虚拟通道、模拟通道

  3. 配置虚拟通道事件冲突后的处理方式 调用 ADC_setPriorityMode() 传入ADCx和优先级模式

  4. 使能虚拟通道 调用 ADC_enable() 传入ADCx和虚拟通道

  5. 配置触发源 配置的触发源需和初始化配置时选择的触发源保持一致

  6. 等待采样完成 调用 ADC_getFilterResultStatus() 获取结果状态

  7. 获取采样数据 调用 ADC_getFilterResult() 传入ADCx和虚拟通道

应用示例

API Reference

Header File

Functions

void ADC_initStruct(ADC_InitTypeDef *initStruct)

Struct Init.

参数:

initStruct – initialized struct pointers

void ADC_init(ADC_Type *ADCx, ADC_InitTypeDef *initStruct)

initializes the specified virtual channel for the specified module mainly initialize sampling mode trigger mode trigger source

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • initStruct – specified struct pointer

    • virtualChannel:the specified virtual sampling channel

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

    • sampleTime:extended sampling/holding window for settings range:0~256 clk

    • filterFifoDepth:sampling value filtering After reporting the result, the FIFO depth is configured when reading in FIFO mode

    • preFifoDepth:the fifo depth is configured when the result is preprocessed and read in fifo mode

void ADC_enable(ADC_Type *ADCx, uint16_t virtualChannelMask)

enables the virtual channel for the specified module

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

void ADC_disable(ADC_Type *ADCx, uint16_t virtualChannelMask)

disable the virtual channel for the specified module

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

void ADC_setVCPriorityGroup(ADC_Type *ADCx, uint16_t virtualChannel, ADC_VCPriorityGroup priority)

set the priority group for the specified virtual channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • priority – the specified priority group.

void ADC_setPriorityMode(ADC_Type *ADCx, ADC_PriorityMode priorityMode)

specifies how the adc block handles event conflicts, refers to a scenario where multiple virtual channels trigger sampling at the same time

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • priorityMode – priority mode

void ADC_remapSingleAC(ADC_Type *ADCx, uint16_t virtualChannel, uint16_t analogChannel)

remaps the virtual channel to the specified physical channel and the physical channel is single ended sampling

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • analogChannel

    • ADC_ANALOG_CHANNEL0

    • ADC_ANALOG_CHANNEL1

    • ADC_ANALOG_CHANNEL2

    • ADC_ANALOG_CHANNEL3

    • ADC_ANALOG_CHANNEL4

    • ADC_ANALOG_CHANNEL5

    • ADC_ANALOG_CHANNEL6

    • ADC_ANALOG_CHANNEL7

    • ADC_ANALOG_CHANNEL8

    • ADC_ANALOG_CHANNEL9

    • ADC_ANALOG_CHANNEL10

    • ADC_ANALOG_CHANNEL11

    • ADC_ANALOG_CHANNEL12

    • ADC_ANALOG_CHANNEL13

    • ADC_ANALOG_CHANNEL14

    • ADC_ANALOG_CHANNEL15

bool ADC_isBusy(ADC_Type *ADCx)

gets the sampling status of the specified adc block.emphasize this api refers to the sampling state of the entire adc

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

返回:

bool whether the specified adc is busy

  • bit4:adc sample done status ADC_SAMPLE_STATUS_DONE

  • bit5:ADC sample the busy state ADC_SAMPLE_STATUS_BUSY

  • bit other:none

uint32_t ADC_getVCSampleStatus(ADC_Type *ADCx)

gets the virtual channel sampling status of the specified adc block

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

返回:

uint32_t every 2bit represent a VC status

  • bit[1:0]:VC0 00:IDLE ADC_VC_SAMPLE_STATUS_IDLE 01:pending ADC_VC_SAMPLE_STATUS_PENDING 10:busy ADC_VC_SAMPLE_STATUS_BUSY 11:reserve

  • bit[3:2]:VC1 00:IDLE ADC_VC_SAMPLE_STATUS_IDLE << (POSITION_VAL(virtualChannel) * 2) 01:pending ADC_VC_SAMPLE_STATUS_PENDING << (POSITION_VAL(virtualChannel) * 2) 10:busy ADC_VC_SAMPLE_STATUS_BUSY << (POSITION_VAL(virtualChannel) * 2) 11:reserve

  • bit[x:x]:VC…..

  • bit[31:30]:VC15 00:IDLE 01:pending 10:busy 11:reserve

void ADC_forceVC(ADC_Type *ADCx, uint16_t virtualChannelMask)

software forces to trigger a virtual channel conversion of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

int16_t ADC_getPreResult(ADC_Type *ADCx, uint16_t virtualChannel)

gets the result value after the pre-process

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

返回:

int16_t the result value obtained from the virtual channel

int16_t ADC_getFilterResult(ADC_Type *ADCx, uint16_t virtualChannel)

gets the result value after the filter

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

返回:

int16_t the result value obtained from the virtual channel

bool ADC_getPreResultStatus(ADC_Type *ADCx, uint16_t virtualChannel)

gets the result status after the pre-process

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

返回:

bool whether the specified virtual channel has been sampled

bool ADC_getFilterResultStatus(ADC_Type *ADCx, uint16_t virtualChannel)

gets the result status after the filter

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

返回:

bool whether the specified virtual channel has been sampled

uint16_t ADC_S16D2toUint(int16_t data)

converts the obtained virtual channel result value to a true unsigned sampled value

参数:

data – pass in the result value obtained from the virtual channel

返回:

uint16_t returns a true unsigned sampled value

float ADC_S16D2toFloat(int16_t data)

converts the obtained virtual channel result value to a true fractional sampled value

参数:

data – pass in the result value obtained from the virtual channel

返回:

float returns a true fractional sampled value

void ADC_startCalibration(ADC_Type *ADCx)

start adc calibration

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

void ADC_selectEOCOutEvent(ADC_Type *ADCx, ADC_EOCEventNum num, ADC_EOCEventSrc event)

select the event source for the EOC event output

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • num – the event number

  • event – the event source

void ADC_setEOCPulseMode(ADC_Type *ADCx, ADC_EOCPulseMode pulseMode)

set the pulse mode of the eoc

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • pulseMode – the pulse mode

void ADC_enableEOCDelay(ADC_Type *ADCx)

interrupts are interrupted by enabling EOC time delays

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

void ADC_disableEOCDelay(ADC_Type *ADCx)

the incapacitating EOC is interrupted by a delay in time

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

void ADC_setEOCDelay(ADC_Type *ADCx, uint16_t delay)

set the delay period from EOC to interrupt

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • delay – the delay period from EOC to interrupt

bool ADC_isEOCAlarm(ADC_Type *ADCx)

obtain whether an EOC alarm is generated

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

返回:

bool

  • true:an EOC alarm is generated

  • false:no EOC alarm is generated

uint8_t ADC_getEOCAlarmVCChannel(ADC_Type *ADCx)

obtain the number of the virtual channel that generates an EOC alarm

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

返回:

uint8_t the return value is the specific virtual channel number

uint16_t ADC_getTrig2SampleDelay(ADC_Type *ADCx, uint16_t virtualChannel)

gets the absolute delay time from triggering to the start of sampling

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

返回:

uint16_t range:0 ~ 4095

void ADC_enableInterrupt(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_IntTrigger interruptTrigger)

enable interrupts that specify the adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • interruptTrigger – the interrupt trigger source.

void ADC_disableInterrupt(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_IntTrigger interruptTrigger)

disable interrupts that specify the adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • interruptTrigger – the interrupt trigger source.

void ADC_maskInterrupt(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_IntTrigger interruptTrigger)

enable interrupt masking that specifies the adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • interruptTrigger – the interrupt trigger source.

void ADC_unmaskInterrupt(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_IntTrigger interruptTrigger)

disable interrupt masking that specifies the adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • interruptTrigger – the interrupt trigger source.

void ADC_forceInterrupt(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_IntTrigger interruptTrigger)

forces an interrupt to trigger the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • interruptTrigger – the interrupt trigger source.

bool ADC_getInterruptStatus(ADC_Type *ADCx, uint16_t virtualChannel, ADC_IntTrigger interruptTrigger)

gets the interrupt status of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • interruptTrigger – the interrupt trigger source.

返回:

bool

  • true: interrupt is triggered.

  • false: interrupt is not triggered.

bool ADC_getInterruptStatusRaw(ADC_Type *ADCx, uint16_t virtualChannel, ADC_IntTrigger interruptTrigger)

gets the interrupt raw status of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • interruptTrigger – the interrupt trigger source.

返回:

bool

bool ADC_getInterruptOverflowStatus(ADC_Type *ADCx, uint16_t virtualChannel, ADC_IntTrigger interruptTrigger)

gets the interrupt overflow alarm status for the specified adc module

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • interruptTrigger – the interrupt trigger source.

返回:

bool

void ADC_clearInterruptStatus(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_IntTrigger interruptTrigger)

clears the interrupt state of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • interruptTrigger – the interrupt trigger source.

void ADC_clearInterruptOverflowStatus(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_IntTrigger interruptTrigger)

clears the interrupt state of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • interruptTrigger – interrupt trigger source

void ADC_configAnalogWdgMode(ADC_Type *ADCx, uint16_t virtualChannel, ADC_AnalogWdgOutMode outMode)

Configures ADC analog watchdog output mode.

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • outMode – output mode

    • ADC_ANALOG_WDG_OUT_MODE_OS

    • ADC_ANALOG_WDG_OUT_MODE_CBC

void ADC_enableAnalogWdg(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_AnalogWdgThreshold thresholdDir)

Configures ADC analog watchdog threshold.

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • thresholdDir – threshold direction

void ADC_disableAnalogWdg(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_AnalogWdgThreshold thresholdDir)

disables ADC analog watchdog

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • thresholdDi – threshold direction

void ADC_selectAnalogWdgOutEvt2ETIMER(ADC_Type *ADCx, ADC_AnalogWdgEvtNum eventNumber, ADC_AnalogWdgEvt event)

selects ADC analog watchdog output event to ETIMER

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • eventNumber – the specified event number.

  • event – the specified event.

void ADC_selectAnalogWdgOutEvt2XBAR(ADC_Type *ADCx, ADC_AnalogWdgEvtNum eventNumber, ADC_AnalogWdgEvt event)

selects ADC analog watchdog output event to XBAR

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • eventNumber – the specified event number.

  • event – the specified event.

void ADC_setAnalogWdgThreshold(ADC_Type *ADCx, uint16_t virtualChannel, uint16_t highThreshold, uint16_t lowThreshold)

configure the watchdog upper and lower thresholds that specify the adc module

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • highThreshold – the specified upper threshold. range:0 ~ 4095

  • lowThreshold – the specified lower threshold range:0 ~ 4095

void ADC_clearAnalogWdgThresholdStatus(ADC_Type *ADCx, uint16_t virtualChannelMask, ADC_AnalogWdgThreshold thresholdDir)

clears ADC analog watchdog threshold status

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannelMask – the specified virtual sampling channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

    • ADC_VIRTUAL_CHANNELALL

  • thresholdDir – threshold direction

uint16_t ADC_getAnalogWdgThresholdStatus(ADC_Type *ADCx, ADC_AnalogWdgThreshold thresholdDir)

get the status of analog watchdog threshold

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • thresholdDir – threshold direction

返回:

uint16_t of the 16 bits of data returned each bit corresponds to a virtual channel

void ADC_enableBlanking(ADC_Type *ADCx)

enables the blanking function that specifies the adc block

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

void ADC_disableBlanking(ADC_Type *ADCx)

disable the blanking function that specifies the adc block

参数:

ADCx – specified peripherals

  • ADC0

  • ADC1

  • ADC2

void ADC_selectBlankingTrigger(ADC_Type *ADCx, ADC_BlankingTrigger trigger)

select the blanking trigger source that specifies the adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • trigger – the specified trigger source

void ADC_setBlankingWidth(ADC_Type *ADCx, uint16_t width)

sets the blanking window length of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • len – the specified blanking window length.range:0x0 ~ 0xffff

void ADC_setBlankingTrigDelay(ADC_Type *ADCx, uint16_t delay)

sets the blanking trigger delay time for the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • delay – the specified blanking trigger delay time.range:0x0 ~ 0xffff

void ADC_enablePreProcessOffset(ADC_Type *ADCx, uint16_t preProcessChannelMask)

enables the offset a preprocessing stage for the specified adc block preprocess channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • preProcessChannelMask – the specified preprocess channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_PREPROCESS_CHANNEL0

    • ADC_PREPROCESS_CHANNEL1

    • ADC_PREPROCESS_CHANNEL2

    • ADC_PREPROCESS_CHANNEL3

    • ADC_PREPROCESS_CHANNEL4

    • ADC_PREPROCESS_CHANNEL5

    • ADC_PREPROCESS_CHANNEL6

    • ADC_PREPROCESS_CHANNEL7

    • ADC_PREPROCESS_CHANNEL8

    • ADC_PREPROCESS_CHANNEL9

    • ADC_PREPROCESS_CHANNEL10

    • ADC_PREPROCESS_CHANNEL11

    • ADC_PREPROCESS_CHANNEL12

    • ADC_PREPROCESS_CHANNEL13

    • ADC_PREPROCESS_CHANNEL14

    • ADC_PREPROCESS_CHANNEL15

    • ADC_PREPROCESS_CHANNELALL

void ADC_disablePreProcessOffset(ADC_Type *ADCx, uint16_t preProcessChannelMask)

disable the offset a preprocessing stage for the specified adc block preprocess channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • preProcessChannelMask – the specified preprocess channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_PREPROCESS_CHANNEL0

    • ADC_PREPROCESS_CHANNEL1

    • ADC_PREPROCESS_CHANNEL2

    • ADC_PREPROCESS_CHANNEL3

    • ADC_PREPROCESS_CHANNEL4

    • ADC_PREPROCESS_CHANNEL5

    • ADC_PREPROCESS_CHANNEL6

    • ADC_PREPROCESS_CHANNEL7

    • ADC_PREPROCESS_CHANNEL8

    • ADC_PREPROCESS_CHANNEL9

    • ADC_PREPROCESS_CHANNEL10

    • ADC_PREPROCESS_CHANNEL11

    • ADC_PREPROCESS_CHANNEL12

    • ADC_PREPROCESS_CHANNEL13

    • ADC_PREPROCESS_CHANNEL14

    • ADC_PREPROCESS_CHANNEL15

    • ADC_PREPROCESS_CHANNELALL

void ADC_enablePreProcessGain(ADC_Type *ADCx, uint16_t preProcessChannelMask)

enables the gain a preprocessing stage for the specified adc block preprocess channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • preProcessChannelMask – the specified preprocess channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_PREPROCESS_CHANNEL0

    • ADC_PREPROCESS_CHANNEL1

    • ADC_PREPROCESS_CHANNEL2

    • ADC_PREPROCESS_CHANNEL3

    • ADC_PREPROCESS_CHANNEL4

    • ADC_PREPROCESS_CHANNEL5

    • ADC_PREPROCESS_CHANNEL6

    • ADC_PREPROCESS_CHANNEL7

    • ADC_PREPROCESS_CHANNEL8

    • ADC_PREPROCESS_CHANNEL9

    • ADC_PREPROCESS_CHANNEL10

    • ADC_PREPROCESS_CHANNEL11

    • ADC_PREPROCESS_CHANNEL12

    • ADC_PREPROCESS_CHANNEL13

    • ADC_PREPROCESS_CHANNEL14

    • ADC_PREPROCESS_CHANNEL15

    • ADC_PREPROCESS_CHANNELALL

void ADC_disablePreProcessGain(ADC_Type *ADCx, uint16_t preProcessChannelMask)

disable the gain a preprocessing stage for the specified adc block preprocess channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • preProcessChannelMask – the specified preprocess channel.it can be a combination of multiple channels, or a singlechannel.

    • ADC_PREPROCESS_CHANNEL0

    • ADC_PREPROCESS_CHANNEL1

    • ADC_PREPROCESS_CHANNEL2

    • ADC_PREPROCESS_CHANNEL3

    • ADC_PREPROCESS_CHANNEL4

    • ADC_PREPROCESS_CHANNEL5

    • ADC_PREPROCESS_CHANNEL6

    • ADC_PREPROCESS_CHANNEL7

    • ADC_PREPROCESS_CHANNEL8

    • ADC_PREPROCESS_CHANNEL9

    • ADC_PREPROCESS_CHANNEL10

    • ADC_PREPROCESS_CHANNEL11

    • ADC_PREPROCESS_CHANNEL12

    • ADC_PREPROCESS_CHANNEL13

    • ADC_PREPROCESS_CHANNEL14

    • ADC_PREPROCESS_CHANNEL15

    • ADC_PREPROCESS_CHANNELALL

void ADC_setPreProcessOffset(ADC_Type *ADCx, uint16_t preProcessChannel, float offset)

sets the offset value that specifies the adc block preprocess channel preprocessing.

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • preProcessChannel – the specified preprocess channel.

    • ADC_PREPROCESS_CHANNEL0

    • ADC_PREPROCESS_CHANNEL1

    • ADC_PREPROCESS_CHANNEL2

    • ADC_PREPROCESS_CHANNEL3

    • ADC_PREPROCESS_CHANNEL4

    • ADC_PREPROCESS_CHANNEL5

    • ADC_PREPROCESS_CHANNEL6

    • ADC_PREPROCESS_CHANNEL7

    • ADC_PREPROCESS_CHANNEL8

    • ADC_PREPROCESS_CHANNEL9

    • ADC_PREPROCESS_CHANNEL10

    • ADC_PREPROCESS_CHANNEL11

    • ADC_PREPROCESS_CHANNEL12

    • ADC_PREPROCESS_CHANNEL13

    • ADC_PREPROCESS_CHANNEL14

    • ADC_PREPROCESS_CHANNEL15

  • offset – data type:the register sets the raw data to a 16 bit signed number and the last two decimal places raw register range:0xA000~0x6003 after conversion the user can set the range:-6144.0f ~ 6144.75f

void ADC_setPreProcessGain(ADC_Type *ADCx, uint16_t preProcessChannel, float gain)

sets the gain value for the preprocess channel of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • preProcessChannel – the specified preprocess channel.

    • ADC_PREPROCESS_CHANNEL0

    • ADC_PREPROCESS_CHANNEL1

    • ADC_PREPROCESS_CHANNEL2

    • ADC_PREPROCESS_CHANNEL3

    • ADC_PREPROCESS_CHANNEL4

    • ADC_PREPROCESS_CHANNEL5

    • ADC_PREPROCESS_CHANNEL6

    • ADC_PREPROCESS_CHANNEL7

    • ADC_PREPROCESS_CHANNEL8

    • ADC_PREPROCESS_CHANNEL9

    • ADC_PREPROCESS_CHANNEL10

    • ADC_PREPROCESS_CHANNEL11

    • ADC_PREPROCESS_CHANNEL12

    • ADC_PREPROCESS_CHANNEL13

    • ADC_PREPROCESS_CHANNEL14

    • ADC_PREPROCESS_CHANNEL15

  • gain – data range: -4.0f ~ 4.0f

void ADC_enableVCFilter(ADC_Type *ADCx, uint16_t virtualChannel)

enables filtering that specifies the adc virtual channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

void ADC_disableVCFilter(ADC_Type *ADCx, uint16_t virtualChannel)

disable filtering that specifies the adc virtual channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

void ADC_enableFilterChannel(ADC_Type *ADCx, uint8_t filterChannelMask)

enable the filtering function of the specified adc block filter channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • filterChannelMask – the specified filter channel can be multiple channels or a single channel

void ADC_disableFilterChannel(ADC_Type *ADCx, uint8_t filterChannelMask)

disable the filtering function of the specified adc block filter channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • filterChannelMask – the specified filter channel can be multiple channels or a single channel

void ADC_remapFilterChannel(ADC_Type *ADCx, uint16_t virtualChannel, uint8_t filterChannel)

the map specifies the adc block virtual channel to the filter channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • virtualChannel – the specified virtual sampling channel.

    • ADC_VIRTUAL_CHANNEL0

    • ADC_VIRTUAL_CHANNEL1

    • ADC_VIRTUAL_CHANNEL2

    • ADC_VIRTUAL_CHANNEL3

    • ADC_VIRTUAL_CHANNEL4

    • ADC_VIRTUAL_CHANNEL5

    • ADC_VIRTUAL_CHANNEL6

    • ADC_VIRTUAL_CHANNEL7

    • ADC_VIRTUAL_CHANNEL8

    • ADC_VIRTUAL_CHANNEL9

    • ADC_VIRTUAL_CHANNEL10

    • ADC_VIRTUAL_CHANNEL11

    • ADC_VIRTUAL_CHANNEL12

    • ADC_VIRTUAL_CHANNEL13

    • ADC_VIRTUAL_CHANNEL14

    • ADC_VIRTUAL_CHANNEL15

  • filterChannel – the specified filter channel.

void ADC_selectFilterType(ADC_Type *ADCx, uint8_t filterChannel, ADC_FilterType filterType)

select the filter channel filtering type for the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • filterChannel – the specified filter channel.

  • filterType – the specified filter channel filtering type.

void ADC_clearFilterStatus(ADC_Type *ADCx, uint8_t filterChannelMask)

clears the status of the filter channel of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • filterChannelMask – the specified filter channel can be multiple channels or a single channel

void ADC_setFilterNonAverCoeff(ADC_Type *ADCx, uint8_t filterChannel, uint8_t power)

sets the coefficient of operation in non sliding average filtering mode for the specified adc block filter channel

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • filterChannel – the specified filter channel.

  • power – pass in a value that is a power = n,that is the actual average number of times is 2^n ,n = power configure the scope:0x0 ~ 0xF.

void ADC_setFilterIIRCoeff(ADC_Type *ADCx, uint8_t filterChannel, float coeff)

sets the iir filtering factor for the filter channel of the specified adc block

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • filterChannel – the specified filter channel.

  • coeff – the specified filter channel filtering factor. range:0.0f <= coeff <= 1.0f

void ADC_enableDMARequest(ADC_Type *ADCx, ADC_DMAChannel adc2dmaChannel, ADC_DMARequest src)

select the request signal for the DMA channel specified in the ADC module

参数:
  • ADCx – specified peripherals

    • ADC0

    • ADC1

    • ADC2

  • adc2dmaChannel – the specified DMA channel.

  • src

Structures

struct ADC_InitTypeDef

Defines the ADC initialization structure.

Public Members

uint16_t virtualChannelMask

the virtual channel number

ADC_WorkMode workMode

sampling mode

ADC_TriggerMode triggerMode

trigger mode

ADC_Trigger trigger

trigger source selection

uint16_t sampleTime

sampling time

ADC_ResultAlign preResultAlign

preprocessing result alignment

ADC_ResultAlign filterResultAlign

filtering result alignment

FunctionalState preFifoModeEn

preprocessing FIFO mode enable

FunctionalState filterFifoModeEn

filtering FIFO mode enable

uint8_t preFifoDepth

preprocessing FIFO depth

uint8_t filterFifoDepth

filtering FIFO depth

Macros

ADC_VIRTUAL_CHANNEL0
ADC_VIRTUAL_CHANNEL1
ADC_VIRTUAL_CHANNEL2
ADC_VIRTUAL_CHANNEL3
ADC_VIRTUAL_CHANNEL4
ADC_VIRTUAL_CHANNEL5
ADC_VIRTUAL_CHANNEL6
ADC_VIRTUAL_CHANNEL7
ADC_VIRTUAL_CHANNEL8
ADC_VIRTUAL_CHANNEL9
ADC_VIRTUAL_CHANNEL10
ADC_VIRTUAL_CHANNEL11
ADC_VIRTUAL_CHANNEL12
ADC_VIRTUAL_CHANNEL13
ADC_VIRTUAL_CHANNEL14
ADC_VIRTUAL_CHANNEL15
ADC_VIRTUAL_CHANNELALL
ADC_ANALOG_CHANNEL0
ADC_ANALOG_CHANNEL1
ADC_ANALOG_CHANNEL2
ADC_ANALOG_CHANNEL3
ADC_ANALOG_CHANNEL4
ADC_ANALOG_CHANNEL5
ADC_ANALOG_CHANNEL6
ADC_ANALOG_CHANNEL7
ADC_ANALOG_CHANNEL8
ADC_ANALOG_CHANNEL9
ADC_ANALOG_CHANNEL10
ADC_ANALOG_CHANNEL11
ADC_ANALOG_CHANNEL12
ADC_ANALOG_CHANNEL13
ADC_ANALOG_CHANNEL14
ADC_ANALOG_CHANNEL15
ADC_ANALOG_CHANNELALL
ADC_PREPROCESS_CHANNEL0
ADC_PREPROCESS_CHANNEL1
ADC_PREPROCESS_CHANNEL2
ADC_PREPROCESS_CHANNEL3
ADC_PREPROCESS_CHANNEL4
ADC_PREPROCESS_CHANNEL5
ADC_PREPROCESS_CHANNEL6
ADC_PREPROCESS_CHANNEL7
ADC_PREPROCESS_CHANNEL8
ADC_PREPROCESS_CHANNEL9
ADC_PREPROCESS_CHANNEL10
ADC_PREPROCESS_CHANNEL11
ADC_PREPROCESS_CHANNEL12
ADC_PREPROCESS_CHANNEL13
ADC_PREPROCESS_CHANNEL14
ADC_PREPROCESS_CHANNEL15
ADC_PREPROCESS_CHANNELALL
ADC_FILTER_CHANNEL0
ADC_FILTER_CHANNEL1
ADC_FILTER_CHANNEL2
ADC_FILTER_CHANNEL3
ADC_FILTER_CHANNEL4
ADC_FILTER_CHANNEL5
ADC_FILTER_CHANNEL6
ADC_FILTER_CHANNEL7
ADC_FILTER_CHANNELALL
ADC_SAMPLE_STATUS_DONE
ADC_SAMPLE_STATUS_BUSY
ADC_VC_SAMPLE_STATUS_IDLE
ADC_VC_SAMPLE_STATUS_PENDING
ADC_VC_SAMPLE_STATUS_BUSY

Enumerations

enum ADC_WorkMode

Values:

enumerator ADC_WORK_MODE_SINGLE

single ended sampling mode

enumerator ADC_WORK_MODE_DIFF

differential sampling mode

enum ADC_TriggerMode

Defines the trigger mode of the ADC.

Values:

enumerator ADC_TRIGGER_MODE_CONTINUOUS

continuous trigger mode

enumerator ADC_TRIGGER_MODE_ONE_SHOT

one-shot trigger mode

enum ADC_Trigger

Defines the trigger of the ADC.

Values:

enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM0
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM1
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM2
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM3
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM4
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM5
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM6
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM7
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM8
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM9
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM10
enumerator ADC_TRIGGER_SRPWM_TRIGGER_NUM11
enumerator ADC_TRIGGER_ETIMER0
enumerator ADC_TRIGGER_ETIMER1
enumerator ADC_TRIGGER_ETIMER2
enumerator ADC_TRIGGER_ETIMER3
enumerator ADC_TRIGGER_ETIMER4
enumerator ADC_TRIGGER_ETIMER5
enumerator ADC_TRIGGER_ETIMER6
enumerator ADC_TRIGGER_ETIMER7
enumerator ADC_TRIGGER_ETIMER8
enumerator ADC_TRIGGER_ETIMER9
enumerator ADC_TRIGGER_ETIMER10
enumerator ADC_TRIGGER_ETIMER11
enumerator ADC_TRIGGER_ETIMER12
enumerator ADC_TRIGGER_ETIMER13
enumerator ADC_TRIGGER_ACMP0_H
enumerator ADC_TRIGGER_ACMP0_L
enumerator ADC_TRIGGER_ACMP1_H
enumerator ADC_TRIGGER_ACMP1_L
enumerator ADC_TRIGGER_ACMP2_H
enumerator ADC_TRIGGER_ACMP2_L
enumerator ADC_TRIGGER_ACMP3_H
enumerator ADC_TRIGGER_ACMP3_L
enumerator ADC_TRIGGER_STM0_OC0
enumerator ADC_TRIGGER_STM0_OC1
enumerator ADC_TRIGGER_STM0_OC2
enumerator ADC_TRIGGER_STM0_OC3
enumerator ADC_TRIGGER_STM1_OC0
enumerator ADC_TRIGGER_STM1_OC1
enumerator ADC_TRIGGER_STM1_OC2
enumerator ADC_TRIGGER_STM1_OC3
enumerator ADC_TRIGGER_XBAR_XCSA0
enumerator ADC_TRIGGER_XBAR_XCSA1
enumerator ADC_TRIGGER_XBAR_XCSA2
enumerator ADC_TRIGGER_XBAR_XCSA3
enumerator ADC_TRIGGER_ADC0_EOC0
enumerator ADC_TRIGGER_ADC0_EOC1
enumerator ADC_TRIGGER_ADC1_EOC0
enumerator ADC_TRIGGER_ADC1_EOC1
enumerator ADC_TRIGGER_ADC2_EOC0
enumerator ADC_TRIGGER_ADC2_EOC1
enumerator ADC_TRIGGER_INXB4
enum ADC_ResultAlign

Defines the result alignment of the ADC.

Values:

enumerator ADC_RESULT_ALIGN_RIGHT

align right:Data format U(12,0) is result of filter ;Data format S(16,0) is result of pre-process

enumerator ADC_RESULT_ALIGN_LEFT

left aligned:Data format S(16,2) is result of filter ;Data format S(16,2) is result of pre-process

enum ADC_VCPriorityGroup

Defines the priority group of the ADC.

Values:

enumerator ADC_VC_PRIORITY_GRP_0

first priority group

enumerator ADC_VC_PRIORITY_GRP_1

second priority group

enumerator ADC_VC_PRIORITY_GRP_2

third priority group

enumerator ADC_VC_PRIORITY_GRP_3

fourth priority group

enum ADC_PriorityMode

Defines the priority mode of the ADC.

Values:

enumerator ADC_PRIORITY_MODE_LOW_DISCARD

low priority tasks are discarded

enumerator ADC_PRIORITY_MODE_LOW_QUEUE

low priority tasks are queued for processing

enum ADC_IntTrigger

Defines the interrupt trigger of the ADC.

Values:

enumerator ADC_INT_TRIGGER_EOC
enumerator ADC_INT_TRIGGER_WDG_HIGH_THRESHOLD
enumerator ADC_INT_TRIGGER_WDG_LOW_THRESHOLD
enumerator ADC_INT_TRIGGER_PRE_RESULT
enumerator ADC_INT_TRIGGER_FILTER_RESULT
enum ADC_EOCEventNum

Defines the EOC event number of the ADC.

Values:

enumerator ADC_EOC_EVT_NUM_0
enumerator ADC_EOC_EVT_NUM_1
enum ADC_EOCEventSrc

Defines the EOC event source of the ADC.

Values:

enumerator ADC_EOC_EVT_SRC_VC0
enumerator ADC_EOC_EVT_SRC_VC1
enumerator ADC_EOC_EVT_SRC_VC2
enumerator ADC_EOC_EVT_SRC_VC3
enumerator ADC_EOC_EVT_SRC_VC4
enumerator ADC_EOC_EVT_SRC_VC5
enumerator ADC_EOC_EVT_SRC_VC6
enumerator ADC_EOC_EVT_SRC_VC7
enumerator ADC_EOC_EVT_SRC_VC8
enumerator ADC_EOC_EVT_SRC_VC9
enumerator ADC_EOC_EVT_SRC_VC10
enumerator ADC_EOC_EVT_SRC_VC11
enumerator ADC_EOC_EVT_SRC_VC12
enumerator ADC_EOC_EVT_SRC_VC13
enumerator ADC_EOC_EVT_SRC_VC14
enumerator ADC_EOC_EVT_SRC_VC15
enum ADC_EOCPulseMode

Defines the EOC pulse mode of the ADC.

Values:

enumerator ADC_EOC_PULSE_END_OF_SH

the end of the window holds the end of the conversion

enumerator ADC_EOC_PUSLE_END_OF_CONV

the end of the conversion holds the end of the window

enum ADC_AnalogWdgOutMode

Defines the analog watchdog output mode of the ADC.

Values:

enumerator ADC_ANALOG_WDG_OUT_MODE_OS

one-shot

enumerator ADC_ANALOG_WDG_OUT_MODE_CBC

CBC

enum ADC_AnalogWdgThreshold

Defines the analog watchdog threshold of the ADC.

Values:

enumerator ADC_ANALOG_WDG_THRESHOLD_LOW
enumerator ADC_ANALOG_WDG_THRESHOLD_HIGH
enum ADC_AnalogWdgEvtNum

Defines the analog watchdog event number of the ADC.

Values:

enumerator ADC_ANALOG_WDG_EVT_NUM_0
enumerator ADC_ANALOG_WDG_EVT_NUM_1
enumerator ADC_ANALOG_WDG_EVT_NUM_2
enumerator ADC_ANALOG_WDG_EVT_NUM_3
enum ADC_AnalogWdgEvt

Defines the analog watchdog event source of the ADC.

Values:

enumerator ADC_ANALOG_WDG_EVT_VC0
enumerator ADC_ANALOG_WDG_EVT_VC1
enumerator ADC_ANALOG_WDG_EVT_VC2
enumerator ADC_ANALOG_WDG_EVT_VC3
enumerator ADC_ANALOG_WDG_EVT_VC4
enumerator ADC_ANALOG_WDG_EVT_VC5
enumerator ADC_ANALOG_WDG_EVT_VC6
enumerator ADC_ANALOG_WDG_EVT_VC7
enumerator ADC_ANALOG_WDG_EVT_VC8
enumerator ADC_ANALOG_WDG_EVT_VC9
enumerator ADC_ANALOG_WDG_EVT_VC10
enumerator ADC_ANALOG_WDG_EVT_VC11
enumerator ADC_ANALOG_WDG_EVT_VC12
enumerator ADC_ANALOG_WDG_EVT_VC13
enumerator ADC_ANALOG_WDG_EVT_VC14
enumerator ADC_ANALOG_WDG_EVT_VC15
enum ADC_BlankingTrigger

Defines the blanking trigger source of the ADC.

Values:

enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM0
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM1
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM2
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM3
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM4
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM5
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM6
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM7
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM8
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM9
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM10
enumerator ADC0_BLANKING_TRIGGER_SRPWM_NUM11
enumerator ADC0_BLANKING_TRIGGER_ETIMER0
enumerator ADC0_BLANKING_TRIGGER_ETIMER1
enumerator ADC0_BLANKING_TRIGGER_ETIMER2
enumerator ADC0_BLANKING_TRIGGER_ETIMER3
enumerator ADC0_BLANKING_TRIGGER_ETIMER4
enumerator ADC0_BLANKING_TRIGGER_ETIMER5
enumerator ADC0_BLANKING_TRIGGER_ETIMER6
enumerator ADC0_BLANKING_TRIGGER_ETIMER7
enumerator ADC0_BLANKING_TRIGGER_ETIMER8
enumerator ADC0_BLANKING_TRIGGER_ETIMER9
enumerator ADC0_BLANKING_TRIGGER_ETIMER10
enumerator ADC0_BLANKING_TRIGGER_ETIMER11
enumerator ADC0_BLANKING_TRIGGER_ETIMER12
enumerator ADC0_BLANKING_TRIGGER_ETIMER13
enum ADC_FilterType

Defines the filter type of the ADC.

Values:

enumerator ADC_FILTER_TYPE_IIR
enumerator ADC_FILTER_TYPE_NON_SLIDING_AVERAGE
enum ADC_DMAChannel

Defines the DMA channel of the ADC.

Values:

enumerator ADC_DMA_CHANNEL0
enumerator ADC_DMA_CHANNEL1
enumerator ADC_DMA_CHANNEL2
enumerator ADC_DMA_CHANNEL3
enum ADC_DMARequest

Defines the DMA request of the ADC.

Values:

enumerator ADC_DMA_REQUEST_EOC_VC0
enumerator ADC_DMA_REQUEST_EOC_VC1
enumerator ADC_DMA_REQUEST_EOC_VC2
enumerator ADC_DMA_REQUEST_EOC_VC3
enumerator ADC_DMA_REQUEST_EOC_VC4
enumerator ADC_DMA_REQUEST_EOC_VC5
enumerator ADC_DMA_REQUEST_EOC_VC6
enumerator ADC_DMA_REQUEST_EOC_VC7
enumerator ADC_DMA_REQUEST_EOC_VC8
enumerator ADC_DMA_REQUEST_EOC_VC9
enumerator ADC_DMA_REQUEST_EOC_VC10
enumerator ADC_DMA_REQUEST_EOC_VC11
enumerator ADC_DMA_REQUEST_EOC_VC12
enumerator ADC_DMA_REQUEST_EOC_VC13
enumerator ADC_DMA_REQUEST_EOC_VC14
enumerator ADC_DMA_REQUEST_EOC_VC15
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC0
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC1
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC2
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC3
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC4
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC5
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC6
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC7
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC8
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC9
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC10
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC11
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC12
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC13
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC14
enumerator ADC_DMA_REQUEST_WDG_THRESHOLD_VC15
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC0
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC1
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC2
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC3
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC4
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC5
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC6
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC7
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC8
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC9
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC10
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC11
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC12
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC13
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC14
enumerator ADC_DMA_REQUEST_PRE_RESULT_VC15
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC0
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC1
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC2
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC3
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC4
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC5
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC6
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC7
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC8
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC9
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC10
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC11
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC12
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC13
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC14
enumerator ADC_DMA_REQUEST_FILTER_RESULT_VC15
enumerator ADC_DMA_REQUEST_PRE_RESULT_FIFO
enumerator ADC_DMA_REQUEST_FILTER_RESULT_FIFO