Halve Your Processor Power Consumption using Diffusion Capacitance!
Dave demonstrates a neat but tricky technique to PWM a processor's power pin to reduce power consumption.
https://en.wikipedia.org/wiki/Diffusion_capacitance
MIT: http://web.mit.edu/6.012/www/SP07-L16.pdf
Colorado University: http://ecee.colorado.edu/~bart/ecen3320/f99/pdf/ch4_4_5.pdf
Power a micro with no power pins! https://www.youtube.com/watch?v=2yFh7Vv0Paw
Forum: https://www.eevblog.com/forum/blog/eevblog-1384-halve-your-processor-power-consumption!/
Subscribe on Odysee: https://odysee.com/ @eevblog:7
EEVblog Web Site: http://www.eevblog.com
The 2nd EEVblog Channel: http://www.youtube.com/EEVblog2
EEVdiscover: https://www.youtube.com/eevdiscover
Support the EEVblog through Patreon! http://www.patreon.com/eevblog
AliExpress Affiliate: http://s.click.aliexpress.com/e/c2LRpe8g
Buy anything through that link and Dave gets a commission at no cost to you.
Donate With Bitcoin & Other Crypto Currencies!
https://www.eevblog.com/crypto-currency/
T-Shirts: http://teespring.com/stores/eevblog

Hi. Just a quick video to show you a neat way that you can potentially reduce our power consumption in your micro controller products. It has to do with the phenomenon called diffusion capacitance and well, we won't go into the whole physics of it because well, yeah, this is it. Kind of is advanced, uh, semiconductor physics about how it all works, but you're familiar with the normal uh, Pn junction.

Diode of course, has what's called a junction capacitance that's also called transition capacitance or depletion. Capacitance goes by a couple of names, but everyone just calls it basically a junction capacitance. And that's where a diode has a capacitance across it, effectively across its Pn junction. but it actually has to do with uh, you know, the insertion of charges and things like that acting like uh, capacitors.

And there's actually quite a little complex formula here. it is, uh, that actually has to do with that. So yeah, we won't go into details. but another aspect of semiconductors, and especially is that a hair, where did that come from? There's in particular, um, Cmos, uh, processors like you're familiar with.

Now what I've got here is a typical just a Cmos inverter here. and you know we've got our N-channel transistor in our P channel here and that simply forms an inverter. That's how Um, Cmos gates are built and you get multiple ones for those to create and Nand and Nor and Xnor gates and everything else that makes up uh, your familiar micro uh controller these days. But anyway, here's a rough Dave Cad uh, sketch of what it looks like on the uh, you know, the silicon level, The semiconductor level.

Please excuse the crude of the day. Cad didn't have time to build the scale or to paint it. But basically, we've got a P substrate. uh, down here, we've got an N type here, and this is our upper uh mosfet up here.

and this is our lower one down here. And these are the connections outside. So our input goes into the two gates here didn't label those, but goes into the two gates. And then we've got our drain.

uh, our source and our drain. Our two drains are connected in the middle like this, that's our output and source, but basically within the structure itself. You're actually going to have what's called diffusion capacitance inside from source to substrate, drain to substrate, and the N type to substrate as well. And once again, just like our junction capacitance, it has to do with uh, injection of, uh, you know, carriers, your holes, and your electrons, and you know all you carry all your semiconductor physics stuff that you're groaned about when you learn that sort of stuff.

But it has to do with minority uh carriers. And basically when these minority carriers are injected into uh, the neutral regions. and once again, it gets all complicated. But anyway, and then those carriers have to be removed to like turn off the actual Uh transistors.

And of course, they're switching all the time. And of course, the processor contains like millions of these transistors. So they're all switching all over the place. So all these carriers and carriers have been charged and discharged into here.
and it's not a linear uh type thing, it actually is. The formula does actually vary with voltage. It varies with temperature and it varies with uh current as well. and it's just it's all over the shot.

