为什么DAC中要将GPIO对应引脚的模式配置为“模拟输入模式”?
疑难问题
将GPIO配置为模拟输入模式后,GPIO相应引脚属性的变化
当I/O端口被配置为模拟输入配置时:
● 输出缓冲器被禁止;
● 禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强置
为’0’;
● 弱上拉和下拉电阻被禁止;
● 读取输入数据寄存器时数值为’0’。
下图示出了I/O端口位的高阻抗模拟输入配置:
为什么将GPIO配置为模拟输入模式?
我们看到模拟输入模式中信号行走的路线上,没有用于“数字信号处理的施密特触发器”和“输入数据寄存器”,并且此时的上下拉电阻已经被关闭。
这个施密特触发器被关闭了,GPIO的数字输入功能被取消。如果此时读取输入数据寄存器的值,结果恒为0。由于关闭了施密特触发器,上面提到的因它而起的电平跳变噪声和相应的额外功耗就没有了。
换句话说,当GPIO状态由浮空或上下拉输入状态改为模拟输入状态时,既消除了因为施密特触发器带来的噪声,同时又因它的关闭而降低了芯片动态功耗。
另外,配置在模拟输入状态的GPIO引脚属于高阻态,这点也有利于保持模拟信号的真实性(说白了,就是信号传输通道无任何信号处理装置,可以将原汁原味的模拟信号在CPU与外设之间进行传输)。
DAC应该是输出模拟信号,但为什么要配置为“模拟输入”?
因为一但使能 DACx 通道之后,相应的 GPIO 引脚(PA4 或者 PA5)会自动与 DAC 的模拟输出相连。其实,模拟输入通道与模拟输出通道是一起的,当我们将我们所需的引脚配置为“GPIO的模拟输入模式”后,系统会根据我们所使能的DAC/ADC外设自动进行通道类型的选择。
DAC的毛刺现象是什么?
DAC转换中毛刺信号产生的本质