cjjdemon 发表于 2020-7-31 18:15 你是搞BMS那块的吧 |
这个电路可以用啊 |
QWE4562012 发表于 2020-7-31 09:26 通过负载接入检测功能就行,具体方式就是利用MCU的IO在放电MOS和充电MOS的共漏极进行高低电平监控,就知道有没有负载接入啦,一旦检测到负载,而且能够正常通信的话,就把PDSG拉高就开始预放了 |
1692483014 发表于 2020-7-31 10:26 辛苦了 受益匪浅 谢谢 |
昨天楼主私下里找我看了看这个电路,我整体看了一下,没有结合软件去理解,故只针对硬件说一下我的理解,从我理解的各个网络的含义,以及相应的控制原理: 1. 对外供电网络含义: P+ : 对外放电正极,用于对其它仪器供电; PACK- : 对外放电负极,P+输出以此为参考地; 2. 对内充电网络含义: CHG_IN:对内充电电源输入口: TDA : 通过内部的网络推断,这可能是一个input/output双向口,主要针对充电禁能的管理;(具体要根据软件一起分析,甚至要结合外接的充电设备一起分析才行。) CHG_CHK : 通过内部网络推断,这是一个input检测口,主要针对充电是否进行进行检测;(具体要根据软件一起分析,甚至要结合外接的充电设备一起分析才行。) 一、关于CHG_CHK、CHG_IN_CHK、CTL_CHG_C1、CTL_CHG_C2组成的模块的理解: 1. MCU通过CHG_IN_CHK检测CHG_CHK的电平,来获取充电状态; 2. CTL_CHG_C1和CTL_CHG_C2则可以调整CHG_CHK的下拉电阻的值: CTL_CHG_C1=0且CTL_CHG_C2=0时,CHG_CHK的下拉电阻为10.76K; CTL_CHG_C1=1且CTL_CHG_C2=0/1时,CHG_CHK的下拉电阻为0.54K; CTL_CHG_C1=0且CTL_CHG_C2=1时,CHG_CHK的下拉电阻为5.5K; 说明CHG_CHK是一个可以通过调整其下拉电阻而改变其输出状态,进而通过CHG_IN_CHK检测这种状态,来判断外部充电器处于何种状态,以方便内部mcu做出调整,具体结合mcu软件与外部充电设备的电路综合分析。 二、关于TDA、DISCHG_IN_CHK、CTL_DISCHG_COM组成的模块的理解: 1. DISCHG_IN_CHK应该可以检测TDA的电平; 2. CTL_DISCHG_COM可控制TDA的电平,可将其强拉为低电平; 3. 所以,猜测TDA是一个双向口,可以在输出时检测其电平状态,比如外部的充电设备将TDA弄一个弱上拉,但是内部的MCU可通过CTL_DISCHG_COM=1来强制将TDA拉低,这样外部充电设备检测到TDA是低电平,它就关闭自身的充电电路,不对电池包进行充电了。 4. 猜测mcu主动将CTL_DISCHG_COM拉低来停止充电是因为自身可能发生了某种故障。 三、关于WAKE、B+、P+、KEY1组成的模块的理解: 1. B+为电池包的正极; 2. P+为对外输出正极; 3. 控制B+到P+的连通/断开,则是控制内部电池包对外部用电设备放电/不放电; 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程序才能确定是否准确。 四、关于充电模块的理解: 1. 控制CHG_IN到B+的连通/断开,则是控制外部充电器对电池包的充电/不充电; 2. 包括预充电和正式充电两个阶段; 3. 充电器插入后,通过TDA或者CHG_CHK来检测充电器的状态; 4. 检测到充电器接入后,首先启动预充电,通过IN_CHG_PRE拉低来启动预充电(低电平应该是MCU的未上电状态的默认电平),之后MCU启动,通过SMBC和SMBD发送指令给BQ40ZB0,控制其CHG引脚控制Q18导通,开启大电流充电,然后再将IN_CHG_PRE拉高就可以了,充电会持续进行。上述是猜测,必须核对MCU程序才能确定是否准确。 |
cjjdemon 发表于 2020-7-30 18:26 当接入负载时,PDSG会先拉高,-----------这个为什么 |
cjjdemon 发表于 2020-7-30 18:26 你对BMS很了解 就是这个行业的吧 |
QWE4562012 发表于 2020-7-30 18:50 描述是正确的,充电时,电流是从P+流至B+,通过电芯,再从B-流至P-,所以V(SRP)-V(SRN)为正值时,是充电,为负值则是放电。 |
当检测到VSR=V(SRP)-V(SRN)为正值时,系统处于充电状态-------------这是不是搞错了啊 V(SRP)电压更高是充电状态? |
图1就是BQ芯片的电流采样回路 图2,如果PACK反接,PACK+接成了PACK-,那么GND就会接PACK+,这时候Q9的G极会被拉高,Q9导通,导致PACK短路,电池PACK一般是有短路保护的,这样就会停止输出了。 图3,预充预放电路是为了避免主回路导通瞬间,由于负载的容性过大,导致瞬间大电流而设计。以预放回路为例,一般这种电路,初始DSG/PDSG都是低电位,无法放电。当接入负载时,PDSG会先拉高,Q8导通,电流通过R1/Q8通过,R1为限流电阻,当达到预放截止条件时,PDSG拉低,DSG拉高,Q8截止,Q3导通,电流从Q3经过。预充同理 图4,俗称一线通,用单总线进行通信,遵守相应协议即可,通信速度一般比较慢,传输少量数据可以。低成本电动自行车会用。 |