A case about BMS wake-up and sleep
Latest update time:2019-09-29
Reads:
It's time for a holiday. Let's make a good sprint and try to get everything done before the holiday. Otherwise, we will have to work overtime at home during the National Day holiday.
The previous high-voltage knowledge points related to relay adhesion detection have come to an end. I will settle down for a while and continue.
Today I will share an interesting case.
There are two types of boards in BMS, the control board and the detection board;
their working scenarios are also divided into two types:
normal state and sleep state.
When the vehicle is not started, the BMS is in a dormant state. At this time, the external power supply of the BMS is KL30, but all wake-up signals (such as KL15) are low level. The internal microcontroller is in a dormant or unpowered state, waiting for external power. wake-up signal.
(Pictures come from the Internet)
Regarding the BMS sleep and wake-up process, we encountered such a strange problem:
"After the BMS was ordered to enter sleep, it was immediately woken up again, and the process was repeated. During this period, there was no wake-up source external to the BMS."
The specific wake-up circuit diagram is as follows:
the multi-channel wake-up signal realizes the line-AND function through the switching diode, and then is input to the wake-up source through simple resistor voltage division and current limiting.
The wake-up source can be the power supply or the microcontroller.
Among them,
wake-up signal 2 is not used and is left floating; only wake-up signal 1 is used
.
We found that when the BMS is ordered to enter sleep, the BMS is immediately awakened.
To be awakened, there must be a valid input of the wake-up signal. However, when the BMS actually enters sleep, the external wake-up signal 1 is pulled low at the same time and is invalid. 2 is a floating state, so where does this wake-up signal come from?
What's even more strange is that when we used an oscilloscope to capture the process from sleep to wake-up, no wake-up signal was actually captured, and the above
fault of being accidentally woken up after sleep disappeared
.
Next, I identified the problem step by step. Finally, I found that after removing the port capacitor C1 of wake-up signal 2, the problem disappeared...
The capacitor C1 is generally used for ESD protection of ports, and its capacitance is not large, such as below 10nF.
After locating the problem device, the cause of the problem becomes clearer:
when the BMS is working, wake-up signal 2 is suspended, and wake-up signal 1 reversely charges C1 through diodes D2\D1.
When sleeping, the wake-up signal 1 disappears and becomes low level. At this time, the capacitor C1 is discharged, and the wake-up source can be woken up as long as it has a level above 2V, thus waking up the BMS by mistake.
Further analysis shows that diodes have a reverse current indicator, which cannot be ignored in applications;
C1 has a small capacity, so when it was poked with an oscilloscope probe before, a discharge path would be formed, and the electricity on it would be quickly absorbed. consumption, so when there is a probe, the fault will not occur.
There are several solutions. One is to replace the switching diode with a smaller reverse current, but this is not very good and does not completely solve the problem.
The second is to remove the capacitor C1 of the port and replace it with an ESD protection diode.
The third is to control it in the software. Make a delay above, first pull down the external wake-up source, and then delay for a period of time to allow the power on C1 to be consumed, and then sleep the BMS.
Summarize:
This example is relatively uncommon. In fact, this scenario is more common when wake-up signal 2 is used instead of floating.
In this scenario, the discharge of C1 will also cause false wake-up, and C1 charges faster, so this problem will be more prominent. .