{"id":4201,"date":"2020-12-15T11:10:27","date_gmt":"2020-12-15T11:10:27","guid":{"rendered":"http:\/\/fastbitlab.com\/?p=4201"},"modified":"2022-11-18T14:48:12","modified_gmt":"2022-11-18T09:18:12","slug":"i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/","title":{"rendered":"STM32 I2C Lecture 23: I2C pull up resistance, rise time and bus capacitance discussion"},"content":{"rendered":"<div class=\"boldgrid-section\" style=\"background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"container\">\n<div class=\"row\" style=\"padding-top: 50px; padding-bottom: 50px; background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"col-md-1 col-sm-12 col-xs-12 col-lg-1\">\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"col-md-10 col-sm-12 col-xs-12 col-lg-10\" style=\"background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<h1 class=\"\" style=\"text-align: center; border-width: 0px; font-size: 35px; line-height: 55px;\"><span style=\"color: #000080;\">I2C pull up resistance, rise time and bus capacitance discussion<\/span><\/h1>\n<div class=\"row bg-editor-hr-wrap\">\n<hr>\n<\/div>\n<div class=\"row bg-editor-hr-wrap\" style=\"border-width: 0px; margin-top: -42px;\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<p>&nbsp;<\/p>\n<div class=\"bg-hr bg-hr-10\" style=\"border-style: solid; border-width: 0px 0px 3px; width: 95%; color: rgba(11, 34, 151, 0.9); margin-top: -25px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Before doing the exercises on I2C, we have to cover some important concepts related to I2C communication. They are as follows:<\/span><\/p>\n<ol class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000;\">Calculation of the right pull-up resistance for the application.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000;\">Calculation of rise time.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000;\">Calculation of bus capacitance.<\/span><\/li>\n<\/ol>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">These are very important discussions, and it will help achieve successful communication between devices using the I2C protocol.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 22px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 35px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><b>Calculation of the right pull up resistance for the application<\/b><b>:<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">There are two equations in order to calculate the pull-up resistor, as shown in Figure 1.<\/span><\/p>\n<figure id=\"attachment_4217\" aria-describedby=\"caption-attachment-4217\" style=\"width: 655px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\" wp-image-4217\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-1-10.png\" alt=\"\" width=\"655\" height=\"352\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10.png 1915w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-300x161.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-768x413.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-1024x550.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-600x322.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-500x269.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-200x107.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-400x215.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-800x430.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10-1200x645.png 1200w\" sizes=\"(max-width: 655px) 100vw, 655px\" \/><figcaption id=\"caption-attachment-4217\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. Formulas to calculate pull-up resistor.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">The first equation gives the minimum value of the pull-up resistance required for the application. The pull-up resistance minimum value is a function of the V<\/span><span style=\"font-weight: 400;\">CC<\/span><span style=\"font-weight: 400;\"> or V<\/span><span style=\"font-weight: 400;\">DD<\/span><span style=\"font-weight: 400;\">, which is the main supply for the microcontroller, V<\/span><span style=\"font-weight: 400;\">OL<\/span> <span style=\"font-weight: 400;\">(max)<\/span><span style=\"font-weight: 400;\">, and I<\/span><span style=\"font-weight: 400;\">OL<\/span><span style=\"font-weight: 400;\">.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Basically,<\/span><\/p>\n<p class=\"\" style=\"padding-left: 90px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">R<\/span><span style=\"font-weight: 400;\">P<\/span><span style=\"font-weight: 400;\"> (min) = V\/I<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Where V<\/span><span style=\"font-weight: 400;\">OL<\/span><span style=\"font-weight: 400;\"> means low-level output voltage. Ideally, V<\/span><span style=\"font-weight: 400;\">OL<\/span><span style=\"font-weight: 400;\"> will be zero, the low-level output voltage is 0, and the high-level output voltage means V<\/span><span style=\"font-weight: 400;\">CC<\/span><span style=\"font-weight: 400;\">. But in I2C specification, voltage up to 0.4V is considered as low-level output voltage. <\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">V<\/span><span style=\"font-weight: 400;\">OL<\/span><span style=\"font-weight: 400;\"> value is given in the I2C specification. Look at Figure 2, here it is given that when V<\/span><span style=\"font-weight: 400;\">DD<\/span><span style=\"font-weight: 400;\"> &gt; 2, the low-level output voltage is equal to 0.4, and the I<\/span><span style=\"font-weight: 400;\">OL<\/span><span style=\"font-weight: 400;\"> value can be considered as 3mA.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4218\" aria-describedby=\"caption-attachment-4218\" style=\"width: 638px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\" wp-image-4218\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-2-8.png\" alt=\"\" width=\"638\" height=\"282\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8.png 1487w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-300x133.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-768x339.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-1024x452.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-600x265.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-120x53.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-500x221.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-200x88.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-400x177.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-800x353.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-2-8-1200x530.png 1200w\" sizes=\"(max-width: 638px) 100vw, 638px\" \/><figcaption id=\"caption-attachment-4218\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Characteristics of the SDA and SCL I\/O stages.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Now, substitute all these values into equation 1 of Figure 1 to calculate the minimum value of the pull-up resistors.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">For example, let\u2019s consider the scenario (Figure 3) where the signal, either SDA or SCL, is going from high to low.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4219\" aria-describedby=\"caption-attachment-4219\" style=\"width: 608px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\" wp-image-4219\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-3-10.png\" alt=\"\" width=\"608\" height=\"331\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10.png 1641w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-300x163.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-768x418.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-1024x557.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-600x327.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-120x65.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-500x272.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-200x109.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-400x218.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-800x435.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-3-10-1200x653.png 1200w\" sizes=\"(max-width: 608px) 100vw, 608px\" \/><figcaption id=\"caption-attachment-4219\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 3. Pulling the bus low with an open-drain interface.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Consider that High is V<\/span><span style=\"font-weight: 400;\">CC<\/span><span style=\"font-weight: 400;\"> and low is 0, and the V<\/span><span style=\"font-weight: 400;\">OL<\/span><span style=\"font-weight: 400;\"> is somewhere near the 0. When SCL or SDA goes low, then the transistor in Figure 3 will conduct, and the current I<\/span><span style=\"font-weight: 400;\">OL<\/span><span style=\"font-weight: 400;\"> flows through it. Therefore, the resistance of the R<\/span><span style=\"font-weight: 400;\">PU<\/span><span style=\"font-weight: 400;\"> can be easily calculated using the formula:<\/span><\/span><\/p>\n<p class=\"\" style=\"background-color: #ffffff;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4233\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/3.png\" alt=\"\" width=\"610\" height=\"168\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/3.png 610w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/3-300x83.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/3-600x165.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/3-120x33.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/3-500x138.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/3-200x55.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/3-400x110.png 400w\" sizes=\"(max-width: 610px) 100vw, 610px\" \/><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Solve this equation to get the minimum value of R<\/span><span style=\"font-weight: 400;\">PU <\/span><span style=\"font-weight: 400;\">that is pull-up register.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Use the second equation in Figure 1 to calculate the maximum value. The maximum pull-up resistance is the function of the maximum rise time (t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\">). This is a very important equation because it is a function of rise time and bus capacity. Where t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> means rise time of both SDA and SCL signals and C<\/span><span style=\"font-weight: 400;\">b<\/span><span style=\"font-weight: 400;\"> means capacitive load for each bus line.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 25px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 35px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><strong><span style=\"color: #000080;\">Rise time (tr):<\/span><\/strong><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Consider the waveform in Figure 4. It can be either SDA or SCL. Now, look at the t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\">. It is the gap between 30% of the voltage level to 70% of the voltage level.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4224\" aria-describedby=\"caption-attachment-4224\" style=\"width: 653px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4224\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-4-7.png\" alt=\"I2C pull up resistance\" width=\"653\" height=\"221\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7.png 1071w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-300x101.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-768x260.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-1024x346.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-600x203.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-120x41.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-500x169.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-200x68.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-400x135.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-4-7-800x270.png 800w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/><figcaption id=\"caption-attachment-4224\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 4. Rise (tr) and Fall (tf) times.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 29px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Therefore, the rise time or t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> is defined as the amount of time taken by the rising edge to reach 70% amplitude from 30% amplitude for either SDA or SCL.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Ideally, the t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> must be zero. If you consider the scenario in Figure 4, the signal is rising from low to high by taking a significant amount of time that time is denoted by t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> or rise time. The rise time should not be high because if it is too high, it will cause a problem during I2C communication. The value of the pull-up resistance and the bus capacitance influence the t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> timing. The t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> is proportional to the RC time constant. Therefore, an increase in the value of pull-up resistance, and bus capacitance increases t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\">.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> increasing means something is becoming a hurdle for SDA\/SCL line to rise to V<\/span><span style=\"font-weight: 400;\">CC<\/span><span style=\"font-weight: 400;\"> level or someone is resisting the signal to rise to V<\/span><span style=\"font-weight: 400;\">CC<\/span><span style=\"font-weight: 400;\">. The hurdle is RC time constant. Where R is the value of the pull-up register, and C is bus capacitance. The hurdle faced by the signal to reach its 70% is a problem here. <\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">I2C specification is very serious about this problem, and some maximum limit for t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> is given to overcome this problem. The maximum limit of t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> is 1000 nanoseconds for standard mode. While using standard mode, the t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> of the signal (either SDA or SCL) should not be more than 1 microsecond or 1000 nanoseconds.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">I2C specification cares about t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> value and have to respect it while calculating the pull-up register value. A higher value of pull-up registers (weak pull-ups) increases the t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> value (not acceptable if t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> crosses max limit mentioned in the spec). The pull-up register with a very high value will prevent the signal from reaching 70% of the V<\/span><span style=\"font-weight: 400;\">DD<\/span><span style=\"font-weight: 400;\">, as shown in Figure 5.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4225\" aria-describedby=\"caption-attachment-4225\" style=\"width: 692px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4225\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-5-3.png\" alt=\"I2C pull up resistance\" width=\"692\" height=\"371\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3.png 1121w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-300x161.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-768x411.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-1024x548.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-600x321.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-500x268.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-200x107.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-400x214.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-5-3-800x428.png 800w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><figcaption id=\"caption-attachment-4225\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 5. Problem with the higher value of pull-up registers.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">If it does not reach 70% of the V<\/span><span style=\"font-weight: 400;\">DD<\/span><span style=\"font-weight: 400;\"> that is 2.3V in this case (Figure 5), then the signal is not considered as high, and the slave will receive some garbage values, or I2C communication will fail. If the signal fails to reach at least 70% of the V<\/span><span style=\"font-weight: 400;\">CC<\/span><span style=\"font-weight: 400;\"> or V<\/span><span style=\"font-weight: 400;\">DD<\/span><span style=\"font-weight: 400;\"> in the oscilloscope, as shown in Figure 5, you should conclude that the RC time constant is very high.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\"> To solve this problem, either bring down the register or R-value or decrease the bus capacitance. You can also write R<\/span><span style=\"font-weight: 400;\">p<\/span><span style=\"font-weight: 400;\">C<\/span><span style=\"font-weight: 400;\">b<\/span><span style=\"font-weight: 400;\"> instead of RC, where R<\/span><span style=\"font-weight: 400;\">p<\/span><span style=\"font-weight: 400;\"> stands for pull-up resistance and C<\/span><span style=\"font-weight: 400;\">b<\/span><span style=\"font-weight: 400;\"> is the bus capacitance.&nbsp;<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">The lower value of pull-up registers (strong pull-ups) decreases t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> value, but they also lead to higher current consumption because when the resistance becomes very low, more current flows across the transistor resulting in more current consumption. <\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">The higher power consumption is bad for power-aware or low power applications. That\u2019s why you have to select one of the values between R<\/span><span style=\"font-weight: 400;\">P<\/span> <span style=\"font-weight: 400;\">(min)<\/span><span style=\"font-weight: 400;\"> and R<\/span><span style=\"font-weight: 400;\">P<\/span> <span style=\"font-weight: 400;\">(max)<\/span><span style=\"font-weight: 400;\"> as the value of pull-up resistance. Here you will get the R<\/span><span style=\"font-weight: 400;\">P<\/span> <span style=\"font-weight: 400;\">(min)<\/span><span style=\"font-weight: 400;\"> and R<\/span><span style=\"font-weight: 400;\">P<\/span> <span style=\"font-weight: 400;\">(max)<\/span><span style=\"font-weight: 400;\"> values by solving the equations in Figure 1.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 25px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 35px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><b>Bus capacitance (C<\/b><b>b<\/b><b>)<\/b><b>:<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Capacitance means that the voltage level on the signal line (data or clock) cannot change instantaneously.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\"> For example, consider the circuit or bus in Figure 6. There we have SCL and SDA line and connected 4 devices. Even though you don\u2019t connect any capacitor in the circuit, the accidental capacitor called parasitic capacitor resists the flow and becomes a hurdle for the signal to rise from zero to a high state. So, while calculating the pull-up resistance, the value of the bus capacitance also must be taken into account, as in the case of R<\/span><span style=\"font-weight: 400;\">P<\/span> <span style=\"font-weight: 400;\">(max)<\/span><span style=\"font-weight: 400;\"> calculation.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4226\" aria-describedby=\"caption-attachment-4226\" style=\"width: 680px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4226\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-6-4.png\" alt=\"I2C pull up resistance\" width=\"680\" height=\"256\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4.png 1667w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-300x113.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-768x289.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-1024x385.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-600x226.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-120x45.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-500x188.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-200x75.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-400x150.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-800x301.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-6-4-1200x451.png 1200w\" sizes=\"(max-width: 680px) 100vw, 680px\" \/><figcaption id=\"caption-attachment-4226\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 6. I2C bus capacitance.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<ul class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000;\">Bus capacitance is a collection of individual pin capacitance with respect to ground, the capacitance between the SDA and SCL, parasitic capacitance, capacitance added by the devices hanging on the bus, bus length (wire), dielectric material, etc. All these are reasons for accidental capacitors in the I2C bus.<\/span><\/li>\n<\/ul>\n<p class=\"\" style=\"padding-left: 40px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\"> Remember that, as the bus length or wire length increases, the capacitance also increases, and more devices on the bus means more pin capacitance has been added to the bus.<\/span><\/p>\n<ul class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Bus capacitance limits how long your I2C wiring can be and how many devices you can connect on the bus because there is a limit for bus capacitance in the specification. <\/span><\/span><\/li>\n<\/ul>\n<p class=\"\" style=\"padding-left: 40px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Figure 7 shows a specification value for t<\/span><span style=\"font-weight: 400;\">r<\/span><span style=\"font-weight: 400;\"> (rise time) of both SDA and SCL signals, it should not cross 1000 nanoseconds, and the maximum bus capacitance for standard mode and fast mode is 400pF. Therefore, the overall bus capacitance of the application should not cross 400pF.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4228\" aria-describedby=\"caption-attachment-4228\" style=\"width: 673px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4228\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-7-2.png\" alt=\"I2C pull up resistance\" width=\"673\" height=\"388\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2.png 1468w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-300x173.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-768x443.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-1024x591.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-600x346.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-120x69.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-500x288.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-200x115.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-400x231.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-800x462.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-7-2-1200x692.png 1200w\" sizes=\"(max-width: 673px) 100vw, 673px\" \/><figcaption id=\"caption-attachment-4228\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 7. Characteristics of the SDA and SCL bus lines for Standard, Fast, and Fast-mode Plus I2C bus devices.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<ul class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">For maximum allowed bus capacitance, check the specification: Consider an exercise, for fast-mode I2C communication with the following parameters, calculate the pull-up register value. C<\/span><span style=\"font-weight: 400;\">b<\/span><span style=\"font-weight: 400;\"> = 150pF, V<\/span><span style=\"font-weight: 400;\">CC<\/span><span style=\"font-weight: 400;\"> = 3.3V.&nbsp;<\/span><\/span><\/li>\n<\/ul>\n<p class=\"\" style=\"padding-left: 30px; margin-left: 13px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Remember that the bus capacitance can be calculated by using capacitance measurement tools or multi-meter, or some advanced tools. But you can model a bus to calculate the approximate value of the bus capacitance.&nbsp;&nbsp;<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: 13px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">Now consider that you have an I2C bus with 4 devices connected, as shown in Figure 6. Each device will add its own pin capacitance to the bus. Let\u2019s consider it as 10pF for each device. Since it has 4 devices, approximately 40pF of bus capacitance will be added to the bus from the devices.<\/span><\/span><\/p>\n<ul class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400; color: #000000;\">Another 100pF of capacitance is added by considering the length of the wires like SCL or SDA and other factors like PCB wirings, dielectric mediums, etc. Therefore, in this case, total capacitance has to be adjusted to 150pF or even less or more than that. The pin capacitance of the device is mentioned in the specification of the I2C device. <\/span><\/li>\n<\/ul>\n<p class=\"\" style=\"padding-left: 40px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">For example, Check the datasheet DS1307 I2C based Real-Time-Clock shown in Figure 8. It will give you lots of information about I2C communication and the recommended settings information. <\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Look at Figure 8. This device can communicate only in standard mode since the maximum serial clock frequency is 100kHz. The pin capacitance for the SDA and SCL are given in the capacitance table, which is 10pF. Therefore, each device will add a 10pF of capacitance to the bus.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4229\" aria-describedby=\"caption-attachment-4229\" style=\"width: 699px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4229\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-8-2.png\" alt=\"I2C pull up resistance\" width=\"699\" height=\"560\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2.png 895w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-300x240.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-768x615.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-600x481.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-120x96.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-500x401.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-177x142.png 177w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-200x160.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-400x320.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-8-2-800x641.png 800w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><figcaption id=\"caption-attachment-4229\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 8. I2C communication information for DS1307 I2C based Real-Time-Clock<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Now let\u2019s solve the given exercise,<\/span><\/p>\n<p class=\"\" style=\"background-color: #ffffff;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4231\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/2.png\" alt=\"\" width=\"638\" height=\"411\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/2.png 638w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/2-300x193.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/2-600x387.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/2-120x77.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/2-500x322.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/2-460x295.png 460w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/2-200x129.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/2-400x258.png 400w\" sizes=\"(max-width: 638px) 100vw, 638px\" \/><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">If you select R<\/span><span style=\"font-weight: 400;\">P<\/span><span style=\"font-weight: 400;\"> = 2.2 k\u03a9, then it is a good value. It prevents higher current consumption and also takes care of the rise time requirements. But if you blindly use 22 k\u03a9, then it would cause problems for the T<\/span><span style=\"font-weight: 400;\">rise<\/span><span style=\"font-weight: 400;\"> requirements. The T<\/span><span style=\"font-weight: 400;\">rise<\/span><span style=\"font-weight: 400;\"> may go out of 300 nanoseconds if the bus capacitance is too high.<\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">No need to use the external pull-up registers for this exercise because there are a few devices connected on the bus, and the length of the wire is also very short. Instead, the exercises can be tested with an internal pull-up resistance of 40 k\u03a9.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">The correct value of the pull-up register must be calculated by considering the T<\/span><span style=\"font-weight: 400;\">rise<\/span><span style=\"font-weight: 400;\"> and bus capacitance while developing a product based on the I2C protocol. The T<\/span><span style=\"font-weight: 400;\">rise<\/span><span style=\"font-weight: 400;\"> timing for the I2C communication must be configured in the I2C driver by programming the T<\/span><span style=\"font-weight: 400;\">rise<\/span><span style=\"font-weight: 400;\"> register of the I2C register shown in Figure 9.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4230\" aria-describedby=\"caption-attachment-4230\" style=\"width: 702px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4230\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2020\/12\/Figure-9-2.png\" alt=\"I2C pull up resistance\" width=\"702\" height=\"156\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2.png 1519w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-300x67.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-768x170.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-1024x227.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-600x133.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-120x27.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-500x111.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-200x44.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-400x89.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-800x177.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-9-2-1200x266.png 1200w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><figcaption id=\"caption-attachment-4230\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 9. I2C_TRISE register.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In the following article, let&#8217;s see<\/span><span style=\"color: #0000ff;\"><a style=\"color: #0000ff; text-decoration: underline;\" href=\"http:\/\/fastbitlab.com\/i2c-rise-time-calculation\/\" target=\"_blank\" rel=\"noopener\"> I2C rise time calculation<\/a><\/span>.&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 20px; line-height: 24px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><b>FastBit Embedded Brain Academy Courses<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: Roboto; font-weight: 400; font-size: 17px;\" data-font-family=\"Roboto\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">Click here:&nbsp;<\/span><span style=\"color: #0000ff;\"><a style=\"color: #0000ff; text-decoration: underline;\" href=\"http:\/\/fastbitlab.com\/course1\" target=\"_blank\" rel=\"noopener\">https:\/\/fastbitlab.com\/course1<\/a><\/span><\/p>\n<\/div>\n<\/div>\n<div><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; I2C pull up resistance, rise time and bus capacitance discussion &nbsp; &nbsp; Before doing the exercises on I2C, we have to cover some important concepts related to I2C communication. They are as follows: Calculation of the right pull-up resistance for the application. Calculation of rise time. Calculation of bus capacitance. These are very important [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4217,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[23],"class_list":["post-4201","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-stm32-i2c-lectures","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>I2C pull up resistance, rise time and bus capacitance discussion<\/title>\n<meta name=\"description\" content=\"I2C pull up resistance, rise time and bus capacitance discussion. Before doing the exercises on I2C, we have to cover some important concepts\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"I2C pull up resistance, rise time and bus capacitance discussion\" \/>\n<meta property=\"og:description\" content=\"I2C pull up resistance, rise time and bus capacitance discussion. Before doing the exercises on I2C, we have to cover some important concepts\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/\" \/>\n<meta property=\"og:site_name\" content=\"FastBit EBA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fastbiteba\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-15T11:10:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-18T09:18:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1915\" \/>\n\t<meta property=\"og:image:height\" content=\"1029\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"FastBitLab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:site\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"FastBitLab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32 I2C Lecture 23: I2C pull up resistance, rise time and bus capacitance discussion\",\"datePublished\":\"2020-12-15T11:10:27+00:00\",\"dateModified\":\"2022-11-18T09:18:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/\"},\"wordCount\":1845,\"commentCount\":8,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/Figure-1-10.png\",\"keywords\":[\"STM32 I2C Lectures\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/\",\"name\":\"I2C pull up resistance, rise time and bus capacitance discussion\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/Figure-1-10.png\",\"datePublished\":\"2020-12-15T11:10:27+00:00\",\"dateModified\":\"2022-11-18T09:18:12+00:00\",\"description\":\"I2C pull up resistance, rise time and bus capacitance discussion. Before doing the exercises on I2C, we have to cover some important concepts\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/Figure-1-10.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/Figure-1-10.png\",\"width\":1915,\"height\":1029,\"caption\":\"Figure 1. Formulas to calculate pull-up resistor.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32 I2C Lecture 23: I2C pull up resistance, rise time and bus capacitance discussion\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"name\":\"FastBit EBA\",\"description\":\"Your Online Academy of Embedded Systems\",\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\",\"name\":\"FastBit EBA\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"width\":640,\"height\":640,\"caption\":\"FastBit EBA\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fastbiteba\\\/\",\"https:\\\/\\\/x.com\\\/fastbiteba\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fastbit-embedded-brain-academy-b3167b124\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCa1REBV9hyrzGp2mjJCagBg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\",\"name\":\"FastBitLab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"caption\":\"FastBitLab\"},\"description\":\"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"I2C pull up resistance, rise time and bus capacitance discussion","description":"I2C pull up resistance, rise time and bus capacitance discussion. Before doing the exercises on I2C, we have to cover some important concepts","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/","og_locale":"en_US","og_type":"article","og_title":"I2C pull up resistance, rise time and bus capacitance discussion","og_description":"I2C pull up resistance, rise time and bus capacitance discussion. Before doing the exercises on I2C, we have to cover some important concepts","og_url":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2020-12-15T11:10:27+00:00","article_modified_time":"2022-11-18T09:18:12+00:00","og_image":[{"width":1915,"height":1029,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10.png","type":"image\/png"}],"author":"FastBitLab","twitter_card":"summary_large_image","twitter_creator":"@fastbiteba","twitter_site":"@fastbiteba","twitter_misc":{"Written by":"FastBitLab","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32 I2C Lecture 23: I2C pull up resistance, rise time and bus capacitance discussion","datePublished":"2020-12-15T11:10:27+00:00","dateModified":"2022-11-18T09:18:12+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/"},"wordCount":1845,"commentCount":8,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10.png","keywords":["STM32 I2C Lectures"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/","url":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/","name":"I2C pull up resistance, rise time and bus capacitance discussion","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10.png","datePublished":"2020-12-15T11:10:27+00:00","dateModified":"2022-11-18T09:18:12+00:00","description":"I2C pull up resistance, rise time and bus capacitance discussion. Before doing the exercises on I2C, we have to cover some important concepts","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2020\/12\/Figure-1-10.png","width":1915,"height":1029,"caption":"Figure 1. Formulas to calculate pull-up resistor."},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/i2c-pull-up-resistance-rise-time-and-bus-capacitance-discussion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"STM32 I2C Lecture 23: I2C pull up resistance, rise time and bus capacitance discussion"}]},{"@type":"WebSite","@id":"https:\/\/fastbitlab.com\/blog\/#website","url":"https:\/\/fastbitlab.com\/blog\/","name":"FastBit EBA","description":"Your Online Academy of Embedded Systems","publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fastbitlab.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fastbitlab.com\/blog\/#organization","name":"FastBit EBA","url":"https:\/\/fastbitlab.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","width":640,"height":640,"caption":"FastBit EBA"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fastbiteba\/","https:\/\/x.com\/fastbiteba","https:\/\/www.linkedin.com\/in\/fastbit-embedded-brain-academy-b3167b124\/","https:\/\/www.youtube.com\/channel\/UCa1REBV9hyrzGp2mjJCagBg"]},{"@type":"Person","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d","name":"FastBitLab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","caption":"FastBitLab"},"description":"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries."}]}},"_links":{"self":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/comments?post=4201"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4201\/revisions"}],"predecessor-version":[{"id":12540,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4201\/revisions\/12540"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/4217"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=4201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=4201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=4201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}