关于GD32F303的内部带隙基准的问题
GD32F303的ADC0通道17连接到一个内部的带隙基准,手册里面只是稍微提了一下,没有具体参数,与使用方法。我试着配置成规则扫描,DMA触发,用了其他3通道+通道17内部参考。ADC时钟30M,采样周期 28.5(+12.5)。
然后发现一个神奇的现象,就是其他通道输入值会把这个内部参考采样到的值改变。
平时这个值测出来是1.2V,温飘是真的小,肯定小于80ppm,实测效果比我外接的一个80ppm的电压基准好。用来反推外部参考电压3.3V还是挺好用的。
就是其他ADC通道输入电压值,就会改变这个值,会减小到1V以下。
后来不是官方有个例程,里面是把它和内部温度一起配置的,配置成注入组的,采样周期是239.5(+12.5)。
我试着将它的采样周期单独改成239.5(+12.5),好像就好了,也不会受到影响。
71.5(+12.5),55.5(+12.5)也行。
41.5(+12.5)开始就不行了,就会受到其他通道的影响。
55.5(+12.5)/30 = 2.2667us。
(41.5 + 12.5) / 30 = 1.8us。
随后,我把主频从120M降到100M。ADC频率即变成25M。
(41.5 + 12.5) / 25 = 2.16us。
这时候也不会受到影响。
手册里面倒是有提到内部温度采样时间不要低于17.1us。
所以我想问问,内部基准是不是也有这种说法。 在GD32F303中,内部带隙基准通常被用作ADC的参考电压。通过配置ADC的相关寄存器,用户可以选择使用内部带隙基准作为ADC的参考源,从而实现对外部模拟信号的精确测量 增加内部基准的采样时间,内部基准的采样时间不低于 17.1us。 注入组采样具有更高的优先级,可以避免与其他通道的采样干扰。 降低 ADC 时钟频率可以延长采样时间,从而减少对内部基准稳定时间的要求。将内部基准的采样与其他通道的采样分开,避免电荷共享或电源噪声干扰。 GD32F303的内部带隙基准具有典型值为1.2V的特点,并且这一特性在芯片的ADC应用中尤为重要
尽管所有半导体材料都存在温度漂移的问题,但GD32F303的内部带隙基准通过特定的电路设计,实现了较低的温度漂移,从而保证了在不同温度下都能提供较为稳定的参考电压
由于内部带隙基准的电压相对稳定,因此也可以用于监测芯片的电源电压
在使用内部带隙基准之前,需要确保ADC的相关配置正确无误
GD32F303的内部通道只能用于ADC0单元,而不能用于ADC1或ADC2单元。因此,在进行ADC配置时,需要确保选择的是ADC0单元。
虽然手册未明确说明VREFINT的采样时间要求,但根据您的实验和STM32同源设计经验(GD32与STM32 ADC设计相似),可以确认:VREFINT需要较长采样时间:与内部温度传感器类似,其输出阻抗较高(通常约10-50kΩ),需要足够时间对内部电容充电。 您实测的 2.16μs(55.5+12.5周期@30MHz) 是可靠工作的下限,与STM32的经验值(通常建议≥2μs)吻合。 当采样时间不足时,ADC采样保持电容未充分充电,导致测量值被前一个通道的残留电压影响(尤其是高阻信号源)。 官方例程将VREFINT放在注入组且设置长采样时间(239.5+12.5周期),正是因为:注入组优先级高:可避免被规则组打断,保证采样完整性。 采样时间配置最低要求:保持采样时间 ≥ 2.2μs(对应55.5周期@30MHz ADC时钟)。推荐值:与内部温度传感器一致(17.1μs更安全) 参考电压滤波,即使使用内部基准,仍建议在VDDA/VREF+引脚添加10μF+100nF电容,降低电源噪声影响 上电时单独采样VREFINT并存储校准值,避免运行时频繁读取。 长采样时间,确保采样的时间比被采样的频率要高于2倍 其他通道影响VREFINT读数是采样时间不足导致电荷残留导致,建议可以加VREFINT采样时间 降低主频后问题消失ADC时钟减慢,等效采样时间增加其实可以固定采样周期数,而非依赖主频调整
页:
[1]
2