3.7 Advanced charging features

My name is Alvaro Aguilar. I'm a systems engineer with the battery charging group at TI. And like Jeff, I also work on switching charger solutions.
So today, I would like to introduce to you some of the concepts that he touched upon. And there are advanced charging features that will allow us to charge the battery faster, while maintaining high safety standards. First, I'm going to go over some of the same slides that he talked about-- basically, market trends that we have observed in terms of battery charging and what that means for us if we're designing fast charging solutions.
One of the things that Jeff talked about was input power regulation, or the input power limit. And so I'm going to describe how we regulate the input power in our common parts. And then we're going to go ahead and introduce a new feature called input current optimization, which lets us extract more power from an unknown source.
Then we'll move into adjustable high voltage adapters, which Jeff also introduced. And we'll go into the details of how to negotiate with these adapters and what we can gain from that. And finally, I'll just mention a feature of, how do we actually set the input voltage limit when we are negotiating with these higher voltage adapters.
Every time a new phone comes out, it has more features than the previous phone, higher performance, better speed, better screen. You name it, it has it. And in order to support all this, we basically need larger batteries, larger power sources. And one of the things that remains constant is the customer's expectation of how long it should take to charge a battery.
So if we want to keep up with all this performance increase, our battery capacity increase, we basically need to keep up with a high charging rate. And just one of the examples here is a MediaTek processor, which previously was dual-cluster 8 cores. Now, they're talking about tri-cluster 10 cores. And it just shows the amount of computing power that is going into all of these portable devices.
And as we look at that, we see that the manufacturers out there are using the fact that they can charge fast as a differentiation technique. So they're talking about, how much charge can we put in your phone in 15 minutes, and how much better are we than the competitor because of that amount of charge. And so people talk about, OK, during a coffee break, how much can I get? Or if I'm just at an airport, how much can I get?
I think, I noticed a couple of power bank solutions in here. People have this battery anxiety. They're always running low on battery. So the faster we can put charge into that battery, the better.
This is what a complete charging solution looks like. And on the left, we have typically our wall adapter. Or it could be just the USB port. It's our power source.
And we have an adapter that converts that voltage to something that we can use inside the phone. Normally, there's a cable connecting the two. And inside of the phone, we have what we call the charger. So that's our IC, something like the bq25890 that Jeff also mentioned. And that IC is in charge of grabbing the power that this adapter puts out, conditioning it such that we can put it safely into the battery.
If we start over here on the left with our power source or the adapter, the input power is limited. There's always a limitation with these adapters. And there's many different kinds of adapters. And so we need to figure out a way to work with all of them and really maximize the input power, so that we can maximize the output power.
And then inside the phone, we need to worry about converting that power efficiently in order to keep the loss low. And we need to try to do our best to stay in the constant current phase as long as possible. This will reduce the charge time.
One of the key care-abouts as well is to control the user experience. So while they're charging the phone, if they touch the phone, they don't want to get hurt or burned. So we need to try to somehow keep the case temperature low to maintain a agreeable user experience. So for the purposes of this presentation, I'm going to focus mostly on the adapter. And with this whole slew of new adapters that are coming out, how do we make sure we stay on top of maximizing the input power.
In order to introduce how we're going to do it in the future, I'll talk a little bit about how we do it in our current chargers. And that's usually through input current or input voltage regulation. Over here, we have a typical buck converter, which you may have seen in some of the earlier sessions. But really, what a charger is trying to do is it's trying to regulate the charge current. So during most of the time, it's measuring the current going into the battery and regulating that via the switching device, or via the duty cycle.
Once that battery voltage rises up to the predetermined threshold, then we start regulating the battery voltage. And that's how we achieve CC and CV load. So that's all great, if our adapter can provide the power needed. But if it cannot, and we try to draw as much current, we're going to crash that adapter.
So then we need some protections to look at the adapter. And one way we do that is we look at the input current. And we try to regulate it in case the adapter cannot provide what the battery is requiring.
So this is a great method for regulating adapters that we know something about. So for example, a USB port on your computer, you know what that can put out. It's a standard 500 milliamps or 900 milliamps if it's 3.0. Or a known kind of wall wart adapter, you know what that can provide. So as long as we know our input source, we can always regulate the input current as mentioned here.
And that we called input current DPM, or Dynamic Power Management. And it basically limits the input current. And it automatically reduces the charge current whenever the input current limit is exceeded. So it automatically drops down the charge current and provides current for the system as needed. And the benefit of this, really, is that we can maximize the utilization of our adapter without overloading it.
If we don't know anything about our adapter-- there's a whole slew of third-party vendors out there that we may not know what their current capabilities are-- in that case, we can take advantage of what a typical voltage versus current curve looks for those adapters. When you try to draw too much current out of an adapter, the adapter is going to try to self-protect and regulate its output current. As it does that, the output voltage is going to drop. So if we can detect that then, we can essentially prevent the adapter from ever crashing. Because if you try to keep drawing more current, eventually the adapter is going to crash.
Once we start dealing with third-party adapters, or maybe different solutions that we don't know how much current it can push-- something like a power bank or something like that, different vendors or power banks might have different current requirements-- so when we don't know what our adapter can do, we can rely on input voltage limits. And here is the definition. The input voltage DPM will limit the input current as well, but it will do so in order to prevent the voltage from dropping any more. So the benefit of this loop is that it allows us to maximize again the utilization of an adapter with limited overloading. So it prevents the adapter from crashing by overloading it a little bit, essentially.
As I have introduced, the input voltage regulation has a certain limitation, in that, by definition, it overloads the adapter, even if it does so slightly. So it would be great if we could use input current regulation all the time. The problem that I mentioned is, most of the time we may not know what our input can provide.
So for that, we've introduced the feature called input current optimization. Like I mentioned, there are many adapters, many charging ports, power bank solutions that are coming out. And we don't know what they can give us.
So in order to solve this problem, we can start talking about input current optimization. As I mentioned before, the VINDPM loop, or input voltage regulation loop, can cause the adapter to be overloaded for a long period of time. And this will make the adapter run at higher temperatures and higher stresses. So we'd like to avoid this if we can.
And so ICO, Input Current Optimization, complements the dynamic power management loops and is able to determine the true optimal maximum power for any adapter out there, even if we don't know anything about it. So even an unknown input source, we can operate it safely without overloading it.
So the idea is the input current optimizer is an algorithm, which searches for the maximum power point of our source. And it's running in the background, if you will. It's a slower loop that allows us to fine tune that input current limit until we hit the adapter limit really, the voltage limit of the adapter. And this is normally enabled whenever you plug in an unknown adapter. And it runs once, until it finds the optimal point.
And then this routine is sort of out of the way. And you can always rely on the dynamic power management loops to catch you if something else goes wrong. So the VINDPM and INDPM loops are always there. They're a very fast response. And they will always prevent an adapter from crashing. These two loops, they're always enabled if any input source is plugged in.
So I alluded a little bit to this before, but how does ICO really work? And the main idea is that, we looked before at what the voltage versus current relationship looks like for an adapter. And we know that the adapter can provide some current, let's say, some load current of 500 milliamps. So we're going to start there and set that as our input current limit.
And then ICO is going to slowly step through the input current limit values until it detects the adapter is beginning to crash. Once it detects that the adapter has begun to crash on us, or basically that the voltage has reached the VINDPM limit, then we dial back on that current. And we say, OK, this is a true optimal for that adapter. We're running it at the max current without overloading our adapter.
In terms of the host control in something like the bq25890, this really requires minimal host control. Like I mentioned before, whenever you plug in an unknown source, the charger automatically detects that this is an unknown source and automatically runs ICO in the background for you. If you ever want to restart ICO for whatever reason, then you can use this bit to sort of force the ICO, the routine to happen again.
The charger itself will initiate ICO whenever you plug in a source and it cannot determine what kind of source it is. So if it's an unknown adapter, then it'll automatically run this routine. Even if you detect the source, let's say, you're free to run this. Like, let's say you get a 2-amp adapter, you know it's a 2-amp, you're free to run this to basically make sure that it can provide 2 amps.
In this slide, we want to show how the innovative algorithm works in order to find the maximum input power. So like I mentioned before, this routine can identify any adapter capability without overloading. So over here, the top trace, we have the VBUS voltage offset by 5 volts. So whenever you see it reaching this point, that means 5 volts at the input.
We have the system voltage, just to show that you're not disturbing your system while this whole thing is running. And we have the input current, or the VBUS current in blue at the bottom. Right here, the ICO gets initiated. And you can see the input current immediately jumps to 500 milliamps, like I mentioned before.
The VBUS voltage sort of drops on you but drops by a little bit. This is resistive drop across the cable. You can see that by increasing, what the ICO is going to do is going to keep increasing the input current limit.
And every time you do that, the VBUS voltage is going to start dropping on you linearly. This is expected, because there's a finite resistance in the cable. As you draw more current, there's more voltage drop on that cable.
But there comes a point when you can clearly see the adapter is starting to crash on you. So at this point, the adapter has reached the VINDPM threshold. And we detect that.
What the ICO does is it says, OK, it's time to dial back on the current now. And so it dials back by, really, in this case, it was one step. But it could have dialed back by a couple of steps-- whatever it takes in order to release the adapter from the VINDPM routine, essentially.
So at this point we say, OK, ICO is done. We've actually found our adapter capabilities, 850 milliamps. And what's interesting here is that this adapter was rated at 750, but ICO actually found a slightly higher current limit.
And this could due to tolerances in the adapter being different. You buy a 750-milliamp adapter. Some of them are going to be below. Some of them are going to be above that limit. And you can actually withstand some overloading on that adapter.
The other thing that's interesting is that this whole routine in this particular example took 300 milliseconds. Depending on your VBUS and VBAT settings, it might take longer or shorter. But the key point is that the time that the adapter gets overloaded is very short. So you minimize adapter overloading.
And then after that, you're done. You've optimized your input current. And you're ready to continue charging normally.
There's various ways of setting the input current limit. One of them is ICO that I just mentioned. It can kind of step up through the input current until it finds the optimal point.
Another one is to use the IINLIM register. So this is an I2C register that you can write to and say what you want for an input current limit. And the last one is to use the ILIM pin. And so that is a programmable pin, where you put a resistor to ground and just there is some gain on that resistor. And you pick, basically, what the input current limit should be.
Now, this slide is just to show that no matter what adapter you have, or if you're running ICO or not running ICO, you will always use the lowest of your input current limit settings. So we'll just walk through a couple examples. Let's say you plug in a 5-volt, 3-amp ramp adapter, but your ILIM pin is only set to 2 amps.
Then essentially, input current limit is going to run. It's got to try to find the optimum. And then it's going to finish whenever it reaches 2 amps, because your ILIM pin is clamping it to 2 amps. The same scenario will run with the IINLIM register at 2 amps, produces basically the same result. Except now, it's clamped by the IINLIM register.
And then this right here is kind of the example that we discussed before. It's like you have a 5-volt, 1.5-amp adapter. None of your other settings are sort of limiting you. And so ICO is going to run, and it's going to find the optimal at 1.5 amps.
And the last scenario, which we could cover, is that you have an input power source. And none of your pins are limiting you, but your charge current is too small. So your output power is less than what you need at your input.
In that case, ICO is never truly going to find the optimum for your adapter, because it doesn't need the power. It cannot use that power. The register is going to read 0, like it's still trying to find the optimum. And your actual input current limit is just going to be whatever the lower one of these two are.
With that, I'll go over this slide quickly, which Jeff also introduced. But basically, we have an input power limitation. Input power is equal to voltage times current. If we want more power, we can either increase the current.
This incurs some losses on the cable. There's some fixed resistance on the cable. I squared R losses means that, if you double your input current, you're going to quadruple the losses in that cable.
So in general, we would prefer to not do that. We would prefer to not re-engineer our cables to deal with this. So we prefer to increase the input voltage and keep the constant current. This is basically why we use high voltage transmission lines. It's the same idea. And we're just applying it here.
So just a quick introduction. What is an adjustable high voltage adapter? This is an adapter that upon plug in looks like a regular USB port. It provides 5 volts for backwards compatibility. But after negotiating with the charger inside of the phone, the adapter can raise its output voltage to provide higher power.
In general, I'm going to talk about three negotiation schemes that can be used with our parts. The first two broadly can be determined to be a coarse VBUS voltage regulation, or what Jeff alluded to before as being a 5-volt, 9-volt, or 12-volt adapter. And these can be controlled either through pulsing or input current-- so the adapter can detect a certain sequence of input current pulses and say, OK, you're ready for 9 volts-- or via the D plus/D minus kind of voltages being fixed at some setting. So the adapter knows that, if you put 3 volts on D , that means you want 12 volts, for example.
And at the last method I'm going to introduce is fine VBUS control. So you can finally tune your VBUS voltage by using what we call continuous D plus/D minus voltage control. So you continuously are programming the D plus/D minus lines to tell your adapter what VBUS voltage you want.
The input current pulse modulation, basically the way this works is the charger indicates to the adapter to increase the VBUS voltage by using a very special sequence of input current pulses or by modulating its input current. So this can control VBUS to jump between 5, 7, 9, and 12. It depends on your adapter capabilities and whatnot, but those are, in general, the steps that you can take.
For this particular method, the bq25890 family offers 3 bits to control this whole interface. The first bit is called Enable PUMPX for pump express. And this just enables the interface.
And the second 2 bits are either to ask for a voltage increase or voltage decrease. So if you just look at what you need in terms of connection between the adapter and the charger, all you need is VBUS and ground. You don't need any more communication lines.
In particular here on the right, we can see the VBUS voltage in blue and the input current, or the VBUS current, in green. And you can see that a very specific protocol-- or a very specific, you can think of it as sequences of 1's and 0's-- is being essentially communicated to the adapter. And that same routine gets repeated every time if you want higher voltages.
So we'll look at that in a little bit more detail here. Every time you send the pump express up bit rate, you would go through this sequence. And you can set it to request higher, higher input voltages.
And when you get to the limit of your adapter, even though you could keep sending this command, you're still not going to get higher voltage. And if you want to reduce your input voltage, then you could send the enable pump express down bit. So that's a different sequence of 1's and 0's that allows the adapter to know, hey, you're requesting a lower voltage.
Why is the input current dipping when you move to 12 volts? So this is basically dictated by what your charge current is. You have a fixed charge current, presumably, during this whole time.
And so now, you move to 12 volts, you need less input current in order to provide the same output power. So there's a slight dip here whenever you move to higher voltages. And this dip should be-- basically, even in the 9 volts, you can see a little bit and when you move to 12 volts again.
The important thing is that the 1 is recognizable from the 0. And there's specs for that and the MediaTek thing. Basically, the adapter needs to be able to differentiate between these two levels. It doesn't actually matter what the high level is, so long as the adapter can actually tell it's high.
So the second method that I want to introduce is what I'm calling the simple D plus/D minus control. And in this case, the charger inside the phone would indicate to the adapter to increase the VBUS voltage by using the D plus/D minus lines. And this can allow a VBUS of either 5 volts, 9 volts, or 12 volts.
And in order to control this, we've included 2 bits in the 890 family. And what you see here on the right is a negotiation for 9 volts. And to achieve that, you would first enable the high voltage DCP adapter interface and then set the other bit, called Enable 12 volts, you would said that the 0. And that would produce a 9-volt input. If you set it to 1, you'd get 12 volts.
And so what you need, in terms of connection between charger and adapter, is both power ground, but as well as D plus/D minus lines. So we'll look at this in a little bit more detail right now. So we have a pin, which we called a D selector. This pin is used to let the system know that we've taken over the D plus/D minus lines and that we're using that to basically communicate with the adapter.
So you can see here, when an adapter gets plugged in, the first thing that happens is we try to identify this adapter. So that's this sequence right here. So we try to determine, hey, is this a high-voltage adapter, is this a 2-amp adapter? We try to do all that negotiation basically right here.
And then further down in time, we do the high voltage negotiation. So this bit right here is what is getting controlled by this interface. I mean, all this other stuff is always going to happen. Regardless of what adapter you have, you're going to try to negotiate it with it to see what the input current limits are on that guy.
So you can see here, a very particular sequence of D plus/D minus voltages get you 9 volts. And a different sequence there asks for 12 volts. And basically, so long as you want to maintain 9 volts, or you want to maintain 12 volts, you need to keep those voltages there. If those voltages go away, then for safety concerns this voltage drops back down to 5.
This whole negotiation is a whole lot shorter. This whole time span is 400 milliseconds per division. And so you can see that you can jump from 5 to 12 much faster than with the pump express method that we talked about before. And in terms of control, there's a minimal requirement. There's really only 2 bits to control the whole interface in the 890 family.
So just to summarize what these 2 bits can do for you, essentially you have 2 bits to either ask for 9 volts or 12 volts. And the difference is what happens at each of the D and D- pin. So you either source voltage or sink current on each one. And that tells the adapter, hey, he wants 9 volts, or he wants 12 volts.
To reiterate, this is a very simple interface. The negotiation with the adapter is quick. And it happens by default at startup. And then renegotiation can be done later at any time basically by using a third bit, which we call the FORCE D , D- bit.
The last method I'd like to introduce is called continuous D plus/D minus voltage control. So in this case, the charger basically continually changes D plus/D minus voltages in order to communicate with different adapters. So this allows fine-stepping on VBUS voltage, depending on your adaptive capabilities.
And in terms of the host control, this requires a bit more of host interaction, because what we give you is the flexibility to program the D voltage and the D- voltage using 3 bits for each one of those. So you can program different thresholds and communicate with different adapters, which may have different protocols. And this is a truly flexible solution, in that it allows the host direct control of the D plus/D minus lines. And timing, obviously, the host has control of the timing in order to negotiate with a whole slew of different high-voltage adapter protocols.
Again, what you need for this is you need a charger which has this interface enabled. In particular, the 890H is one of those chargers, or the bq25898 as well. You need to the VBUS-- obviously, we need power and ground-- and the D plus/D minus lines.
So this is what one of those transactions may look like. And depending on your protocol, these values would all take meaning essentially. But you would start with 5 volts with adapter as normally.
Then you would set D and D- lines to a particular voltage using this option of voltages for each one. So depending on your adapter, you would choose what D plus/D minus to set to. That would lead the adapter know that you want to enter what we call continuous mode.
Once you are in continuous mode, then a toggle on the D line would indicate you want higher voltage. And that would cause the adapter to raise its voltage by some delta V. And that delta V, again, is defined by your adapter and the protocol that you're following.
And so you can toggle D plus/D minus, wait for a little bit, then toggle it again. And this would cause your input voltage to be raising continuously. Or you can toggle the D- line and ask for a decrease of VBUS voltage.
This allows you to fine-tune your VBUS voltage. But it's a truly flexible solution. So the host needs to basically keep track of what voltages to set on the D plus/D minus line and, more importantly, the timing-- the timing requirements to follow, in order to communicate with that particular adapter.
So what is the benefit of that? Why would you do that versus using a 12-volt adapter, like a fixed 12-volt adapter? One of the key things to keep in mind is that, whatever VBUS you select is going to define your charger efficiency and your power loss. This is because-- as Jeff mentioned before-- you have some conduction losses in your device, but there's also some switching losses in a buck converter. So as you move the input voltage, those switching losses are going to move on you.
And so I've plotted here on the right the charge efficiency-- let's just follow the 3-amp curve-- of different VBUS voltages. So you can see that maybe at 5 volts, you couldn't even achieve 3 amps depending on your source capability. But let's just say you have to move to 9 volts. Then at 9 volts, your efficiency is going to be a little bit higher. Great.
But why would you be inspired to move to 12 volts? There's really no need. And it's really useful to see this curve to make that decision. And then what fine-tuning allows you to do of that VBUS voltage is it allows you to find your maximum efficiency point.
So you can see here that, if you could charge it 3 amps with, let's say, 7 volts, that would be very close to your optimal charging efficiency, or in other words, your lowest power loss. And if we're talking about what really matters when you're trying to keep the phone from overheating while you're charging it, is you just want to bring these watts down. You don't want to dissipate more watts than you need.
So if you had a thermal budget, like a fixed thermal budget, let's just say, of 1.1 watts inside of your phone, you can see that you could produce a different curve and try to find, OK, what's the maximum charge current that I could push? And what voltage would I require to push that max charge current? So the fine VBUS control allows you to finally tune the charge efficiency and charge faster and cooler while doing than that.
And finally, to circle back to Upal's question on VINDPM for these high voltage adapters, basically, the method that we may all be accustomed to, like I mentioned, is VINDPM is a programmable thing. So you can just set whatever VINDPM you want. And we call that the absolute VINDPM setting. We offer 7 bits to control that. And it's a wide range of input voltages that you can regulate to in 100-millivolts steps.
So just picture this scenario over here on the right. You plug in a 5-volt adapter. Then the default VINDPM of 4.3 works for you. No need to do anything. Then you plug in a 9-volt adapter. I've circled here is bubble 1.
The charger automatically negotiates to 9 volts. But bubble 2 means you, the host, need to somehow change these VINDPM thresholds. How are you going to figure out what VINDPM to set? You need to know what your adapter is. Like, you don't know if it turned into a 9-volt adapter or a 12-volt adapter. You don't know that yet.
So one of the methods that you could use is, try to reduce the drop across the cable. So in order to do that, maybe you set your input current to a low setting. And you measure VBUS. So you read the ADC measurement that we give you. Now, you know what VBUS is.
Then you set your VINDPM accordingly, let's say half a volt below whatever you measured, for example. And repeat this every time an HVDCP adapter gets plugged in. That's one way you could do it. So then for 12 volts, you would repeat the same thing.
The second way, or the new feature that we've added, is we call it relative VINDPM. And essentially, what is happening is the charger is doing all of this for you automatically. Whenever you plug in a 9-volt adapter, we request 9 volts.
And then the charger does all of this. It sets the INDPM load. It reads the VBUS. And it automatically sets the VINDPM to some offset below that VBUS measurement. And that offset is programmable with this bit in the 890 family, the VINDPM offset. You can take your choice of using either the relative VINDPM, which is all automatically done, or using the absolute method, in which you would go in and set the settings yourself.
So just to recap, the VINDPM allows two different ways of working basically. One is you lead the charger do everything. This is the default method. And it sets the VINDPM to some programmable threshold below the VBUS, the actual VBUS.
And the second is absolute VINDPM, in which you, as the host, keep track of the VBUS voltage changing. And then you move the VINDPM setting around as needed. So the adapter gets plugged in. The voltage gets negotiated. All of this is done by the charger.
Then depending on if you want relative VINDPM, we move up here. And the charger does all of this-- automatically set that VINDPM for you and then starts switching. If we move down here, then basically, the host needs to figure out a method to set the VINDPM to correct value.
Finally, I would just like to introduce-- I've been mentioning a lot about this 890 family. This is the first family where we put a lot of these features in there. So this is a 5-amp charger nominally. Jeff mentioned there's a lot of different variants to it.
But I'll just focus on the 5 amp is a QFN. And 4 amp is a WCSP version of it. And I'll focus here, one of the main features is, you can do the current pulse control in order to do the VBUS negotiation.
And you can support D plus/D minus detection just in order to know, not only what your adapter can handle, but also if it's a high voltage adapter and to negotiate the voltage with that adapter. And the other thing is that it has the automatic input current optimization algorithm in order to find what your source can really provide, even if you don't know anything about that source.
In summary, we've seen that mobile devices are requiring higher and higher charge currents in order to keep up with the battery capacity. In order to meet that demand, we need to figure out how to get as much power from the input as possible. Input power is always limited. We need to try to get as much of it out as we can.
Input current optimization allows us to find the input level, or the current level, for any adapter, even if we don't know anything about it. So it'll will find an unknown adapter's current capability without host intervention. So the host doesn't need to do anything.
High voltage adapters allow a different avenue to increase input power. And basically, we talked about three methods of controlling the VBUS voltage. The input current modulation, and the simple D plus/D minus pin voltage, these two require minimum host interaction. And they can do coarse jumps in VBUS voltage.
The last one is called continuous D plus/D minus voltage control. This one allows you to fine-tune both your VBUS and your efficiency but requires moderate host intervention. And finally, we talked about how relative VINDPM can be used again to reduce the host intervention whenever you're dealing with these high voltage adapters. So that is it for my talk.

Description

December 1, 2016

This presentation discusses the proper use and programming of new functions for high performance battery chargers such as "Input Current Optimization," "relative VINDPM," "Programmable D+/D- Handshake," etc.