This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Less power usage: SPI or I2C?

1 sensor per nRF51288.

Sensor supports either 400kHz I2C (10k pull up recommended) or SPI (2MHz typ, Max 20 MHz)

From the nRF51288 Product Specification:

Run current for SPI master at 4 Mbps. 200 μA

Run current for TWI at 400 kbps. 400 μA

So the run current for I2C is more than double and it is also slower, thus longer on.. right?

Is there anything else that could influence the power usage? (Power on/off etc.) Or can I safely say:

SPI uses less power than I2C?

What does HW/SW controlled mean?

Parents
  • Yes, it looks like SPI take less power than I2C. What HW/SW control are you relating to, it is for I2C? Nordic provides Hardware TWI module and its drivers but it can be purely done by bitbanging through the software. The driver for software control is located at components\drivers_nrf\sdio. This does not use any other resources other than CPU time and GPIO pins (and ofcourse RAM to operate).

  • Yep, I was referring to these developer.nordicsemi.com/.../a00014.html I need to calculate how much of an impact on power consumption i2c would be compared to spi.. There won't be that much communication.. I am more confused how to make it happen shortly before each connection to the central.. probably It would work something like this:

    e.g. connection interval 4 seconds. after the connection the peripheral starts a timer which then counts to "interval minus <time needed for measurement+buffer>" and then starts the measurement again.. Any reading matter suggestions? It shall be a self-contained system of 4peripherals and 1central.

Reply
  • Yep, I was referring to these developer.nordicsemi.com/.../a00014.html I need to calculate how much of an impact on power consumption i2c would be compared to spi.. There won't be that much communication.. I am more confused how to make it happen shortly before each connection to the central.. probably It would work something like this:

    e.g. connection interval 4 seconds. after the connection the peripheral starts a timer which then counts to "interval minus <time needed for measurement+buffer>" and then starts the measurement again.. Any reading matter suggestions? It shall be a self-contained system of 4peripherals and 1central.

Children
No Data
Related