Electronic – MCP73831: design a lithium battery charging circuit

battery-chargingledsolar-charge-controllertri-statezener

I am trying to design a charging circuit for a lithium polymer battery with 2200 mAh capacity and 3.7 V nominal voltage. The integrated circuit for the control of the charge of the battery is the MCP73831 and as a power supply a solar panel of 6.2 Voc and Isc =175 mA is used (I do not have more information about the solar panel). The atmega328p is used as a microcontroller. On the one hand, I want to detect the three states of the tri-state output (pin 1 MCP73831). For this, I used the solution proposed in (How can I read a tristate output with microcontroller? by @Wouter van Ooijen), with the voltage divider connect to microcontroller ADC but I would also like to add a LED connected to pin 1 (STAT) so that it only lights when STAT is a low (not in high impedance). I mainly have two questions (if you see any more mistakes or improvements, I would appreciate it if you told me).

  1. I have put a zener diode (BZT52H-C5V6) with a Vz = 6 V to ensure that the maximum voltage allowed on pin 4 (MCP73831) is not exceeded. It is right? It is not necessary?
  2. Would both the led (TLMS1000 red) and the voltage divider work to detect the three states?

schematic

simulate this circuit – Schematic created using CircuitLab

Thanks in advance.
Best regards.

Best Answer

From what I read (but I never used those ICs) if the open circuit voltage is 6.2V you can omit the 6V zener. In fact, the voltage at its output decreases with the load, and the maximum rating of the IC is 7V, so up to 7V it should not break. You can test it, or wait for someone more expert than me to come and say that I am completely wrong (but I hope I'm not).

As for the microcontroller and LED, your circuit is ok for the LED (it will light only when STAT is tied low), but I don't think the uC will like it. When STAT is tied to VCC the voltage can reach 6V, while usually the uC can bear Vcc+0.3V on their pins (so 5.3V if it is 5V powered or 3.6V if it is 3.3V powered). I suggest you modify your circuit in

schematic

simulate this circuit – Schematic created using CircuitLab

I refer to the graph in figure 13 and 14 in the TLMS1000 datasheet. The scheme, with a VDD of 6V, provides you these data:

  • STAT = VDD:
    • voltage at STAT PIN = 6V
    • voltage on the whole LED branch = 0, current in LED = 0, luminosity = 0
    • voltage on ADC is 47/57*6V = 4.95V
  • STAT = GND:
    • voltage at STAT PIN = 0V
    • voltage on the whole LED branch = 6V, current in LED = 2mA, luminosity = 100% of specified luminosity
    • voltage on ADC is 0V
  • STAT = HI-Z:
    • if we estimate a current around 50uA-100uA, the voltage on the LED is not in the graph (the graph goes as low as 100uA). In any case, I expect it to be roughly around 1.5V-1.6V)
    • if the voltage on the LED is 1.5V, the current in the branch is (6-1.5)/(2.2+10+47) = 75uA. The luminosity of the LED is around 2-3% of the nominal luminosity (cannot be seen)
    • voltage on ADC is 47*75uA = 3.53V

If you have a 3.3V microcontroller, to keep almost the same values you can substitute the 10k and 47k resistors with, respectively, a 27k and 33k one. This way the LED will see the same circuit, while on the ADC

  • STAT = VDD: voltage on ADC is 33/60*6V = 3.3V
  • STAT = GND: voltage on ADC is 0V
  • STAT = HI-Z: voltage on ADC is 33*75uA = 2.48V