I am laying out my first full device, a fairly simple sensor-data logger, with these specs in mind:
- I'm running microcontroller and sensor @ 3.3V, with load varying from 10 mA to 400 mA
- device will be powered by a rechargeable Li-ion battery (4.2V maximum)
- battery charged by USB (5V)
- device's Power-On/Off are toggled by a pushbutton hold or upon a battery undervoltage condition (@ 3.2 V).
The below schematic shows the Power-related section of my circuit so far. Note that Microcontroller and Sensor are NOT shown here.
(EDIT: Schematic revised based on @Russell and @Madmanguruman's suggestions.)
Labels: Descriptions of a few of the labels I used in the schematic image above:
- VCC: Voltage (5V) at USB power source used to charge battery
- 3.3V: Voltage at which Microcontroller, sensor, etc. will run
- UC-PIN[1-8]: Various pins of AVR microcontroller, including ADC-capable pin
- REG-ENABLE: Enable/disable Signal sent from output pin of STM6601 IC to the enable-pin of TPS63001.
Short summary of my overall approach: From the battery's supply, a buck-boost regulator provides 3.3V for the uC/sensor. This 3.3V supply is enabled/disabled (PwrON vs PwrOFF) by a specialized controller IC, which monitors for either pushbutton event or battery-undervoltage. USB power is used to charge the battery (whose voltage is measured periodically by an ADC pin on the uC). That's it.
Or more specifically, as you can see above, I am using these four components below (with their datasheet links):
- MCP73871: Battery-charging IC that uses ConstantCurrent-then-ConstantVoltage approach to charge the Li-ion. I set the pins on the MCP73871 to power the charging with USB (5V) with 500 mA current.
- TPS63001: Buck-boost regulator, supplied by the battery, and with a fixed output of 3.3V (Also, I have enabled "Power-save mode" on this regulator to allow higher efficiency for the smaller-load case of my device)
STM6601: Pushbutton-based ON/OFF controller IC
- Initially when the STM6601 detects the pushbutton as held for a duration, then it sends out a HIGH signal, which is connected to the TPS63001, thus enabling it, and bringing the device to life.
- When the STM6601 detects either that pushbutton is held again OR that the battery voltage falls below a 3.2V threshold, then the STM6601 automatically sends out a LOW, disabling the regulator.
- Loadswitch (FPF1008): Controls current going from Battery V+ into a voltage divider
- The divider is used to bring down the battery voltage to within the 3.3V maximum allowed on the microcontroller ADC pin.
- The ADC takes battery voltage measurements periodically, which is mapped to curve of discharge level, for a rough indication to device user.
MY QUESTION: Do you have any suggestions regarding this layout and approach?
I am interested in any feedback you might have. Given my non-experience with any professional layout, I am expecting there are at least a couple of things "wrong"! Or things that could be improved upon; so I'm frankly open to any suggestions that I can learn from, small or big, even if they require me having to re-think/re-build the circuit.
PWREN#
pin, used to let your circuit know when 500mA is available. \$\endgroup\$