I want to read data from five equal devices via I2C. Master is ESP8266 microcontroller and slaves are five MPU5060. The problem is that they have equal addresses. I've seen a lot of answers about how to solve it, but they are all about multiplexers. How can I do it by the software part?


Not possible.

Software alone cannot differentiate same slave devices with same I2C addresses.

It is wise to go ahead with the working solutions. Multiplexers are a good approach realised using discretes or readymade solution.

Edit 1:.

The ADD pin can be modified to atleast create two different addresses.
enter image description here

| improve this answer | |
  • 1
    \$\begingroup\$ If the MPU5060 responds to ADD pin changes on the fly ( so it is not latched in only at powerup ) then you only need to select one of the MPUs with a GPIO pin so that only one of them is at one address at a given time. \$\endgroup\$ – Justme Feb 15 at 15:11
  • \$\begingroup\$ @Justme datasheet doesn't say it.. but it is a suggestion OP should check it for sure. either the OP should experiment or write to the manufacturer. \$\endgroup\$ – User323693 Feb 15 at 15:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.