I2C Slave Address Programming via Memory Overwrite
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The I2C bus addressing scheme limits the number of identical slave devices that can be supported without contention, typically to four, due to the limited number of user-configurable address bits, leading to increased costs and complexity when trying to address more devices using additional address pins or dedicated multiplexers.
Innovation Solution
A method and system where a master device provides unique device addresses to multiple slave devices of the same type by placing them in an address-programming state, allowing each to overwrite its default address, enabling multiple instances of the same type of slave device to be uniquely addressed on an I2C bus without the need for additional pins or complex multiplexers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If additional address pins are included on slave devices to support more identical devices, then the number of addressable devices increases, but the device cost increases
Solution Approach 1:
The patent changes the address parameter from fixed hardware pins to dynamically configurable values stored in memory. The slave device reads a unique identifier from memory during initialization, allowing the same hardware design to support multiple identical devices without adding physical address pins.
Solution Approach 2:
The patent uses a copy of the device identifier stored in memory as the address parameter. Instead of using physical address pins, the system reads a copied identifier value from memory during device initialization, enabling software-based address assignment that avoids additional hardware costs.
2Quantity of substance
If a dedicated I2C multiplexer is used to break the system into sub-branches, then more devices can be addressed, but the system complexity and cost increase due to additional clock and data lines
Solution Approach 1:
The patent makes the existing I2C bus universal by enabling it to address multiple identical devices through software configuration rather than requiring separate physical bus branches. The same single I2C bus can dynamically assign unique addresses to any number of slave devices, eliminating the need for dedicated multiplexers and additional bus infrastructure.
Solution Approach 2:
The patent introduces a software intermediary (address assignment protocol) that mediates between the master device and multiple slave devices on the same bus. This software layer dynamically assigns unique addresses during initialization, avoiding the need for hardware intermediaries like multiplexers that would add physical complexity.
3Quantity of substance
If a dedicated I2C multiplexer is used to address more devices, then the number of addressable devices increases, but the system cost increases
Solution Approach 1:
The patent changes the address parameter from fixed hardware pins to dynamically configurable values stored in memory. The slave device reads a unique identifier from memory during initialization, allowing the same hardware design to support multiple identical devices without adding physical address pins.
Solution Approach 2:
The patent uses a copy of the device identifier stored in memory as the address parameter. Instead of using physical address pins, the system reads a copied identifier value from memory during device initialization, enabling software-based address assignment that avoids additional hardware costs.
Data Source
AI summary
A method for addressing multiple instances of a same type of slave device on a bus is provided that includes receiving a plurality of unique device addresses at each of the slave devices and overwriting a default device address in each of the slave devices with a different one of the unique device addresses.


