Bus Accelerator For Energy Reduction

Hello,

I read your article Increase I2C or SMBus Data Rate and Reduce Power Consumption with Low Power Bus Accelerator, however I couldn't find any actual numbers on how much power is being saved using a bus accelerator. We are working on a wearable, which would have 4 devices on I2C bus, including a heart rate monitor and accelerometer, both of which will have ODR rate 100<, thus we were looking into using bus accelerator for energy reduction when reading the sensor data. Do you have any calculations / tests showing how much energy would actually be saved instead of using a pull-up resistors of e.g. 2.2 kOhms.

Parents
  • +1
    •  Analog Employees 
    on Mar 25, 2021 4:44 PM

    Hi Montea, 

    For a wearable with 4 devices, its probably the LTC4311 that would be interesting for your application. That device will add rise time acceleration to the bus, nothing more. 

    Every device on the I2C bus is open collector, which means they can either pull low or do nothing. So the bus needs pull-ups to create the high state on the bus. Without rise time acceleration, we have to size the pull-ups to make an RC fast enough to meet the minimum rise time requirements. With rise-time acceleration on the bus, we need to meet the minimum slew rate required to trigger the rise time acceleration circuitry. The RTA injects a controlled amount of current to bring the signal up. 

    The I2C signal is essentially wasting system power whenever the signal is low and there is current being sunk through the pull-ups. One of the big benefits to include rise time acceleration is that we can meet timing specs with much weaker pull-ups in place. 

    The power savings are going to be dependent on how much time the bus signals are spending in the low state. You will need the parasitic capacitance to figure out the weakest pull-up that can be tolerated (go through the equations in the LTC4311 datasheet). 

    Regards,

    Jason

       

  • Hi Jason,

    Thanks for the answer, that explains the mechanism very well. I suppose though that another factor to consider is switching current between low-to-high states, which should be larger without using the accelerator, since the bus capacitor has to be charged through the pull-up resistor? Although the magnitude should be a lot smaller than when the line is pulled LOW.,

    Regards,
    Montea

Reply
  • Hi Jason,

    Thanks for the answer, that explains the mechanism very well. I suppose though that another factor to consider is switching current between low-to-high states, which should be larger without using the accelerator, since the bus capacitor has to be charged through the pull-up resistor? Although the magnitude should be a lot smaller than when the line is pulled LOW.,

    Regards,
    Montea

Children
  • +1
    •  Analog Employees 
    on Mar 29, 2021 2:12 PM in reply to Montea

    Hi Montea, 

    When the bus signal begins to rise, the current is flowing through the pull-ups. As soon as the VTHR level is crossed, the LTC4311 injects a controlled amount of current and drives the bus up to ~VCC-0.4V. Then the pull-ups take the signal the rest of the way up to the rail. This is making it possible to meet timing requirements with whatever pull-up value is chosen. 

    The bus will be charging and discharging the parasitic capacitance from the traces and I/O with or without the RTA. Careful layout might reduce the portion of parasitic trace capacitance some, but I imagine this is a very small device.

    The power savings of the RTA are coming from the signal low time. With only 4 devices, small layout, I'd would guess moving from 2.2k to 10k pull-ups is not an issue. That will drop the power consumption of the pull-ups to 1/4 during the signal low times.

    The LTC4311 is fairly easy to integrate into an existing circuit to experiment with. I have seen Adafruit makes a very small and simple LTC4311 board if you are in the early prototype phase of the design. 

    Regards,

    Jason  

  • Hi Jason,

    Thanks for the explanation, I will take a look at buying the adafruit and do some testing with it :)

    Regards,
    Montea