Hacker News new | ask | show | jobs
by thinknubpad 1229 days ago
Anecdata: seems like internal pullups are usually 10s of kΩs, maybe 20-50kΩ. Most sensor boards that I see use 4.7kΩ, and work with 400KHz-1MHz "fast-mode+".

So 1kΩ is safe, but might be a bit on the aggressive side. At 3.3V, 1KΩ to ground burns 3.3mA, and there are two pull-ups per I2C bus.

2 comments

The I2C spec gives you a minimum and maximum rise time, but does not specify resistor values. Those values should be selected based on the total capacitance of the bus to meet the rise time requirement, either calculated or measured.

The I2C specification is full of these kinds of ambiguities, which creates a lot more work for implementers. SMBus's physical layer is a subset of I2C that tightens these requirements and specifies pull-up current, making these calculations quite a bit easier.

http://www.smbus.org/specs/SMBus_3_2_20220112.pdf

Yep, this post checks out.

If you're doing coin cell powered stuff, those brief 3.3 mA pulses can really chew up your battery life.