This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
应用如上图。为保证未动作状态是功耗最低,上拉电阻值应尽可能大,请问如何确定保证在动作状态输入管脚能够正确检测高电平的上拉电阻最大值?
是不是保证 Vcc 减 手册中IO最大漏电流乘电阻值的压降 结果大于手册中IO输入最大高电平电压就可以了。
这里出现的情况是给IO输入高电平后,外部输入撤离,但是IO寄存器IN仍然保持高电平,而是用万用表量电压后,IO变为0.
出现这个情况的原因是IO对地串联了一个3K电阻和100nf电容,外部输入是加在电阻和电容的连接处的。应该是由外部输入时,对电容充电,外部输入撤离后电容保持该电压。
PS:MSP430f5529DEMO里关于按键中断init
#define BUTTON_PORT_DIR PADIR
#define BUTTON_PORT_OUT PAOUT
#define BUTTON_PORT_SEL PASEL
#define BUTTON_PORT_REN PAREN
#define BUTTON_PORT_IE PAIE
#define BUTTON_PORT_IES PAIES
#define BUTTON_PORT_IFG PAIFG
#define BUTTON_PORT_IN PAIN
#define BUTTON1_PIN BIT7 //P1.7
#define BUTTON2_PIN BIT2 //P2.2
#define BUTTON1_IFG P1IFG //P1.7
#define BUTTON2_IFG P2IFG //P1.7
void Buttons_init(uint16_t buttonsMask)
{
BUTTON_PORT_OUT |= buttonsMask; //buttons are active low
BUTTON_PORT_REN |= buttonsMask; //pullup resistor
BUTTON_PORT_SEL &= ~buttonsMask;
}
内部上拉电阻的阻值在几十K, 如果需要考虑IO口低功耗功能,强烈建议使用外部上拉电阻,并不要使能内部上拉电阻。
此IO口的作用是什么,只是数字逻辑判定吗? 如果是,可以考虑上拉一个100K 电阻,IO最大电流就是33uA。如果还是比较大功耗,可以适当增加电阻阻值。
如果AD输入,上拉电阻取决于采样信号的范围。
提问的时候最好附上原理图,方便大家更好回答你的问题。谢谢!