|
楼主私下里找我看了看这个电路,我整体看了一下,没有结合软件去理解,故只针对硬件说一下我的理解,从我理解的各个网络的含义,以及相应的控制原理:$ S& b2 b5 b8 j- Q8 W% L5 G3 w" [
; F8 F; O/ h- Q1. 对外供电网络含义:+ _* l6 {+ q( n+ R" u; ~+ ]+ R5 }
P+ : 对外放电正极,用于对其它仪器供电;
+ x$ g& X. W6 Y0 PPACK- : 对外放电负极,P+输出以此为参考地;! x8 x' A/ h) j. `. r1 x0 `
2. 对内充电网络含义:7 X+ L: Y: T; {' O) x+ ~
CHG_IN:对内充电电源输入口:
+ _/ N. F e4 v' YTDA : 通过内部的网络推断,这可能是一个input/output双向口,主要针对充电禁能的管理;(具体要根据软件一起分析,甚至要结合外接的充电设备一起分析才行。)1 { n! R- m1 V q. P! G3 A- U3 |" p
CHG_CHK : 通过内部网络推断,这是一个input检测口,主要针对充电是否进行进行检测;(具体要根据软件一起分析,甚至要结合外接的充电设备一起分析才行。)
% S7 z- ~. |5 s1 L
3 q- N: M: n0 u- Z# ]: g一、关于CHG_CHK、CHG_IN_CHK、CTL_CHG_C1、CTL_CHG_C2组成的模块的理解:
! U0 O [' p' f" r1. MCU通过CHG_IN_CHK检测CHG_CHK的电平,来获取充电状态;
) ]. ~- D: |; h+ v3 u' E2. CTL_CHG_C1和CTL_CHG_C2则可以调整CHG_CHK的下拉电阻的值:3 ?1 j( B+ K9 q7 s5 I7 ?
CTL_CHG_C1=0且CTL_CHG_C2=0时,CHG_CHK的下拉电阻为10.76K;' E7 }. G1 k% Q+ h
CTL_CHG_C1=1且CTL_CHG_C2=0/1时,CHG_CHK的下拉电阻为0.54K;' {+ ~+ C, |9 C* d) `% n: I. v( h
CTL_CHG_C1=0且CTL_CHG_C2=1时,CHG_CHK的下拉电阻为5.5K;4 \. L0 n i* W- L4 W x5 X" i
说明CHG_CHK是一个可以通过调整其下拉电阻而改变其输出状态,进而通过CHG_IN_CHK检测这种状态,来判断外部充电器处于何种状态,以方便内部mcu做出调整,具体结合mcu软件与外部充电设备的电路综合分析。# i9 T! Z, ]) A Y9 H
' @! j$ y8 @, j0 ]$ i二、关于TDA、DISCHG_IN_CHK、CTL_DISCHG_COM组成的模块的理解:0 C( q7 b8 e8 p$ Q2 I3 V9 x& A% J
1. DISCHG_IN_CHK应该可以检测TDA的电平;
3 ~+ O0 P4 j5 |2. CTL_DISCHG_COM可控制TDA的电平,可将其强拉为低电平;! h* k! e" {2 _/ h' I' E2 H
3. 所以,猜测TDA是一个双向口,可以在输出时检测其电平状态,比如外部的充电设备将TDA弄一个弱上拉,但是内部的MCU可通过CTL_DISCHG_COM=1来强制将TDA拉低,这样外部充电设备检测到TDA是低电平,它就关闭自身的充电电路,不对电池包进行充电了。
& }2 b: I+ ?$ i" O# \( {' ~5 K4. 猜测mcu主动将CTL_DISCHG_COM拉低来停止充电是因为自身可能发生了某种故障。
' f1 _# G, X# v- v: f* o+ Y( m0 V- d8 r& ?* z5 N
三、关于WAKE、B+、P+、KEY1组成的模块的理解:
& [ t( ]' b- l+ q( i1. B+为电池包的正极;
2 {" }; ^6 N4 G% m s/ l2. P+为对外输出正极;
0 o! E) h* M9 ~. A- D. x" q0 G3. 控制B+到P+的连通/断开,则是控制内部电池包对外部用电设备放电/不放电;
& b% Y# K) t: h! y- o( j4 m4. 对于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程序才能确定是否准确。0 h8 s3 L7 t, z' C g8 |
x2 a& j9 N* \1 p
四、关于充电模块的理解:
) ]& ^; g/ Z$ ~1 \3 K6 w1. 控制CHG_IN到B+的连通/断开,则是控制外部充电器对电池包的充电/不充电;
* R* Y9 y) ]% g P) }2. 包括预充电和正式充电两个阶段;' I# E/ Z/ V8 E) T- Q; O
3. 充电器插入后,通过TDA或者CHG_CHK来检测充电器的状态;+ Y' M4 y' ~3 a6 t' }5 @: H
4. 检测到充电器接入后,首先启动预充电,通过IN_CHG_PRE拉低来启动预充电(低电平应该是MCU的未上电状态的默认电平),之后MCU启动,通过SMBC和SMBD发送指令给BQ40ZB0,控制其CHG引脚控制Q18导通,开启大电流充电,然后再将IN_CHG_PRE拉高就可以了,充电会持续进行。上述是猜测,必须核对MCU程序才能确定是否准确。 |
|