国产32位单片机PY32F003,ADC使用注意事项
PY32F003 系列微控制器采用高性能的 32 位 ARM® Cortex®-M0+内核,宽电压工作范围的 MCU。嵌入高达 64Kbytes flash 和 4Kbytes SRAM 存储器,最高工作频率 32MHz。包含多种不同封装类型多款产品。芯片集成多路 I2C、SPI、USART 等通讯外设,1 路 12bit ADC,5 个 16bit 定时器,以及 2 路比较器。
PY32F003 系列单片机的工作温度范围为-40℃~85℃,工作电压范围 1.7V~5.5V。芯片提供 sleep 和stop 低功耗工作模式,可以满足不同的低功耗应用。主要面向低成本、低功耗和高性能的嵌入式应用。
PY32F003单片机ADC使用注意事项:
ADC 软件配置
ADC 初始化前添加 ADC_FORCE_RESET,确保初始化成功;
ADC 需要在使能前配置通道,若在使能后配置则会失败;
ADC 时钟需要配置到 16 MHz 以下,确保 ADC 采样精度;
ADC 使能后需要增加 8 个 ADC 时钟的延时,才可以使能转换,否则会影响采样精度;
GPIO 直接驱动大功耗器件会影响 ADC 采样结果(例如数码管显示,建议数码管显示的时候不采 样 ADC,或者在数码管的各个数据线上面串入 10-100 Ω 电阻,可根据实际情况进行调整); ADC 使能后软件不能禁能,需要复位 ADC 模块,然后重新初始化 ADC,最后启动 ADC;
ADC 在连续模式或不连续模式下,仅使用通道 0 时,必须选择扫描序列向下;
ADC 在单次模式下,转换结束后,需重新使能 ADC 模块(ADC_EN = 1),才能开始下一次转换。
ADC 硬件配置
ADC 通道电压不能高于 VCC+0.3 V(即使 ADC 通道未配置为 AD 功能),否则 ADC 采样异常。
Vreferint 1.2 V
芯片 Vreferint 1.2 V 实测值放置在 FLASH 中的 information 区域(0x1FFF0E20)。(高 16 位是实 际值,低 16 位是反码) ,读取 Vreferint 1.2 V 的程序见附录 2:
在采样 Vreferint 1.2 V 的时候,通过 ADC 采样时间转换公式算出来的结果至少需要 20 us,方法 如下:
a) 降低分辨率;
b) 降低ADC的时钟频率;
c) 提高ADC采样周期。
总转换时间计算如下: tCONV = 采样时间 + (转换分辨率+0.5) x ADC 时钟周期
例如: 当 ADC_CLK = 12MHz,分辨率为 12 位,且采样时间为 239.5 个 ADC 时钟周期: tCONV = (239.5 + 12.5) x ADC 时钟周期= 252 x ADC 时钟周期 = 21 us