Skip to main content
added 112 characters in body
Source Link
Null
  • 7.7k
  • 17
  • 37
  • 48

The correct pullup resistance for the I2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --

$$Freq<100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{1000ns}{C_{bus}}$$$$\text{Freq}<100\text{kHz} \implies R_{\text{min}}=\frac{V_{cc}-0.4\text{V}}{3\text{mA}}, R_{\text{max}}=\frac{1000\text{ns}}{C_{\text{bus}}}$$

$$Freq>100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{300ns}{C_{bus}}$$$$\text{Freq}>100\text{kHz} \implies R_{\text{min}}=\frac{V_{cc}-0.4\text{V}}{3\text{mA}}, R_{\text{max}}=\frac{300\text{ns}}{C_{\text{bus}}}$$

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2C RTC (DS1337). I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.

The correct pullup resistance for the I2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --

$$Freq<100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{1000ns}{C_{bus}}$$

$$Freq>100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{300ns}{C_{bus}}$$

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2C RTC (DS1337). I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.

The correct pullup resistance for the I2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --

$$\text{Freq}<100\text{kHz} \implies R_{\text{min}}=\frac{V_{cc}-0.4\text{V}}{3\text{mA}}, R_{\text{max}}=\frac{1000\text{ns}}{C_{\text{bus}}}$$

$$\text{Freq}>100\text{kHz} \implies R_{\text{min}}=\frac{V_{cc}-0.4\text{V}}{3\text{mA}}, R_{\text{max}}=\frac{300\text{ns}}{C_{\text{bus}}}$$

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2C RTC (DS1337). I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.

Corrected SI units
Source Link
Joe Hass
  • 8.5k
  • 1
  • 30
  • 41

The correct pullup resistance for the I2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --

$$Freq<100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{1000nS}{C_{bus}}$$$$Freq<100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{1000ns}{C_{bus}}$$

$$Freq>100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{300nS}{C_{bus}}$$$$Freq>100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{300ns}{C_{bus}}$$

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2C RTC (DS1337). I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.

The correct pullup resistance for the I2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --

$$Freq<100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{1000nS}{C_{bus}}$$

$$Freq>100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{300nS}{C_{bus}}$$

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2C RTC (DS1337). I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.

The correct pullup resistance for the I2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --

$$Freq<100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{1000ns}{C_{bus}}$$

$$Freq>100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{300ns}{C_{bus}}$$

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2C RTC (DS1337). I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.

MathJaxed equations, i.e., turned equations into LaTeX format, included link to ATmega168 datasheet.
Source Link

The correct pullup resistance for the I2CI2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheetATmega168 datasheet (which I believe comes from the official I2CI2C spec) is is --

Freq < 100KHz Rmin = (Vcc - 0.4V) / 3mA Rmax = 1000nS / Cbus$$Freq<100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{1000nS}{C_{bus}}$$

Freq > 100KHz Rmin = (Vcc - 0.4V) / 3mA Rmax = 300nS / Cbus$$Freq>100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{300nS}{C_{bus}}$$

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2CI2C RTC (DS1337). I include 4.7K4K7 resistors in the kit which seems like a reasonable compromise for most users.

The correct pullup resistance for the I2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --

Freq < 100KHz Rmin = (Vcc - 0.4V) / 3mA Rmax = 1000nS / Cbus

Freq > 100KHz Rmin = (Vcc - 0.4V) / 3mA Rmax = 300nS / Cbus

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2C RTC (DS1337). I include 4.7K resistors in the kit which seems like a reasonable compromise for most users.

The correct pullup resistance for the I2C bus depends on the total capacitance on the bus and the frequency you want to operate the bus at.

The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --

$$Freq<100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{1000nS}{C_{bus}}$$

$$Freq>100kHz \implies R_{min}=\frac{V_{cc}-0.4V}{3mA}, R_{max}=\frac{300nS}{C_{bus}}$$

The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly typical). Count up the number of devices you have in parallel on the bus and use the formula above to calculate a range of values that will work.

If you are powering off of batteries I would use values that are at the high end of the range. If there are no power limits on the power source or power dissipation issues in the ICs I would use values on the lower end of the range.

I sell some kits with an I2C RTC (DS1337). I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.

Removed signature
Source Link
Daniel Grillo
  • 7.7k
  • 18
  • 52
  • 70
Loading
text alignment
Source Link
jluciani
  • 11.8k
  • 1
  • 35
  • 54
Loading
Source Link
jluciani
  • 11.8k
  • 1
  • 35
  • 54
Loading