CVTCS-C Initial operation

Date start: 2023-12-03
Date end: 2023-12-11
Operator: FBä

DUT

No.: 1
CVTCS-C Version: 0.1.1
CVTCS-P Version: 0.1.0

Modifications

CVTCS-C

CVTCS-P

General notes

Power supplies

U7 UVLO threshold

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 ✔️

U7 switching node

After correcting the transformer-diode connections, the switching node shows the expected waveform.

U7-SW, Vsup 51.2V, no load, Iq 19mA

Switching frequency while idling is about 33kHz.

U7 startup (R6 = 330kΩ)

U7 startup, R6 360k, 51.2V

U8 startup (R6 = 330kΩ)

The U8 replacement TPS7A2450DBVR shows no oscillation with ceramic output capacitor. The start-up behaviour from 0V input is very good.

U8 replaced with TPS7A2450, R6 330k, no osc., with CVTCS-P

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.

U8 replaced with TPS7A2450), R6 330k, no osc., overshoot, with CVTCS-P

U11 startup (R6 = 330kΩ)

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.

U11 startup, R6 330k, RPi Pico W

Output voltage

Tolerances

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

Tuning flyback (U7) feedback resistor FFB (R6)

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.

Load: None (no RPi Pico mounted; no CVTCS-P, R6 = 330kΩ)

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)

Load: RPi Pico idling (no CVTCS-P, R6 = 330kΩ)

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)

Load: RPi Pico idling + 280mA on 3V3 (no CVTCS-P, R6 = 330kΩ)

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)

U7 switching frequency

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.

U7 output noise

The U7 switching frequency dominates the measured noise:

2023-12-09 Flyback noise, load 150mA (5V8), R6 330k, 51.2V, 2µs-div 2023-12-09 Flyback noise, load 150mA (5V8), R6 330k, 51.2V, 50ms-div

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.

Heating

Because of the power supplies being fairly low power and the comparatively large cooling surface, no burn-in tests are conducted.

Digital isolator (U12)

Function validated (even with 5VA with some 100mVpp ripple).

GPIO-expander control (U13)

Datasheet: MCP23S08x-E/SS

Output control and reading back input state using SPI0 and /CS3 works flawlessly. Test frequency: 1 MHz.

SPI decoding, IO expander control

Fan supply (U15)

Tolerances

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

Output voltage

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

Switching

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.

Transient, 0→6.7V output

Fan output, 0V to 6.7V, VSup 51.2V, IFan 0mA
Fan output, 0V to 6.7V, VSup 51.2V, IFan 200mA

Static, 6.7V output, unloaded

Fan output, VSup 51.2V, VFan 6.7V, IFan 0mA
Fan output, VSup 51.2V, VFan 6.7V, IFan 0mA, close-up

Static, 6.7V output, 200mA

Fan output, VSup 51.2V, VFan 6.7V, IFan 200mA

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.

Fan output, VSup 51.2V, VFan 6.7V, IFan 200mA, 2ms-div, (V~Fan unconnected)

The output voltage current peaks can be reduced a bit by adding output capacitance.

Transient, 6.7→12.1V output

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.

Fan output, ocp-trip, step 6.7-12.1V, Vsup 51.2V, cout 110µF, load 33Ω

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
Fan output, no OCP-tripping, step 6.7-12.1V, Vsup 51.2V, load 33Ω, Cg 300nF, Rg 200kΩ, Rgs 1MΩ

A fast voltage 0→6.7→12.1→6.7V output voltage control looks like follows:

Fan output, steps 6.7-12.1-6.7-0V, Vsup 51.2V, load 33Ω, Cg 300nF, Rg 200kΩ, Rgs 1MΩ

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.

Static, 12.1V output, 385mA

Looked as expected - no screenshots haven been saved.

ADC

Control (U21, U23)

Prototype functions to control U21/U23 have been developed successfully (Micropython). Both parts showed proper functionality at first glance.

MUX leakage (U23)

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.

High side supply

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

VBat voltage measurement (uncalibrated)

Δ(Bat+/Bat-) [V] VBat [V] ErrVBat [%]
18.61 18.648 ✔️ -0.20%
69.67 69.502 ✔️ -0.24%

IBat current measurement (uncalibrated)

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.

VDropGND (uncalibrated)

Δ(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.

V5V8 (uncalibrated)

The measurement is 5.8257V instead of 5.7928V for a random operating point. This is an error of 0.57%.

DAC

Why do the DACs start at 2.5V output?

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.

Control

Notes concerning DACx0508:

Cell voltage 1 (lowest) control problem without connection to BMS

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.

Cell voltage output

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:

Cell voltage test, 150mA, zoom, unequal sum of cells

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.

Cell voltage test, 150mA, 220µF on C2-C1

As stated before, unsing the NGE-103 with changes of 100mV/20ms does not trigger any parts/logic interfering with the cell voltage regulation.

Cell voltage test, 150mA, continuous

Conclusion: The cell voltage outputs work as expected.

Temperature output

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).

Temperature voltage output, steps, no load, 100nF, 1µF, 10µF

Shunt output

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.

Current output, step, add. compensation 470pF, load 10µF

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.

EEPROM (U24)

I2C communication works fine. No changes in hardware required (except for more memory, maybe).

I2C EEPROM, read single byte, 40kHz

Signal integrity, with simple probing, at is good:

I2C EEPROM, signal integrity, 400kHz
I2C EEPROM, signal integrity, 1MHz

TODO


Removed/updated parts

Paragraphs below are left for documentation purposes. They do no represent the lastest state of affairs.

SPI modes

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.

Power supplies

U7 startup (R6 = 360kΩ)

U7 startup, R6 360k, 51.2V

U8 oscillation (with CVTCS-P)

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.

U8 startup (with CVTCS-P, R6 = 360kΩ)

The U8 replacement TPS7A2450DBVR shows no oscillation with ceramic output capacitor. The start-up behaviour from 0V input is very good.

U8 replaced with TPS7A2450, R6 360k, no osc., with CVTCS-P

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.

U8 replaced with TPS7A2450), R6 360k, no osc., overshoot, with CVTCS-P

U11 startup (with CVTCS-P, R6 = 360kΩ)

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.

U11 startup, R6 360k, RPi Pico W

Output voltage

Load: None (no RPi Pico mounted; no CVTCS-P) (R6 = 360kΩ)

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:

Load: None (no RPi Pico mounted; no CVTCS-P) (R6 = 340kΩ)

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:

Load: RPi Pico idling (no CVTCS-P, R6 = 360kΩ)

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:

Load: RPi Pico idling (no CVTCS-P, R6 = 340kΩ)

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:

Load: RPi Pico idling + 280mA on 3V3 (no CVTCS-P, R6 = 340kΩ)

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)

Fan supply

Switching

Falsely triggered over-current protection

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..

Fan output, 6.7V to 12.1V, VSup 51.2V, IFan 350mA, connecting fan to active 12V output

Something similar can happen when switching from 6.7V to 12.1V.

Fan output, 6.7V to 12.1V, VSup 51.2V, IFan 350mA, stuttering during 6-12V switch

Current output

Step response without load, 1µF and 10µF is like expected. However, with 100nF (without zero series resistance) instability can be observed:

Current output, step, 1µF diff.
Current output, step, 100nF diff.

According to simulation the worst-case capacitive load is in the range of 1..10nF.