0
\$\begingroup\$

I have a large lithium (LiFePO4) battery pack composed of 16 cells in series. It is monitored by a BMS (Battery Management System) which is interfaced to a battery charger (Victron Quattro).

The BMS and Battery Charger are from different manufacturers but both include "industry standard" ways of interfacing with each other via analog inputs/outputs.

As the BMS monitors the battery it offers an output pin where the BMS sets the voltage on this pin between 0 volts and 5 volts to indicate the maximum acceptable rate of charge current (amps) into the battery:

0.0 volts = Max charge of 0 amps 1.0 volts = Max charge of 14 amps 2.5 volts = Max charge of 35 amps ...etc... up to: 5.0 volts = Max charge of 70 amps

(Actual amperages adjustable, this is what I have it configured for)

The battery charger conveniently (or so I thought) also has an "input" that, according to their marketing material, can read a voltage and adjust the chargers output current based on the voltage read on the input pin. It does this in a linear fashion and I have it configured to match the BMS:

0 volts = 0 amps, 5 volts = 70 amps, linear relationship in between.

Here's where it gets tricky: Once I actually got my hands on the charger I discovered that the "input" pin is held high with an internal 10 Kohm pull-up to 5v. The expectation is that a user would connect a potentiometer between the input pin and ground and use that to adjust the resistance and "pull down" the voltage on the input pin to control the voltage and thus the rate of charge current from the charger.

So I'm left with trying to figure out how I can build a (Hopefully simple) circuit that will pull the input pin on the charger "down" to match the voltage of the output pin on the BMS unit.

The challenge I've faced trying to research this is that every thing I find referring to anything related to pull-up resistors is for digital logic (IE: On or off). However this particular piece of equipment is using it for an analog input. The few analog resources I found were for reading the amperages of input signals rather than the voltages.

The other area I tried to research was voltage regulation. But everything related to voltage regulation focuses on the wrong side of the equation: Regulating the output from the regulator rather than regulating the current to pull down the input to a specific voltage.

I've also tried to research using a simple transistor for this. However I haven't been able to find anything that shows a transistor being used in this way though logically it seems to me it might work.

I've already reached out to the battery charger manufacturer (Victron Energy) and asked if it's possible to disable the internal pull-up to 5v on this pin. They say it's not possible.

In Summary: Is there a relatively easy way to pull the voltage on a 5v pulled-high input pin down to match the voltage of another source?

\$\endgroup\$
2
  • \$\begingroup\$ Welcome to EE.SE. Add a 5 volt zener diode to that pin so it cannot go above 5 volts. Try 1 K to 10 K resistors to the higher voltage. \$\endgroup\$
    – user105652
    Commented Jun 21, 2018 at 23:35
  • \$\begingroup\$ @user105652: The question was not about voltages exceeding +5V and other higher voltages \$\endgroup\$
    – Jens
    Commented May 28, 2022 at 16:52

2 Answers 2

1
\$\begingroup\$

A pull-up works exactly this way: when there is not another voltage source on the section, the pull-up puts this pin at 5v. If the charger is connected to a "dumb" battery (a BMS or battery unable to "talk" to the charger), the pull up will actuate and will set the charger at its peak voltage.

But if you connect your "smart" BMS unit to the charger, the BMS signal will override the pull-up (a "weak" pull-up resistor of only 10K is feeding the pull up pin) and so the BMS will change the input of the charger, in order to request from it as much current as the BMS want/need.

I didn't understand why you can't just connect the BMS directly to the charger (and everyone would be happy). I'm sorry to answer your question with another question.

If you really have a good reason to drive the charger with an independent control, or you can't connect them directly, IMHO the best solution would be an Op-Amp circuit with zero gain, so, you feed the BMS output pin to the input of the op-amp circuit, and connect the output of the op-amp to the charger input; the op-amp has low impedance output, so, it would be easy to override the pull-up.

This would be a simpler, analog and more elegant solution; but I'm not sure if it would fit, because I don't know the reason why you don't just connect the BMS output to the charger input.

If for some reason the analog solution doesn't work, other option would be microcontrollers; a uC with a DAC (the DAC output should be feed to, guess who, an Op-amp with zero gain), or a uC with a PWM output, which would be feed to a rectifier and after that, to an Op-amp.

\$\endgroup\$
-1
\$\begingroup\$

To me it appears your skill set and resources will allow you to implement this simple solution. Use an opamp configured as a voltage follower (LM358 would be good). That the output goes to your BMS and the - input to the opamp. The + of the op amp goes to your control source. Let us know how this works out.

\$\endgroup\$
1
  • \$\begingroup\$ The BMS provides information and the charger receives it. Your answer does not match this direction and LM358 has no rail to rail output, which would be needed here. \$\endgroup\$
    – Jens
    Commented May 28, 2022 at 17:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.