Date start: 2023-12-03
Date end: 2023-12-11
Operator: FBä
No.: 1
CVTCS-C Version: 0.1.1
CVTCS-P Version: 0.1.0
Threshold tolerance consists of LT8304’s tolerance (-5.5%, +3%) and resistor divider tolerance (2%): -7.4% +5.1%
| Min. [V] | Nom. [V] | Max. [V] | Meas. [V] | Result | Comment | |
|---|---|---|---|---|---|---|
| VIN(UVLO+) | 17.25 | 18.63 | 19.57 | 18.70 | ✔️ | |
| VIN(UVLO-) | 16.59 | 17.91 | 18.82 | 18.20 | ✔️ |
After correcting the transformer-diode connections, the switching node shows the expected waveform.
Switching frequency while idling is about 33kHz.
The U8 replacement TPS7A2450DBVR shows no oscillation with ceramic output capacitor. The start-up behaviour from 0V input is very good.
In case there is some residual voltage left on the input before startup, a 0.2..0.3V overshoot occurs. It is quite short (<400µs) sand well within input voltage ratings of downstream parts.
Note: For this measurement GNDA and GNDIso were connected.
The operation if the RPi Pico’s buck-boost regulator can be observed
after Viso reaches 1.8V. The drop in 5V8, 6ms after start,
can be attributed to the RPi Pico’s startup.
VIso was measured directly on the microcontroller PCB.
Therefore, the noise induced by the input current is at least partly a
result of the the connecting 35mm long trace.
Note: Only applicable with minimum load
| Signal | Min. [V] | Nom. [V] | Max. [V] | Comment |
|---|---|---|---|---|
| 5V8 | 5.6 | 5.8 | 6.0 | TP7→TP4 (filtered) |
| -5V8 | -5.0 | -5.8 | -7.5 | TP8→TP4 (filtered) |
| +5VA | 4.9 | 5.0 | 5.1 | C38→TP4 |
| +2V5A | 2.453 | 2.495 | 2.537 | TP9→TP4 |
| -2V5A | -2.453 | -2.495 | -2.537 | TP10→TP4 |
| VIso | 3.3 | 4.1 | 5.5 | TP12→TP13 (filtered) |
| 3V3 | 3.0 | 3.3 | 3.6 | TP89→TP13 |
Goal is to not exceed the 5V8 tolerances stated above.
| RFB [kΩ] | 30mA [V] | 150mA [V] | 390mA [V] |
|---|---|---|---|
| 330 | ✔️ 5.75 | ✔️ 5.64 | ⚠️ 5.45 |
| 334 (360 || 4700) | ✔️ 5.77 | ✔️ 5.67 | ⚠️ 5.51 |
| 340 | ✔️ 5.96 | ✔️ 5.85 | ✔️ 5.63 |
| 360 | ⚠️ 6.36 | ⚠️ 6.22 | ✔️ 5.97 |
Result: According to above measurement 340kΩ would be ideal. Later measurements under (almost full) load showed, that the load regulation of 5V8 - and in turn VIso - is better than expected/simulated. At lowest input voltages and no load, 5V8 and VIso were shown to exceed their tolerances by very small amount 340kΩ. This does not happen at 330kΩ. Because of this the latter is more suitable.
| VSup [V] | ISup [mA] | 5V8 [V] | -5V8 [V] | +5VA [V] | +2V5A [V] | -2V5A [V] | VIso [V] |
|---|---|---|---|---|---|---|---|
| 20.0 | 53 | ✔️ 5.90 | ✔️ -6.30 | ✔️ 5.00 | ✔️ 2.50 | ✔️ -2.50 | ✔️ 5.43 |
| 51.2 | 16 | ✔️ 5.79 | ✔️ -6.20 | ✔️ 5.00 | ✔️ 2.50 | ✔️ -2.50 | ✔️ 5.33 |
| 80.0 | 12 | ✔️ 5.72 | ✔️ -6.16 | ✔️ 5.00 | ✔️ 2.50 | ✔️ -2.50 | ✔️ 5.27 |
Note: U15 was disconnected during measurements (defect)
| VSup [V] | ISup [mA] | 5V8 [V] | -5V8 [V] | VIso [V] | 3V3 [V] |
|---|---|---|---|---|---|
| 20.0 | 46 | ✔️ 5.85 | ✔️ -6.47 | ✔️ 4.64 | ✔️ 3.31 |
| 51.2 | 21 | ✔️ 5.79 | ✔️ -6.43 | ✔️ 4.58 | ✔️ 3.31 |
| 80.0 | 16 | ✔️ 5.73 | ✔️ -6.39 | ✔️ 4.52 | ✔️ 3.31 |
Note: U15 was disconnected during measurements (defect)
By loading the 3V3 output of the RPi Pico, all upstream supplies are affected. The load is realized using 4 paralleled 47Ω/2W resistors (280mA/3.3V)
| VSup [V] | ISup [mA] | 5V8 [V] | -5V8 [V] | VIso [V] | 3V3 [V] |
|---|---|---|---|---|---|
| 20.0 | 119 | ✔️ 5.71 | ✔️ -7.36 | ✔️ 4.03 | ✔️ 3.30 |
| 51.2 | 51 | ✔️ 5.68 | ✔️ -7.34 | ✔️ 4.01 | ✔️ 3.30 |
| 80.0 | 36 | ✔️ 5.66 | ✔️ -7.33 | ✔️ 3.99 | ✔️ 3.30 |
Note: U15 was disconnected during measurements (defect)
Measured at at 51.2 V input:
| Load [mA] | FSw [kHz] |
|---|---|
| 30 (5V8) | 143 |
| 150 (5V8) | 213 |
| 390 (5V8) | 244 |
| 280 (3V3) | 227 |
This is well below the parts’s max. 350 kHz switching frequency, up to where the frequency will be increased. Beyond that, the peak current limit will be raised to satisfy the current sourced from the output.
The U7 switching frequency dominates the measured noise:
Table of noise measurements at 51.2 V input, 20 MHz bandwidth, 50 ms/div:
| Load [mA] | 5V8 ACRMS [mV] | 5V8 VPP [mV] | -5V8 ACRMS [mV] | -5V8 VPP [mV] | 5VA ACRMS [mV] | 5VA VPP [mV] | 2V5A ACRMS [mV] | 2V5A VPP [mV] |
|---|---|---|---|---|---|---|---|---|
| 30 (5V8) | 5.77 | 38.5 | 5.26 | 41.6 | 5.13 | 36.6 | 5.47 | 45.0 |
| 150 (5V8) | 8.34 | 46.9 | 6.65 | 46.1 | 7.47 | 44.1 | 7.44 | 50.4 |
| 390 (5V8) | 8.55 | 44.1 | 7.47 | 48.2 | 7.86 | 42.9 | 8.05 | 50.0 |
| 280 (3V3) | 9.07 | 47.8 | 7.24 | 46.6 | 8.30 | 45.6 | 8.13 | 50.2 |
The virtually equal noise at all operating points makes one wonder, if the measurement setup was chosen in the best possible way. On the other hand, the actual noise performance by filtering seems quite good.
Because of the power supplies being fairly low power and the comparatively large cooling surface, no burn-in tests are conducted.
Function validated (even with 5VA with some 100mVpp ripple).
Datasheet: MCP23S08x-E/SS
Output control and reading back input state using SPI0 and /CS3 works flawlessly. Test frequency: 1 MHz.
Fan voltage is measured TP15→TP83.
| FanMode | Min. [V] | Nom. [V] | Max. [V] |
|---|---|---|---|
| 0 | 6.42 | 6.65 | 6.89 |
| 1 | 11.69 | 12.10 | 12.53 |
| VSup | FanMode | VFan0 [V] | VFan1 [V] | I1 [mA] | VFan2 [V] | I2 [mA] | VFan3 [V] | I3 [mA] |
|---|---|---|---|---|---|---|---|---|
| 20.0 | 0 | ✔️ 6.66 | ✔️ 6.70 | 26 | ✔️ 6.68 | 85 | ✔️ 6.67 | 200 |
| 51.2 | 0 | ✔️ 6.67 | ✔️ 6.71 | 27 | ✔️ 6.70 | 87 | ✔️ 6.70 | 202 |
| 20.0 | 1 | ✔️ 12.10 | ✔️ 12.12 | 40 | ✔️ 12.10 | 158 | ✔️ 12.12 | 345 |
| 51.2 | 1 | ✔️ 12.11 | ✔️ 12.17 | 41 | ✔️ 12.15 | 160 | ✔️ 12.18 | 350 |
All input voltages were tested. The behaviour at 51.2V input voltage is a good representation for differing voltages as well.
In general, the switching waveforms are very clean and only show minimal overshoot.
At a longer timebase, it is visible that there are gaps in the switching wave form. It is possible that this is the case because of the brushless fans connected stopping current consumption once in a while completely. This leads to sharply increased output voltage, due to low output capacitance. The switcher in turn stops operating momentarily.
The output voltage current peaks can be reduced a bit by adding output capacitance.
The operation is prone to false triggering over-current protection. The converter tries to increase the output voltage very quickly while the soft-start functionality of the IC timed out after reaching 6.7V starting from 0V. Of course, added output capacitance worsens the problem further.
To prevent this from happening the switch to higher output voltage must be slower to limit the current required to charge the output capacitance. Using a high value gate resistor (Rg), adding substantial capacitance (Cg) from gate to source of Q1A has been evaluated. Output capacitance was 110µF during all tests:
| Rg [kΩ] | Rgs [kΩ] | Cg [nF] | trise [ms] |
|---|---|---|---|
| 100 | none | 200 | 1.89 |
| 100 | 1M | 200 | 2.07 |
| 200 | 1M | 200 | 4.06 |
| 200 | 1M | 300 | 5.76 |
A fast voltage 0→6.7→12.1→6.7V output voltage control looks like follows:
To speedup the 12.1V→6.7V transition, optionally a diode (similar to 1N4148) + 4.7kΩ parallel to Rg can be used.
Independently from how slow the 6.7V to 12.1V transition becomes, with 200µF output capacitance U15 has trouble starting from time to time; with 330µF it does not start properly at all.
Looked as expected - no screenshots haven been saved.
Prototype functions to control U21/U23 have been developed successfully (Micropython). Both parts showed proper functionality at first glance.
There is not measurable leakage between two adjacent channels on U23 without buffering. For example, T2 (S2A) does not get lower (!) while IBat (S2B) increases.
The voltage Bat+GND shall be more then 3.3V below VBat, even at low VSup .
| VSup [V] | Δ(Bat+/Bat+GND) [V] |
|---|---|
| 18.18 | ✔️ 4.04 |
| 69.67 | ✔️ 4.65 |
| Δ(Bat+/Bat-) [V] | VBat [V] | ErrVBat [%] |
|---|---|---|
| 18.61 | 18.648 | ✔️ -0.20% |
| 69.67 | 69.502 | ✔️ -0.24% |
A shunt resistor (R387) in series to the cell voltage shut regulators is used to sense the current. While the series circuit currently cannot be opened to insert an amp-meter, the voltage across the shunt is measured to determine the “theoretical” current. The shunt resistor has a initial tolerance of 1% and a temperature drift of 50ppm.
| VShunt [mV] | ICalc [mA] | IBat | ErrIBat [%] |
|---|---|---|---|
| 0.50 | 10.0 | 14.1 | ⚠️ +29.1 |
| 1.02 | 20.4 | 24.6 | ⚠️ +20.6 |
| 2.51 | 50.2 | 55.2 | ⚠️ +9.1 |
| 5.04 | 100.8 | 107.3 | ⚠️ +6.1 |
| 9.99 | 199.2 | 207.5 | ⚠️ +4.2 |
| 25.02 | 500.4 | 515.0 | ⚠️ +2.8 |
| 49.97 | 999.4 | 1023.8 | ✔️ +2.4 |
Expected uncalibrated tolerance is 14.4 %/2.4 % (10 mA/1 A). For low
current these result does exceed this error by far.
The calibration should reduce this error substantially to a third or
less.
| Δ(GNDA/BMSGND) | VDropGND [mV] | ErrVDropGND [%] |
|---|---|---|
| 0.101 | 0.104 | ✔️ +3.0 |
| 0.202 | 0.208 | ✔️ +3.0 |
| 0.502 | 0.505 | ✔️ +0.6 |
| 0.999 | 1.001 | ✔️ +0.2 |
| 2.003 | 2.006 | ✔️ +0.15 |
| 5.001 | 5.005 | ✔️ +0.08 |
| 10.016 | 10.025 | ✔️ +0.09 |
Expected uncalibrated tolerance is 67.9 %/0.91 % (100 µV/10 mV). The results are much better than expected, even below expected calibrated values.
The measurement is 5.8257V instead of 5.7928V for a random operating point. This is an error of 0.57%.
The DACx0508M start at mid-scale, but the internal buffer defaults to gain = 2 (datasheet chapter 8.3.1.1). This is the equivalent mid-scale of 2× VRef full-scale. One wonders why… There seems not way to start at actual 1.25V output voltage.
A workaround might be to change resistance following the DAC outputs towards the current sinks.
If V(CE1,CE0) is too low, measured 0.93V at room temperature, the controlling current source cannot source sufficient current through R223 to increase the cell voltage to the desired level. The aforementioned voltage is just sufficient for the op-amp to the drive the shunt-regulator transistors. The latter reduce the op-amp’s supply voltage to a break-even level for it to operate. Reason for this is problem is GNDA, towards the controlling current is sourced, being 0.7..0.8V more positive then CE0/Bat-. The current flowing from GNDA to Bat- via the anti-parallel diodes D9/D22 limiting the voltage difference. The possibility of GNDA to float in a limited manner vs. Bat- is intentional. It prevents analog offsets on temperature sensor voltages/current shunt simulator voltages to be effective.
Connecting GNDA to BMSGND (meaning Bat- without a BMS being connected), like done in operation by J15-3/4, resolves the problem. To make testing easier D9/D22 can be shorted. Or, preferably, a “high value” resistor compared the intended cable to the BMS, like 10Ω, should be used in parallel to D9/D22.
Testing the step response (stepping channel 1 and channel 3 from 2V to 4V and vice versa) and increasing/lowering channel 2 and 4 simultaneously shows:
Capacitive loading of for example 220µF at lower currents like 150mA leads to some overshoot/undershot. This is reduced at high currents, of course. No oscillation to be observed at all.
As stated before, unsing the NGE-103 with changes of 100mV/20ms does not trigger any parts/logic interfering with the cell voltage regulation.
Conclusion: The cell voltage outputs work as expected.
Temperature voltage output behaves exactly exactly like simulated: Stable with load capacittane but still, quite fast (ca. 250µs rise time for 1µF load).
According to simulation the worst-case capacitive load is in the range of 1..10nF. After a lot of experimentation adding 470pF in parallel to the compensation network should tame the oscillations.
Step responses without load, 100nF, 1µF and 10µF now are like expected.
Measured rise times and overshoot:
| Diff. load | tr [µs] | tf [µs] | Overshoot [%] | Undershoot [%] |
|---|---|---|---|---|
| none | 1.1 | 1.0 | 12 | 2 |
| 100 nF | 18.0 | 13.8 | 49 | 10 |
| 1 µF | 74.1 | 78.2 | 32 | 11 |
| 10 µF | 388 | 390 | 10 | 15 |
The goal of (comparatively) fast risetimes with high capacitive load are achieved. An 100x increase in load capacitance results in 20x rise time increase, only.
I2C communication works fine. No changes in hardware required (except for more memory, maybe).
Signal integrity, with simple probing, at is good:
Paragraphs below are left for documentation purposes. They do no represent the lastest state of affairs.
The native SPI modes on the (galvanically isolated) are the following:
| Part | CPOL/CPHA | Mode |
|---|---|---|
| MCP23S08 | 0/0, 1/1 | 0, 3 |
| ADS1118 | 0/1 | 1 |
| DACx0508 | 0/1, 1/0 | 1, 2 |
The MCP23S08 is to be replaced by a digital isolator connecting the fan output (invertign SCLK line for mode 1 does not work). Its SPI modes 0/3 simply are incompatible without switching the mode of the SPI peripheral all the time.
Reason seems to be that the MIC5205 is unstable with ceramic output capacitors. The datasheet states:
For low-dropout regulators that are stable with ceramic output capacitors, see the μCap MIC5245/6/7 family. […]
The output capacitor should have an ESR (effective series resistance) of about 5Ω or less and a resonant frequency above 1MHz. Ultra-low-ESR capacitors can cause a low amplitude oscillation on the output and/or underdamped transient response
The MIC5205 was chosen because there are various suppliers for it. Possible cure can be to ei insert a 1Ω series resistance between regulator and capacitor (even less might work). Or replace the regulator with a suitable part.
The U8 replacement TPS7A2450DBVR shows no oscillation with ceramic output capacitor. The start-up behaviour from 0V input is very good.
In case there is some residual voltage left on the input before startup, a 0.2..0.3V overshoot occurs. It is quite short (<400µs) sand well within input voltage ratings of downstream parts.
Note: For this measurement GNDA and GNDIso were connected.
The operation if the RPi Pico’s buck-boost regulator can be observed
after Viso reaches 1.8V. The drop in 5V8, 6ms after start,
can be attributed to the RPi Pico’s startup.
VIso was measured directly on the microcontroller PCB.
Therefore, the noise induced by the input current is at least partly a
result of the the connecting 35mm long trace.
| VSup [V] | ISup [mA] | 5V8 [V] | -5V8 [V] | +5VA [V] | +2V5A [V] | -2V5A [V] | VIso [V] |
|---|---|---|---|---|---|---|---|
| 20.0 | 40 | ⚠️ 6.45 | ⚠️ -6.84 | ⚠️ 4.85 | ✔️ 2.500 | ✔️ -2.502 | ⚠️ 5.93 |
| 51.2 | 19 | ⚠️ 6.39 | ⚠️ -6.77 | ⚠️ 4.84 | ✔️ 2.500 | ✔️ -2.502 | ⚠️ 5.84 |
| 80.0 | 14 | ⚠️ 6.30 | ⚠️ -6.70 | ⚠️ 4.84 | ✔️ 2.500 | ✔️ -2.502 | ⚠️ 5.67 |
Notes:
VIso is unregulated and a result of 5V8. Once the RPi Pico is mounted, even its few mA current draw will bring the voltages down into their expected ranges.
| VSup [V] | ISup [mA] | 5V8 [V] | -5V8 [V] | +5VA [V] | +2V5A [V] | -2V5A [V] | VIso [V] |
|---|---|---|---|---|---|---|---|
| 20.0 | 40 | ⚠️ 6.10 | ✔️ -6.52 | ✔️ 5.00 | ✔️ 2.50 | ✔️ -2.50 | ⚠️ 5.60 |
| 51.2 | 20 | ✔️ 5.96 | ✔️ -6.40 | ✔️ 5.00 | ✔️ 2.50 | ✔️ -2.50 | ✔️ 5.48 |
| 80.0 | 13 | ✔️ 5.89 | ✔️ -6.33 | ✔️ 5.00 | ✔️ 2.50 | ✔️ -2.50 | ✔️ 5.41 |
Notes:
| VSup [V] | ISup [mA] | 5V8 [V] | -5V8 [V] | +5VA [V] | VIso [V] | 3V3 [V] |
|---|---|---|---|---|---|---|
| 20.0 | 66 | ❌ 6.44 | ⚠️ -7.18 | ⚠️ -4.85 | ✔️ 5.10 | ✔️ 3.32 |
| 51.2 | 31 | ❌ 6.33 | ⚠️ -7.09 | ⚠️ -4.85 | ✔️ 5.01 | ✔️ 3.32 |
Notes:
| VSup [V] | ISup [mA] | 5V8 [V] | -5V8 [V] | VIso [V] | 3V3 [V] |
|---|---|---|---|---|---|
| 20.0 | 48 | ⚠️ 6.02 | ✔️ -6.63 | ✔️ 4.78 | ✔️ 3.31 |
| 51.2 | 22 | ✔️ 5.95 | ✔️ -6.58 | ✔️ 4.72 | ✔️ 3.31 |
| 80.0 | 17 | ✔️ 5.89 | ✔️ -6.54 | ✔️ 4.67 | ✔️ 3.31 |
Notes:
By loading the 3V3 output of the RPi Pico, all upstream supplies are affected. The load is realized using 4 paralleled 47Ω/2W resistors (280mA/3.3V)
| VSup [V] | ISup [mA] | 5V8 [V] | -5V8 [V] | VIso [V] | 3V3 [V] |
|---|---|---|---|---|---|
| 20.0 | 121 | ✔️ 5.87 | ✔️ -7.50 | ✔️ 4.18 | ✔️ 3.30 |
| 51.2 | 52 | ✔️ 5.84 | ✔️ -7.45 | ✔️ 4.15 | ✔️ 3.30 |
| 80.0 | 36 | ✔️ 5.82 | ✔️ -7.44 | ✔️ 4.12 | ✔️ 3.30 |
Note: U15 was disconnected during measurements (defect)
Connecting both fans as loads to an already active fan output at 12.1V, this triggers the over current/short circuit detection. A bit more output capacitance (electrolytic) might help to absorb the first current draw of the fans..
Something similar can happen when switching from 6.7V to 12.1V.
Step response without load, 1µF and 10µF is like expected. However, with 100nF (without zero series resistance) instability can be observed:
According to simulation the worst-case capacitive load is in the range of 1..10nF.