AVR管脚外部上拉电阻阻值选择分析
AVR微控制器的I/O口是双向口。具有如下的特点:
AVR IO具备多种IO模式:
1 高阻态,多用于高阻模拟信号输入,例如ADC数模转换器输入,模拟比较器输入
2 弱上拉状态(Rup=20K~50K),输入用。为低电平信号输入作了优化,省去外部上拉电阻,例如按键输入,低电平中断触发信号输入
3 推挽强输出状态,驱动能力特强(>20mA),可直接推动LED,而且高低驱动能力对称.
在实际应用中,我使用了1M的外部上拉,用来测量霍尔器件的脉冲。结果发现没有动作的情况下也测量到了脉冲。于是做了如下的测量:
1,该管脚设置为输入,不使能内部上拉而是使用外部1M电阻上拉(PORTX为0),测量得到该管脚的电压大约是3.06(电源电压是3.37)
2,该管脚设置为输入,使能内部上拉(带着外部上拉的1M电阻),测量得到该管脚的电压大约是3.36(电源电压是3.37)
3,该管脚设置为输入,不使能内部上拉而是使用外部可调电阻上拉(PORTX为0),管脚电压随着外部上拉电阻的阻值的下降而升高,当外部可调电阻的组织大约是40K时,该管脚电压接近Vcc供电电压,并且降低电阻,电压也不再升高。
总结出一个规律,如果使用外部上拉电阻,该阻值应该不能超过40K,否则该引脚的电压将不能到达Vcc的电压。
更正:
上面的测量是有问题的,上面1中测量的电压为3.06,是由于万用表内阻的影响,换句话说,如果万用表的内阻是M级别的话,外部1M电阻和万用表相比已经足够大,因此本身会有比较大的压降,导致管脚上电压变低(该管脚的电压实际值应该是接近电源电压)。原来的系统不工作应该是外部电阻太大引起的,具体的原因是什么哪?