- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It was clear from the I2C project that there are 2 options for the SDA and SCL lines. These are 1.0 and 1.1 or 1.5 and 1.7. But the 1.0 and 1.1 lines are also used for programming. For I2C communication, we need to have a pull-up on these pins, will this affect the programming in any way.
Solved! Go to Solution.
- Labels:
-
PSoC 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes it will affect programming as ISSP lines does not require pull-ups. You can have a jumper to disconnect the pull-ups while programming or you can have the pull-up resistors on the I2C master device
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes it will affect programming as ISSP lines does not require pull-ups. You can have a jumper to disconnect the pull-ups while programming or you can have the pull-up resistors on the I2C master device
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A pull up resistor at P1[0] - SDA pin will cause programming issues. See below articles for the issue details and workaround-
http://www.cypress.com/?id=4&rID=37644
http://www.cypress.com/?rID=38364&cache=0
I would suggest for I2C-
1. Use P1[5]-P1[7] or
2. Use jumpers when using P1[0] and P1[1]
-Rajiv Badiger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As Rajiv suggested, the KB article "I2C pull up resistors during ISSP" will be helpful in this case. Apart from the points mentioned there, you can also try using internal pullup resistors on the I2C lines. This will require no need for hardware workaround or isolation during programming time.
Another point to keep in mind are the Pin Loading Requirements (AN2014 - PSoC Programming). This is an important consideration, as the P1.0 and P1.1 actually serve three functions (GPIO/I2C, ISSP, XTAL).
Though the pullup value recommended is in the range of 2.2 k and 4 kohm, internal pullups of 5.6kohm might still work for your design.
References:
How to chage drivemodes of a GPIO - AN2094 - PSoC® 1 - Getting Started with GPIO
Pullup Resistors for I2C - AN50987 - Getting Started with I2C in PSoC® 1
Pin Loading for ISSP pins - AN2014 - PSoC® 1 Programming
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
One complicating issue is the 5.6K internal R's accuracy specs are from 4K
to 8K, nominal 5.6K. Depending on Buss C conditions You might evaluate your
design with external R's, at both extremes, to make sure reliability is met.
Regards, Dana.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Using Internal pull-up resistor seems to be a good option.
Dana, do you feel that there could be issues because of the value of the internal pull-ups?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
All depends on end user applkication, and buss loading. So worst case
calculations must include the wide variation in pull up R.
Here is an example of an evaluation -
http://dsscircuits.com/articles/effects-of-varying-i2c-pull-up-resistors.html
Specs (section in this on dealing with Buss C ) -
http://www.nxp.com/documents/user_manual/UM10204.pdf
Regards, Dana.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Dana,
Very nice article on Effects of varying I2C Pull-Up resistors. Thanks for the link.
Tanisha