Hi,
1) I am wondering if this layout will work: (VCC= 1.8V), (VPUM= 1.8V), (VPU0= 3.3V), (VPU1, 2, 3= 1.8V)
2) Do I need to use the equations for R pullup? Or should I use the R pullup recommended by the peripheral device datasheet?
Thanks,
JP
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
1) I am wondering if this layout will work: (VCC= 1.8V), (VPUM= 1.8V), (VPU0= 3.3V), (VPU1, 2, 3= 1.8V)
2) Do I need to use the equations for R pullup? Or should I use the R pullup recommended by the peripheral device datasheet?
Thanks,
JP
Hey JP,
VoL and IoL are actually from the I2C standard. Your Vcc (VDD in the spec), and clock frequency determine what values you will plug in.
For the 1.8V buses, you should use IoL=2mA and VoL = 20%*VDD which is 0.36V for you.
For the 3.3V bus, you should use IoL=3mA and VoL = 0.4V
These calculations will give you the strongest (lowest value) R pull up you are allowed:
Example1:
(1.8V-0.36V)/2mA = 720 ohms. This means you need to use a resistor larger than 720 ohms.
All of your 1.8V buses need to have a pull up resistor larger than 720 ohms. The maximum allowed resistor (weakest pull up) will depend on bus capacitance
Example 2:
(3.3V-0.4V)/3mA = 966 ohms: The 3.3V bus requires 966 ohms or larger
------------
I'd recommend choosing values a bit larger than the minimum to ensure you don't run into VoL issues.
----------
Example 3:
You need to calculate the maximum allowed resistance on each bus. Take into account the parasitic capacitance of the PCB length, vias, parasitic input capacitance of I2C slaves/masters/devices. For reference each I2C device can have up to a maximum of 10pF of capacitance (exceptions to switches). PCB/Vias capacitance is usually small so I will ignore them..... Lets say you have 10 I2C devices on one bus/channel then gives us about 100pF.
Lets say you are operating at 400kHz so your max allowed rise time is 300ns.
Rp(max) = trise/(0.8473*Cbus)
300ns/(0.8473*100pF) = 3540 ohms
Now if you were operating at 100kHz then your trise would change to 1000ns.(I will let you calculate that)
So if I were using example 1 and 3 together then I would need to choose a resistor between 720 ohms and 3540 ohms to make sure I meet rise time requirements. I would probably pick something like 3k or 2k.
Table of requirements from the I2C standard
You'll basically need to do this calculation for all the separate channels using example 3 to find your max resistor values. I hope this helped.
-Bobby