4 Replies Latest reply on Oct 3, 2018 4:18 AM by herb_2497906

    I2C pullups

    sib_at_1570356

      Hello All,

         

      this may be a dumb question but can i use PRoC internal pull up for I2C or do I have to connect pull up externally on PCB?

         

       

         

      Thank

         

      Ashutosh

        • 1. Re: I2C pullups
          user_1377889

          You will have to provide external pullups ~5k

             

           

             

          Bob

          • 2. Re: I2C pullups
            herb_2497906

            This question needs to be pointed out more strongly, you HAVE to use external pull ups on the I2C of the PRoC modules, from the module data sheet.

             

            Note For PSoC 4100 / PSoC 4200 I2C pins output enable is assigned to 0 to make High-Z state when I2C device does not drive the bus. This behavior suppresses usage of internal pull-ups (changing Drive Mode to Resistive pull-up has no effect). The external pull-ups must be used.

             

            Now for the $1000 question, since I have not had a processor in 10 years that needed external pull ups for I2C and now I do, why did you not warn me with a compiler warning, or config warning in the dialog for I2C, would have been simple to do, but cost us time and money since we missed that.

             

            You I2C dialog box should have the pull ups option as a check box, (instead of the copy you need to add before start, which I did, but it did not have any effect as noted above, and if not available add a big note saving you must use external pull ups.

             

            You guys whiffed on this one, please add this to the fix list.

            • 3. Re: I2C pullups
              Gyan Chand

              Herb,

               

                   The internal pull up resistors values are always fixed and  as far as I2C interface is concerns the controller should drive the I2C open drain/collector lines always LOW and you should put the external pull ups with  correctly calculated resistance values. If in the case the internal resistance value does not satisfy the requirement for a particular I2C mode communication , there will be signal loss and if you have connected external pull ups its easy to change the design in later stages.

               

              Coming to datasheet, I think enough information is provided there on this topic on page #14 and #24 ( Internal pull ups section)

               

              Hope this clears your queries.

               

              -Gyan

              • 4. Re: I2C pullups
                herb_2497906

                Gyan, I must respectfully ask you to reconsider my point.

                 

                I was an FAE in this industry for many years and helping customers avoid mistakes was job one.  Anything easy that Cypress could do to ensure that simple issues do not cause customer problems, should be done.

                 

                As I stated, in many other solutions, especially modules, optional internal pull ups have become the standard, I believe that is true for many Cypress parts as well.  Since it is now common practice, and Cypress has the SCB tool, it is in the best interest of Cypress to insert a warning, when you select master, and have selected a module without internal pull-ups.  It would be an easy add to the SCB component, and save customers from making a simple, but most likely common mistake, since adding external pull ups is not common practice anymore.

                 

                Similarly, you helped me with the cap trim of the module, thank you again, but that could also have been a warning in the BLE component and you would not have had to help me, and it would have saved me time and concern, a value to both of us, that is my point.

                 

                Your support is excellent, and I am glad to be using Cypress, code on and be happy.