画个朴昧 发表于 2022-10-31 16:04

N32 ADC状态切换注意事项

    在一些应用场景需多次切换ADC工作状态,反复开关ADC,不能仅操作ON位ENABLE或DSIABLE,也需要确认ADC状态,判断是否ADC状态切换完成,才可进行下一步操作。
ØADC上电ADC第一次上电时,需等待PowerUp 过程完成,可以通过查询ADC_CTRL3 里面的 RDY位确认是否上电完成,然后进行ADC校准。
N32G45x系列,ADC上电操作,以ADC1为列:/* Enable ADC1 */ADC_Enable(ADC1, ENABLE);/*Check ADC Ready*/while(ADC_GetFlagStatusNew(ADC1,ADC_FLAG_RDY)== RESET);   N32G43x/N32L4xx系列,ADC上电操作:/* Enable ADC */ADC_Enable(ADC, ENABLE);/*Check ADC Ready*/while(ADC_GetFlagStatusNew(ADC,ADC_FLAG_RDY)== RESET);   N32G03X系列,ADC上电操作:/* Enable ADC */ADC_Enable(ADC, ENABLE);/*wait ADC is ready to use*/while(!ADC_GetFlagStatusNew(ADC,ADC_FLAG_RDY));

ØADC下电   通过清除 ON 位可以停止转换,并将 ADC 置于断电模式,在这个模式中ADC 几乎不耗电(仅几uA)。ADC下电时,用户需查询ADC_CTRL3 里面的 PDRDY 确认是否下电完成,才可进行下一步操作。       在 ADC DISABLE 的时候默认都是 PowerDown 模式,这个模式下只要不断电,不需要重新校正,校正值会在ADC 自动保持。为了进一步的降低功耗 ,ADC 有一个深睡眠模式,会在 ADC DISABLE进入深睡眠模式, ADC 内部的校正值会丢失, 需要重新校正。
N32G45x系列,ADC下电操作,以ADC1为列:/* Disable ADC ADC1 */ADC_Enable(ADC1, DISABLE);/*Check ADC Power DownReady*/while(ADC_GetFlagStatusNew(ADC1,ADC_FLAG_PD_RDY) == RESET); N32G43x/N32L43x/N32L40x系列,ADC下电操作:/* Disable ADC ADC */ADC_Enable(ADC, DISABLE);/* Check ADC Power DownReady */while(ADC_GetFlagStatusNew(ADC,ADC_FLAG_PD_RDY) == RESET);
   Ø低功耗模式下唤醒当芯片从低功耗模式唤醒后,需要重新复位ADC模块时钟,再进行初始化配置,否则会影响ADC的采样精度。
N32G45x系列,低功耗模式下唤醒后,ADC反初始换配置,以ADC1为例:1.反初始化ADC时钟:ADC_DeInit(ADC1);2.ADC初始化配置;3.使能ADC进行校准   N32G43x/N32L43x/N32L40x系列,低功耗模式下唤醒后,ADC反初始换配置,以ADC1为例:1.反初始化ADC时钟:ADC_DeInit(ADC1);2.ADC初始化配置;3.使能ADC进行校准

ChampionCN 发表于 2022-12-27 18:20

您好,我想请教您一个问题。
我在使用问国民N32G45X的ADC多通道软件触发采样时,精度非常不理想。采样率设置是满足要求的,请问你觉得还有哪些可能吗?

画个朴昧 发表于 2023-1-3 17:04

ChampionCN 发表于 2022-12-27 18:20
您好,我想请教您一个问题。
我在使用问国民N32G45X的ADC多通道软件触发采样时,精度非常不理想。采样率设 ...

有可能信号本身就存在波动,可以用示波器测量一下;或者可以增加采样周期测试一下

caigang13 发表于 2023-1-3 20:59

反复关闭开启ADC,测量抖动很大噢。

画个朴昧 发表于 2023-1-4 10:13

caigang13 发表于 2023-1-3 20:59
反复关闭开启ADC,测量抖动很大噢。

反复关闭是需要配进行多次校准得
页: [1]
查看完整版本: N32 ADC状态切换注意事项