Add current boost to a USB charger

The popular USB interface can charge a portable device while transferring data. But for high-capacity batteries, the 500-mA output current of USB hosts and powered hubs greatly extends the charging time. (Unpowered USB hubs supply no more than 100 mA.) Thus, a system that accepts charging power from an ac adapter as well as the USB port is more convenient. Such a system can charge from a notebook USB port when you‘re traveling, yet can charge faster via the adapter when you‘re at home or in the office. An external transistor current source adds dual-input capability to a single-chip lithium-cell charger (Figure 1). The chip, IC1, operates alone when you connect to USB power and allows you to pin-program it for a maximum charging current of either 500 or 100 mA. When you plug in an ac adapter, which the 600-mA components set, the external-transistor current source, Q2 and Q3, turns on and sets IC1‘s charging current to 500 mA. Because IC1 and Q2 both charge the battery under that condition, the total charging current is 1100 mA.

Q2 and Q3 form a current limiter for the ac adapter. The limiter allows Q2 and R1 to pass the additional 600 mA. When the voltage drop across R1 exceeds that across R2, which R2 and R5 set, Q2 begins to turn off. Q2 cancels VBE, enabling R1 to more accurately set the maximum current. Voltage across R3 sets the reference voltage, and the output current limits when the voltage drop on R1 matches the voltage on R3. Q3should have a beta higher than 200 at 1A, so that IC1‘s  pin can sink enough current to turn on Q3. High beta also minimizes error in the transistor current source. When IC1 changes from current mode to voltage mode at approximately 4.15V, IC1‘s  output turns off the transistor current source. IC1 remains on and finishes off the taper to full charge. It also remains on and continues to function when USB power is gone and only ac power remains.

IC1 also controls the prequalification current, which is the current level necessary to safely recover deeply discharged cells at low battery voltage. The  output assumes a high-impedance state during cell prequalification to ensure that the external current source remains off, and that the prequalification current of approximately 50 mA comes only from IC1. When you plug in the ac power, Q1 turns off to prevent back-feeding the USB input. You install Q1 "backward" with the drain connected to USB input side, so that USB power remains connected to the IN pin (IC1 pin 4) via Q1‘s body diode, even when Q1 is off.

时间: 2024-10-30 21:09:03

Add current boost to a USB charger的相关文章

USB VBUS/ID Detection

1,Reference designs use the PMIC to handle VBUS pin detection; the SMB hardware detects the charger type.?2,After the SMB358 completes detection, the charger type is passed to the USB PHY driver. The PHY driver notifies the SMB358 of the current draw

debian下使用dynamic printk分析usb转串口驱动执行流程

看了一篇文章<debug by printing>,文中提到了多种通过printk来调试驱动的方法,其中最有用的就是"Dynamic debugging". “Dynamic debugging"的官方文档:http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/dynamic-debug-howto.txt?id=HEAD "Dyanmic de

默认设置USB模式为MTP模式

主要修改的是UsbDeviceManager.java里handleMessage(),控制mUsbDataUnlocked 的值 @Override public void handleMessage(Message msg) { switch (msg.what) { case MSG_UPDATE_STATE: mConnected = (msg.arg1 == 1); mConfigured = (msg.arg2 == 1); mUsbConfigured = mConfigured;

Boost.Asio c++ 网络编程翻译(24)

异步服务端中的多线程 我在第4章 客户端和服务端展示的异步服务端是单线程的,所有的事情都发生在main()中: int main() { talk_to_client::ptr client = talk_to_client::new_(); acc.async_accept(client->sock(), boost::bind(handle_ accept,client,_1)); service.run(); } 异步的美妙之处就在于把单线程变为多线程的简单.你可以一直保持多线程知道你的并

LeetCode 282: Expression Add Operation

Note: 1. When real index is 0. It will be only add as first element without any opeartors. 2. When the starting char of one layer is '0', it should break since it could not be 01, 02, 03...... class Solution { public List<String> addOperators(String

boost.log(七)再谈过滤

再谈过滤 我们已经在前面的章节接触过滤,但只是浅尝辄止.我们现在能够添加日志记录并设置接收器的属性,我们需要建立复杂的过滤功能.让我们看下这个例子: #include <string> #include <fstream> #include <iomanip> #include <boost/log/core.hpp> #include <boost/smart_ptr.hpp> #include <boost/log/sinks.hpp&

ios 原生应用调用untiy 3D 模型_--&gt;Add Unity3D in a native iOS application

http://www.the-nerd.be/2014/08/06/add-unity3d-in-a-native-ios-application/ The problem For a project I need to implement an augmented reality feature inside a native iOS application.  We chose to go with Unity3D and Vuforia to do the augmented realit

Android USB API获取设备信息失败问题

在华为荣耀的盒子验证openni的程序,发现orbbec的3d摄像头一直无法使用,一直卡在 设备找不到的提示. 开始从下面2个方面验证:1.验证openni的本身自带的SimpleRead程序,看看是否正常读取到设备信息和depth 图.2.验证Android层usb权限控制问题. 经过验证发现openni自带的c++的可执行程序,可以正常读取到设备信息和depth 图.由此推测 orbbec 3d的驱动和openni的这块部分没有什么问题.问题可能出在Android层的usb权限和获取设备信息

Simplest Doppler Radar System

Introduction I've for some time now wanted to do more RF design. Although I have taken some RF design courses, I haven't actually made a single RF design before. But you can't learn without doing and inspired by the MIT coffee can radar designed by G