Can someone explain this microcontroller ADC interface (for reading solar panel voltage)?

I am trying to understand the functionality of a circuit found in TIDA-00121 (you can download the design file from here)

I assume that this has to do with the fact that the PV is not directly tied to ground (reverse current mosfet may be turned off when the solar panel voltage is too low to prevent any reverse current from flowing into the panel)

As for the transfer function (from source code), the voltage at the microcontroller side equals to:

V=0.086045Pv-0.14718475V (PV is the panel voltage).

this was extracted from the fact that Vref=2.39,10 bits ADC and the source code equation:

Panel Voltage = 36.83 * PV - 63

to verify my assumptions, from the source code:

Battery Voltage = BV * 52.44

which yields to voltage at microcontroller side of the battery voltage divider:

V=0.122BV which is the voltage divider ration (14K/100K network)

The question is:

1. What is the role of the pnp transistor network?
2. How to calculate the transfer function of the voltage at the microcontroller side?

Thank you very much.

What is the role of the pnp transistor network?

It's a differential voltage to current converter followed by a load (R34 and R35). The voltage between P+ and P- sets a voltage across R31. This (minus 0.7 volts) sets a voltage across R33 and that causes a current to flow out of the collector (largely irrespective of what load the collector has).

Given the values of R33, R34 and R35, whatever voltage is set across R33 appears across R35 but, reduced by 3:1.

Importantly, this voltage is ground referenced making it suitable for the ADC to make sense of. So there is level shifting involved.

• Is your last point the main benefit over a simple resistive divider? – Arsenal Apr 27 '18 at 13:18
• @Arsenal the ability to measure a "floating" voltage and produce a ground referenced measurement signal is vital for an ADC that is ground-referenced. Of course you could pot down both P+ and P- and measure using two ADCs then subtract digitally. – Andy aka Apr 27 '18 at 14:51
• The other benefit is if there is a gross overvoltage across P+/P-, the transistor will saturate and the ADC will not be damaged by the overvolt. – pgvoorhees Apr 27 '18 at 15:25
• @fhlb Is the MOSFET always grounding the PV you must ask yourself and, when it isn't, is it important to measure the PV? – Andy aka Apr 27 '18 at 19:55
• If the PV voltage is too low and P+ is tied to the top rail of the load then, P- must be higher than 0 volts hence the diode cannot conduct. – Andy aka Apr 28 '18 at 11:49

I'm still confused on the purpose of using this circuit. I thought that the connection of the mosfet's internal diode (Q1) is the same as grounding the solar panel(voltage read wille be equal to the panel's voltage minus Q1's diode voltage drop).

That is true when the system is operating, but the system is not aways operating.

My attempt to reverse-engineer the system and explain the process that lead to a differential measurement being needed.

This system is clearly designed for high efficiency at high power levels, hence all switching devices in the power path are N channel mosfets, the less efficient diodes and P channel mosfets are avoided.

The block diagram shows a buck converter between the panel and the battery. http://www.ti.com/diagrams/rd/schematic_tida-00121_20140129112304.jpg . This buck converter appears to be formed by Q2, Q3 and L1.

The problem is due to the body diode of Q2 the buck converter cannot prevent backfeeding if the panel voltage drops below the battery voltage. This back-feeding needs to be blocked.

One could of course use a diode or P-fet to prevent backfeeding but as I said those are inefficient. One could use a N-Fet on the high side but then one would need a high side driver chip for it. So they decided to block backfeeding through the use of a N-mosfet on the low side (Q1).

Turning off Q1 allows backfeeding to be blocked but it means the panel is no longer grounded. During normal operation P- is at ground but when the system is "turned off" due to lack of light P- may be higher than ground. It is still potentially useful to be able to monitor panel voltage when the system is turned off.

So a differential circuit is used to read the panel voltage by first converting the differential voltage to a current and then converting that current back to a single ended voltage.

• When Q1 is turned off, the P- net is not floating,instead it is connected to ground by Q1's internal diode. P+ will be equal to the panels voltage minus the diode voltage drop. Isn't a simple voltage divider network connected directly to P+ Sufficient to read the panel's voltage at all time? Ofcourse the software should add that voltage drop when Q1 is turned off. This is confusing! – Latchup Apr 27 '18 at 23:33
• P- cannot be significantly below ground because of Q1's body diode but it can be above ground if Q1 is turned off the panel voltage is sufficiently low. – Peter Green Apr 27 '18 at 23:45