But anyway, there's capacitance inside the chip. That's what I'm saying. So we're going to actually use this diffusion capacitance to do a trick you normally wouldn't do to actually uh, pulse with modulate the power the Vcc up here and rely on the internal diffusion capacitance in here to keep it to keep the processor running while you actually switch your Vcc power supply up here. sounds crazy, but it works.

Okay, so what I've got here is an Arduino Uno compatible, the Freetronix 11. it's quite old, but it has a little prototype area which I've used here, but I've added a Uh power mosfet up here into the Vcc line for those playing along at home. There's the part number Dmp 2305 Done. I just grabbed it out of the bin, good enough for Australia.

So I've connected the drain of that to the Vcc here and the gate. I've actually connected over to D10 over here on the Arduino board. So then the software can actually switch on and off its own power and do that at the Pwm rate, which I think is like 400 and something Hertz or something like that for the Arduino Uno and then on the top side Here, I've actually removed the bypass capacity here. I'll show you the schematic in a minute and basically I'm feeding the output of the mosfet to the power pin, both analog and digital power.

I've actually cut the trace down here. so this is the five volts going in to the analog Vcc and the digital Vcc up here, so we can actually whack a current meter in series with that and measure the consumption of the Uh processor as we switch the power so you can see what I've done here. I've removed the 100n bypass capacitor because you don't want any bypass capacitors in the way we're actually relying on the diffusion capacitance inside the chip to do the business. and we're inserting a diode here because we don't want to back power anything we want to make sure.

Uh, now I haven't done a whole video on back pairing chips, haven't I? Yes, I have. I'll have to link that in anyway. Don't want to back power or anything. We want to make sure we're measuring the current going into the processor and then it just connects through to here.

So the process is actually going to switch its own power, which sounds insane, but diffusion capacitance allows us to actually do this and we're going to get reduced power consumption. It's neat. so I'm powering this just from an external Usb pack. Here, I'm breaking in here with our current meter which is our keysight up here and just to make it actually do something useful, I've got an Lcd here.
The Lcd is not powered from the processor side of those uh tracks. It's powered from the header pins down the bottom. so that's not contributing to the power consumption. So if I switch that on there, we go.

Bingo, we're in. It's just counting so we have like it's just doing something. It doesn't mean anything and I can actually set with the switches here. Uh, the pulse width uh modulation value.

Going to the pins at the moment. it's a hundred percent so that uh chip is not switching so the power is just permanently on. it's working like it normally is, and I'm also going to hook a scope across here. Okay, so at 100 uh Pwm, you can see that we're getting, uh, like, it's nothing.

It's just, uh, permanently on. We're getting about 10 and a half milliamps there, which is about right for an eight less. What is the 16 meg at three to bloody, uh, that? That's that's my power bank. Let's see if it still works When we actually go down.

There, you go. I've just dropped it down and you know, 96. I've just dropped it to X values. It's not a precise percentage, but there you go, Ta-da We are now switching the Up to Bloody Touch Screens 490 Hertz and the diffusion capacitance still allows this thing to work.

We can see you know it's it's dropping down a bit there, but it works. a treat. And then if I change my Pwm again, there you go. A bit bigger, bit bigger 84.

You know it just gets bigger and but it's still working. So let's actually test this with the power consumption. Hundred percent Okay, there's no switching, but once you start switching that Vcc line, it's lowering the power consumption. even though the five volt rail is still.

You know you saw the waveform before. It's not. Actually, it's not like it's dropping it down to 3.3 or anything like that. the internal diffusion capacitance which is making its way back out.

But internally, it's actually. uh, it's going to be significantly different to what we see externally on the scope. But look at this. it's still working and we're lowering the consumption.

Yeah, it's It's fairly linear. Look at that. So, we've halved our consumption by Pwm in this 50, But depends on how much fusion capacitance you've got in there, what voltage you're operating at, what temperature you're operating at, all that sort of jazz. It's going to come and get to a point where you can't Pwm anymore and it's just going to come with gutter.

Are we going to hit that 25? Oh, I double bounced. Wait, no. no. Something's nope.

