1、问题:为什么充电的时候充电IO口会置起来呢?
2、问题出现的原因及分析:
这几行代码的意思是,当检测是否充电函数的返回值是Em_Charge,即检测到充电时,将进入充电模式。
而这个函数是通过检测CHARGE_IO是否为1来确定是否处于充电状态的。
CHARGE_IO则是芯片的某个引脚,PA7。
通过阅读电路原理图,我们可以知道充电检测引脚为PA7,当充电口插入时,PA7电平为高,因此CHARGE_IO为1,进而返回值为Em_Charge。
那么为什么充电口插入,PA7识别的是高电平呢?
根据以上原理图可知,这是个串联电路,因为电容相当于断路,+5V为正极,地为负极,5V的电压输入以后,因为R10为1M,R11为3M,且串联电路电流相同,电压和电阻成正比,因此R10分得1.25V电压,因此下面的那个节点,也就是Charge_EDT检测到的电压为3.75V。
又因为Charge_EDT那里有一个施密特触发器,施密特触发器通常有0.3的下阈值和0.7的上阈值,当电压低于下阈值时,输出状态为低电平,当电压高于上阈值时,输出状态为高电平,上阈值为0.7×5 = 3.5 V,下阈值为0.3 × 5 = 1.5 V。
由于充电检测节点为3.75V,因为经过施密特触发器处理,切换为了高电平状态。