|
楼主私下里找我看了看这个电路,我整体看了一下,没有结合软件去理解,故只针对硬件说一下我的理解,从我理解的各个网络的含义,以及相应的控制原理:
6 I& x0 O8 K# R( w6 \9 ^9 W- Y
4 Z/ d# I/ W0 k! ]+ T7 o+ _1. 对外供电网络含义:
& M/ v! T$ |# U- sP+ : 对外放电正极,用于对其它仪器供电;* F9 q8 @( N' c8 u1 L, v9 M/ P
PACK- : 对外放电负极,P+输出以此为参考地;" \: g. Q0 _5 E' V; d8 Y
2. 对内充电网络含义:
2 C1 G- b& H6 H( SCHG_IN:对内充电电源输入口:6 M- K9 w1 H" }% G0 P
TDA : 通过内部的网络推断,这可能是一个input/output双向口,主要针对充电禁能的管理;(具体要根据软件一起分析,甚至要结合外接的充电设备一起分析才行。)
9 j; A1 T6 |2 l3 P. c. v' O8 L2 m( ^: P4 xCHG_CHK : 通过内部网络推断,这是一个input检测口,主要针对充电是否进行进行检测;(具体要根据软件一起分析,甚至要结合外接的充电设备一起分析才行。)
6 o. k. U" E- ]& Y: a
9 p- M% G4 n9 T y一、关于CHG_CHK、CHG_IN_CHK、CTL_CHG_C1、CTL_CHG_C2组成的模块的理解:; v6 r; k' Y l* b" S
1. MCU通过CHG_IN_CHK检测CHG_CHK的电平,来获取充电状态;
, p9 I- D$ Y8 B2. CTL_CHG_C1和CTL_CHG_C2则可以调整CHG_CHK的下拉电阻的值:% ^8 S# x9 D) z5 ^3 m- |
CTL_CHG_C1=0且CTL_CHG_C2=0时,CHG_CHK的下拉电阻为10.76K;
0 ?% ]8 I0 t( d9 G7 _8 wCTL_CHG_C1=1且CTL_CHG_C2=0/1时,CHG_CHK的下拉电阻为0.54K;
) v1 L, y# Q' j, u/ w* y3 OCTL_CHG_C1=0且CTL_CHG_C2=1时,CHG_CHK的下拉电阻为5.5K;
6 M! S* K; V K" f( B说明CHG_CHK是一个可以通过调整其下拉电阻而改变其输出状态,进而通过CHG_IN_CHK检测这种状态,来判断外部充电器处于何种状态,以方便内部mcu做出调整,具体结合mcu软件与外部充电设备的电路综合分析。; J/ q' c) i5 I) H- U
6 a3 E7 i7 a0 I9 x [ G6 a) B
二、关于TDA、DISCHG_IN_CHK、CTL_DISCHG_COM组成的模块的理解:, c+ o' n: \+ K9 ^& p: I. j7 z* d3 |
1. DISCHG_IN_CHK应该可以检测TDA的电平;# d, g% o& `1 ~6 O( \! e/ V
2. CTL_DISCHG_COM可控制TDA的电平,可将其强拉为低电平;
8 D+ ?3 p; y; _; K3. 所以,猜测TDA是一个双向口,可以在输出时检测其电平状态,比如外部的充电设备将TDA弄一个弱上拉,但是内部的MCU可通过CTL_DISCHG_COM=1来强制将TDA拉低,这样外部充电设备检测到TDA是低电平,它就关闭自身的充电电路,不对电池包进行充电了。/ i7 X: P, g# I% m
4. 猜测mcu主动将CTL_DISCHG_COM拉低来停止充电是因为自身可能发生了某种故障。/ U j& I5 t$ z% ]6 X* _
. i0 M; ]- J6 J/ k6 t; F9 F$ X; V三、关于WAKE、B+、P+、KEY1组成的模块的理解:+ Q( x* U \+ ~6 v) u" k- n
1. B+为电池包的正极;
/ N3 c- P7 T2 Y9 s7 Y4 O" B, l2. P+为对外输出正极;. j! |. [* R `$ ^0 j0 \1 @- [
3. 控制B+到P+的连通/断开,则是控制内部电池包对外部用电设备放电/不放电;) Q8 h# P6 W2 ^9 _7 x
4. 对于B+到P+供电模块,我认为是这样控制的:首先按下KEY1按键,B+和P+连通,那么则对外部设备供电了。因为按键是短暂的,我认为这个短暂的供电可以让外接设备的单片机工作起来,但是电流并不大,因为有R56的存在,之后外部设备可能会通过TDA给到电池包MCU反馈,MCU通过WAKE来进一步供电,即使KEY1松开也没事儿了。待MCU检测(检测方法猜测是通过TDA或者DISCHG_IN_CHK)到外部设备已准备就绪后,则准备开始供电了,此时MCU通过SMBC和SMBD发送指令给BQ40ZB0,控制其DSG和PACK两个引脚,使得Q11、Q12、Q14等导通给P+进行大功率供电,然后MCU将wake拉低释放即可。上述是猜测,必须核对MCU程序才能确定是否准确。) I3 G9 H B) b
* Y+ z7 V7 X5 u四、关于充电模块的理解:) P) Q6 f' ^5 j3 m
1. 控制CHG_IN到B+的连通/断开,则是控制外部充电器对电池包的充电/不充电;
' ], Z6 f+ {/ q$ b2. 包括预充电和正式充电两个阶段;3 n1 ^1 }9 H) ^9 P6 \; a
3. 充电器插入后,通过TDA或者CHG_CHK来检测充电器的状态;9 T+ C, w" Q3 N! Y, _* z) `/ I0 o$ U
4. 检测到充电器接入后,首先启动预充电,通过IN_CHG_PRE拉低来启动预充电(低电平应该是MCU的未上电状态的默认电平),之后MCU启动,通过SMBC和SMBD发送指令给BQ40ZB0,控制其CHG引脚控制Q18导通,开启大电流充电,然后再将IN_CHG_PRE拉高就可以了,充电会持续进行。上述是猜测,必须核对MCU程序才能确定是否准确。 |
|