Nope, No, It's kind of gutsy. Hey, no, it's come again. It's starting to play up. Nope, Nope.

All right. Yep, and there we go. I managed to get, yeah, it's just it's random. yeah, crap.

So it's obviously like the process is still doing stuff again. But yeah, I like they're just garb. they're not. even.
are they part of the characters set? I guess maybe they are. Um, but yeah, you can really see some, uh, bizarre stuff and it just it goes bonkers. Um, as if you've ever tried to, uh, like set up an Lcd and you get your, uh, one of these Satoshi ones and you get your drivers, uh, wrong and they just spew garbage into it and you get your garbage in garbage out. There's a limit to this, so don't expect this thing to work in every situation.

In fact, yeah, I wouldn't recommend you use this in a uh, production environment, that's for sure. But uh, yeah, who would have thought you can actually Pwm a processor's own power supply? That sounds nuts, but it does work kind of where. That's my bloody power bank again. And as I explained, uh, this will not work if you put a bulk uh, capacitance on here.

It's just no. it's just a silly idea to try and pwm the power of a complex device like this. It only happens internally. with the magic of diffusion capacitance.

It's good stuff. Linked in down. Oh, linking some references down below, but it is an interesting phenomenon where you can actually pwm uh, a processor to get reduced power consumption. Who knew? There you go.

Neat, huh? Anyway, if you like the video, give it a big thumbs up. And as always, discuss down below, catch you next time.

Avatar photo

By YTB

