Amongst my many mental issues, one is that I can’t help fiddling around with electronics. I bought a six port USB charger which has a little display on the front that rotates through the six ports, showing the current being delivered by each. According to the spec it should be able to put out 8A across all ports.
I noticed that when it was delivering full current (about 2.4A) to a port, the voltage was at best barely sufficient (4.70v or so) and more sensitive devices (eg Apple devices) would say “nope” and refuse to charge. So I assumed that despite the supposed spec being for 8A, the power supply must actually be so crap it couldn’t cope with 2.4A without the voltage dropping off. But then I found that it could quite easily deliver 2.4A across several ports at once, without dropping any more voltage ie all were at around 4.7V. Hmmm.
So I opened it up and found that the problem is basically the current sensing resistor on each port. The power supply is easily maintaining about 5V across the rails, but the current sensing resistors are 0.1 Ohm, meaning that at 2.4A they are dropping about a quarter of a volt (not to mention absorbing about 0.6W).
So then I opened up another similar 6 port USB supply I have and it also used 0R1 current sensing resistors.
It seems way too high a value for a current sensing resistor to me. Not only are they dropping the voltage, they are absorbing more power than any tiny SMD resistor should be asked to absorb. You could cook a (very tiny) egg on them when you are charging an iPad.
Does 0R1 sound wrong to you? Or is there some reason why the current sensing resistors have to be such a high value?
The USB spec allows a drop of about a half a volt, so a 1/4 volt drop is well within spec. The spec says 5 volts +0.25 and -0.6 or -0.55 depending on which version of the spec you are looking at (-0.55 for USB 3.0).
Technically Apple isn’t conforming to the spec if it won’t charge at 4.5 volts. Apple is just going to tell you to buy an Apple charger if you complain though.
The lower the resistor value, the more precise your voltage measurement across it needs to be to accurately measure the current.
They make surface mount resistors that can easily handle a lot more than half a watt. Of course, these do cost a little more.
As usual, everything comes down to cost. If you are making thousands of things, a few cents here and there really adds up quick.
What I’m reading says that the spec is 5V +- 5% which would be 4.75-5.25V. Except for low power devices but that shouldn’t be relevant to a charger that says it can put out 2.4A.
Understood re greater voltage drop for greater accuracy but given that the current indication is only two digit (0.1A) that doesn’t seem like a consideration. Particularly given that it’s persistently about 0.1-0.2A wrong by my measurements anyway!
I’ve solved the problem by altering the resistors in the divider that controls the feedback in the power supply to bump up the rail voltage by 0.1V which seems to do the trick.
But just curious about the decision to use such a high value on the CSR.
A regulated power supply should regulate the voltage after the CSR, not before. Of course, this would mean using six, individually-regulated voltage sources (each with its own output CSR) instead one regulated voltage source with six output CSRs. Without knowing more, it sounds like a bad design.
I don’t think 0R1 is inherently strange or bad: I think it sounds kind of normal. Smaller than that, and you’re into diminishing returns, where the copper tracks are the same resistance, just less temperature independent.
We’re using 5 .005 Ohm current sense resistors to make a 0.001 Ohm current sense element, so I’ve spent some time thinking about the different options (we also wanted to spread it out, so that it didn’t get too hot). There are fewer options below 100 mOhm, indicating that for a lot of people, 0R1 is the sweet spot.
Yeah I don’t really begrudge that, given that we are talking about a crappy cheap Chinese unit. I guess I’m just surprised because even say a 0R05 would reduce the voltage loss and power loss by half which would be a major improvement in context. And it would make no real difference to the accuracy given it isn’t aiming for much accuracy anyway. And wouldn’t cost more.
???
The resistance of a 3mm copper trace on standard 1oz board, of about the same length as the track in question (about say 10mm) is about .00165 or two orders of magnitude less than 0R1?
If the resistance value is too high, you’ll have problems.
If the resistance value is too low, you’ll have problems.
As mentioned by Melbourne, there will be an optimal value for a given application.
if the resistance value is too high, the shunt will dissipate a lot of power, resulting in its temperature being high. This decreases the circuit’s efficiency, and it means you’ll need to figure out way to deal with the heat. And because the shunt’s tempco is never zero, it means the actual resistance value will be different from what you think it is, resulting in systematic error. There will also be a large voltage drop across it. Unless the supply is regulating the voltage after the shunt, it means the output voltage will be lower than what you probably want, and it will vary with load resistance.
So the solution is to use a shunt with a very low resistance, right? Well there are problems there, too. The voltage across the shunt will be very low, and measuring a low voltage is hard to do. And the lower it is, the harder it is to measure. If you use a standard voltmeter to measure it, it means you will be measuring it at the very low end of the range, and you’ll run into SNR issues. In other words, lots of noise. You can try and fix this problem using a DC voltage amp with high gain. But then you will run in to stability issues. And even if you fix all of these problems, there is the problem with voltage offset errors due to temperature gradients and dissimilar metals, a.k.a. thermal offsets. And as the voltage across the shunt gets lower and lower, the thermal offset problem becomes greater and greater.
Understood but aren’t you talking about really accurate metering? In other words, for something that is only relatively crudely measuring a range from 0.1 to say 5 amps in 0.1 increments, would it really have hurt to use a 0R05 shunt which would give voltages from about 0-0.12V rather than 0-0.24V?
The required uncertainty or tolerance of the current reading will dictate the resistance value and tolerance of the shunt, the power rating and tempco of the shunt, how the voltage across the shunt is measured, etc. But as mentioned above, there are additional things that must be considered, such as: how will the mere existence of the shunt affect the output voltage? Regardless of the current measurement accuracy, if the feedback for the regulator is “before” the shunt, you could have problems. (Of course, the lower the shunt’s resistance is, the less of problem this is.) A quality power supply will monitor the voltage at the output terminals.
Thanks. Are you able to answer the question in my last post? I know the background I really do. Are you able to consider the quantitative question I put in my last post?
Oh, sorry about that. Yes, I agree that a 0.05 Ω shunt would probably be fine. At max current (2.4 A) the voltage across it would be 0.12 V, which can be easily measured. But I am guessing the current readout is simply a voltmeter where you can configure the location of the decimal point. So if you use a 0.1 Ω shunt, and the voltmeter measures 0.11 V, then all it has to do is shift the decimal point over to the right one place (1.1 V) and then display an A instead of a V (1.1 A). This is how a lot of those cheap current displays work: the decimal place will shift based on the location of a jumper. It gets more expensive when the math requires something more than simply changing the location of the decimal point, i.e. when it’s not a factor of 10.
Here’s my guess one why they are using such large resistors: cost.
If you can tolerate a 240mV drop, then you can get away with an 8 bit ADC with 1.25v reference, and be able to measure to about 5mV, or 50mA of USB current. The integrated ADC and reference in a micro-controller is sufficient.
If you want 1/10 that much voltage drop, a differential pre-amplifier is required, and that might cost as much as the processor itself.
What we needed was / is a small low-cost mass-produced 100A surface-mount current sensor at 1%. The difficult parts were heat dissipation and thermal offset.
Yes, I was talking about the general case for 0R1 sense resistors - and reaching a bit. You don’t really need a factor of 100, just ‘better than 10’ is usually enough.
My contacts are about 25mV, my switching elements about 25mV, my sense element about 25mV and my tracks about 5mV – but my tracks are connected directly to my sense element, and are part of the temperature problem.
When you say “temperature problems” do you mean power dissipation problems?
I did a motor control board that used 180A SMT FETs, but I had to use 3oz copper and lots of vias to tie the font and back planes together. Getting 100A to a SMT device is not easy.
It is a power-sensitive and voltage-sensitive application and is operating at close to temperature limits. It has a voltage problem and a power problem and a dissipation problem.
And a switching noise problem and a voltage breakdown problem and a cost problem and a size problem … there has been some thought put into optimizing the solution while not exceeding any of the limits.
Measuring 100 A on a PCB with SMD components is definitely tricky. If you use a copper trace as a shunt resistor, i.e. by measuring the voltage drop between two ends of a copper trace, I would recommend the following approach:
Using well-known formulas, design the trace (width, length, thickness, etc.) to get the resistance you’re looking for.
Fabricate the trace onto a PCB.
Measure the actual I-V relationship using a calibrated current source, and program this curve into a microprocessor on the board. For bonus points, characterize the trace’s I-V relationship at various ambient temperatures, and use a SMD thermistor - mounted next to the trace - to measure its temperature. The microprocessor will then take ambient temperature into account, too.
The above would work fine for steady-state DC. You would have to do more work to characterize the shunt’s I-V relationship if you need to accurately measure AC or rapidly-changing DC current. At that point you may want to consider a hall effect sensor instead of a shunt.