现在的charge芯片智能化很高,
1,可以检测电池的温度
2,然后根据温度自动改变充电电流(w_d_8_0_1这个项目是将电池温度ptc接到cpu的adc,然后由cpu来控制充电电流)
3,电池充满电后自动以supply供电而非电池(早期的charge可能不带这个功能,则需要加外围电路以实现,负责电池会反复的处在重放电的过程,严重影响电池寿命)
charge的电源输入来自USB还是adapter,这个需要考虑。
如果来自USB,充电电流最大500mA;如果来自adapter,则可以设置得大一点,比如1000mA。原始程序USB插入的话,设置的500mA,这个是USB可以提供的最大电流,为保险起见,留一点余量很有必要,设置400mA。
Q1:要是adapter的输出电流也只有500mA呢,设置1000mA的充电电流,会不会把adapter给烧掉?
A1:有可能会,有些adapter可能没有限流功能。这又带来新问题了。
Q2:程序中如果是插入adapter的话,设置充电电流为900mA,这样肯定会把有些低功率的adapter给烧坏的。
A2:这是肯定的,所以使用adapter时要看好最大充电电流了。
Q3:bq24161的充电最大可以是1.5A,一开始为什么只设置900mA呢,为什么不一下子设置到1.5A,然后温度升高了再慢慢降下来。
A3:?
USB or adapter怎么判断呢?
这个电路设计有艺术了,电路设计的依据是adapter内部D+D-是短接的。这样插入adapter,在D-可以读到电压值,否则D-为0。
详见原理图。
库仑计,可以检测充电电流,电池电压。
程序结构是uevent主动上报。