21 thoughts on “Eevblog 1384 – halve your processor power consumption!”
  1. Avataaar/Circle Created with python_avatars Matgaw says:

    Hey I don't buy it. Isn't it just because the atmega chip there can also run off of 3.3V and your PWM effectively mimics 3.3V with all the stray capacitance?

    EDIT: oh OK, I see the date you posted this on…

  2. Avataaar/Circle Created with python_avatars Joel Murphy says:

    What a great way to drop mcu power consumption! There's gotta be a jellybean part that will drop in and do this. Killer hack, Dave.

  3. Avataaar/Circle Created with python_avatars runforitman says:

    does this work because, otherwise, the diffusion capacitance is a parasitic capacitance?
    so, by switching, you're using that power instead of letting it go to waste?

  4. Avataaar/Circle Created with python_avatars Mikey says:

    How long does it take you to come up with all of these LIES?

    I usually like your content, but your yearly need to try to deceive people has caused me to watch you much less.

    And generally those trying to "fool" others, are the biggest idiots.

  5. Avataaar/Circle Created with python_avatars David Clawson says:

    Questions:
    1. You could use this to throttle your consumption? Test out the reliability of lower PWM settings if your sketch was doing more or less intensive operations?
    2. Could you use it in a production environment if that application demanded low power consumption- as found in IoT devices?

    I guess one concern would be variability in the processors or other components – setting your code to run at 70% would work on 95% of the devices, but fail on 5%, which would be unacceptable.

    I wonder if there’d be a way to do an internal self test? Do some checking like a counter increment to see if it had lost cycles or something. A periodic self test where it ramped itself down and up a few times and then learned how low it could safely go?

  6. Avataaar/Circle Created with python_avatars xDR1TeK says:

    Bloody hell! You got me. I took a course once that estimates power consumption of ICs based on the caps integrated in chips. So it was almost plausible.

  7. Avataaar/Circle Created with python_avatars mrlithium says:

    This is essentially like underVOLTing your microcontroller CPU. The same thing is possible on desktop, but in a more narrow range. I assume the severity of the actual program running dictates the range of flexibility of voltage drop allowed.

  8. Avataaar/Circle Created with python_avatars TechLifeMAX says:

    Ah ya bastard! I was about to rage comment here, then I read the comments FACE PALM!! (PS, I would like the link to the video on back powering, though….)

  9. Avataaar/Circle Created with python_avatars Knight Sun says:

    DDDDDDDDDDDDDDDDDDDDDDDDave another solar road ways likey thinney to debunk:
    (1326) Solar Powered Electric Boat!! (pt1) – YouTube
    love your video.

  10. Avataaar/Circle Created with python_avatars Valerii Radchenkov says:

    ??? First April video????
    You can just lower the supply voltage below 5 volts. I think arduino can reliably work from as low as 3 volts. Filtering PWM with internal chip capacitance basically averages out the waveform and you will get the same lowered voltage. And you do not need to remove the bypass cap, since it will make the voltage more DC-like and will not hinder the efficiency in any way.

  11. Avataaar/Circle Created with python_avatars mrnuke says:

    Thanks Dave! I love this bit of knowledge. We're implementing this in our next pacemaker, and we're now certain the device will outlive the patient.

  12. Avataaar/Circle Created with python_avatars jamesrosssharp says:

    I wonder if there are small on die decoupling cap structures on the power rails, in addition to the capacitance of the fets themselves that you mention?

  13. Avataaar/Circle Created with python_avatars G C says:

    You should use this technique with a GPU to lower its power consumption and mine Green Innovative Bitcoins. Just remember to store them in a turbo-encabulated wallet.

  14. Avataaar/Circle Created with python_avatars Mike S says:

    I was an electronics tech, we used reverse biased diodes called varactors to tune the frequency of oscillators, I worked on stuff from 400 MHz to 18 GHz or so. As you reverse bias the diode the depletion layer walls grow father apart and capacitance goes down, so frequency goes up. It worked quite well, we had varactors that tuned anywhere from 15V to 60V. Fr = 1 / 2 * PI * SQR(L * C) So yes there is absolutely capacitance in diodes.

  15. Avataaar/Circle Created with python_avatars LaserFur says:

    Given how sensitive processors are to power supply glitches. I would think a better option would be to offset the die voltage. There was a mod that was done one of of the old 8 bit computer era IC's that reduced it's power draw. you had to solder a wire to the gold lid on the ceramic package.

  16. Avataaar/Circle Created with python_avatars Hola! I-BEK Car Electrician says:

    This trick is just for testing, not to be used in real world applications, not secure at all, if power consumption is critical to your project then chose low power part . . .

  17. Avataaar/Circle Created with python_avatars RDS on says:

    Dude this year you got me. Though wondering how can be since you've got brownout way before and how can it turn on anyways in this config – chicken egg issue – but you presented it so seriously that I started to brainstorm 😅

  18. Avataaar/Circle Created with python_avatars Warren Garabrandt says:

    OK, so I get that this is a joke, but if you'll permit me to overthink this…how would that transistor ever get switched on to begin with to allow the micro to power up? Wouldn't it just be dead with no way of turning it on?

  19. Avataaar/Circle Created with python_avatars MrMaxeemum says:

    That goes against all normal conventions where we include bypass capacitors to make sure the supply is constant and to reduce noise. How would this work with processors that have brown out detection? For sure you wouldn't do this for anything critical but interesting indeed.

  20. Avataaar/Circle Created with python_avatars Danilo Đokić says:

    Diffusion capacitance is generally important when the PN junction is Forward biased, thus having many minor carriers in QNR-s.
    The capacitors you have drawn are at the Reverse biased PN junctions: N-well to substrate and N-diffusion to substrate (otherwise we would be having much bigger problems). Therefore they should not be caused by Diffusion type capacitance but rather Junction type capacitances.

    It makes sense to note that those Junction capacitances (especially ones from the N-wells) keep the VCC rail supply powered during the PWM pause. Having many many PMOS transistors, each with it's own N-well multiplies this effect greatly. I wouldn't even neglect the effect of the PCB trace capacitances here. It is obvious that the thing works somehow from your measurements, but I fail to notice how Diffusion type capacitance has an effect here?

  21. Avataaar/Circle Created with python_avatars Michael Kathke says:

    Needed full five minutes to realise… how great. If you had used a 555 instead of the PWM out I think I needed another five minutes… 😉

Leave a Reply

Your email address will not be published. Required fields are marked *