I’ve been messing around with off the shelf components for long enough and finally decided to take the plunge and make some of my own boards. I made a very basic board that I had printed with JLC and now looking to do somehthing a bit more advanced.
I am hooking up an I2C port expander ( MCP23017 ) to a Raspberry Pi CM4 and would like to make the address selectable after the board has been manufactuered. I found a few discussions around I2C selection design but no definitive answers on how to design an I2C address selector.
It seemss to be that the general best practice is to use pull up resistors to keep the address pins high by default and be able to connect them to ground optionally using a solder.
Your questions are not KiCad related so should not be asked here.
Will you have so many I2C devices that you really need a way to change their addresses? Can’t you assign for each of your PCBs one, not changeable address?
I don’t intensive use I2C - maximum one I2C IC at PCB so I always connect all A pins to GND.
In my opinion 10k is correct, but it should be clear form your IC datasheet.
Apologies if this is not related to KiCad directly. I saw a few dicussions around specific circuit designs on this forum. Is there a specific tag I should be using?
Thanks for your input! I am planning on connecting the Hyperpixel 4 display which uses all the standard GPIO ports, and does not expose a way of selecting the address. So I just wanted to be sure I could change it if needed!
Datasheets usually give a recommendation for doing this. Sometimes leaving the pin open is a third option to set the address.
KiCad also has 3-way solder jumpers, and it has normally closed and normally open solder jumpers. the “normally closed” version has a small copper connection in between the tracks that can be cut with a knife.
Another option is two use two resistors. That way you can do the address selection during produduction. Just either mount the pullup or the pull down resistor.
Another consideration is current consumption. 3V3 / 10k = 330 uA and that is a lot of current for battery powered equipment, but negligible for almost any other application.
Personally I have nothing specially against non strictly KiCad discussions and I tend to take part in such, but there is the tendency to limit forum as much as possible to KiCad as this should help people searching the answers for KiCad problems as well as people searching the answers to circuit design should easier find them if circuit discussions would take place at electronic forums.
For me your question was only about setting address pins and resistor values used to it.