7 Replies Latest reply on Apr 15, 2016 6:03 AM by user_1377889

    I2C and TMP100 integration

    durai.samy

      Hi all

         


      I'm newer to the PSoc and I want measure temerature over I2C with a TMP100. 

      http://focus.ti.com/lit/ds/symlink/tmp100.pdf 

      Can anyone help me with this.

      Best regards, 
       

         

      Duraisamy

        • 1. Re: I2C and TMP100 integration
          user_1377889

          Welcome in the forum, Duraisamy!

             

          What are you equipped with? Have you got a Cypress development kit? Which one??

             

          Did you download and install the Creator IDE (latest version is 3.3)?

             

           

             

          Bob

          • 2. Re: I2C and TMP100 integration
            durai.samy

            Hi Bob,

               

            I have installed latest version 3.3, the development kit model is cy8ckit-042-ble. 

               

             

               

            Regards

               

            Duraisamy P

            • 3. Re: I2C and TMP100 integration
              user_1377889

              The SMBus is like the I2C. So drop a I2C master component onto your topdesign. Take care, some of the pins on the -42BLE board are already in use by some board-internal devices (F-Ram, I2C bridge) Remember: I2C needs pull-up resistors.

                 

               

                 

              Bob

              • 4. Re: I2C and TMP100 integration
                durai.samy

                Hi Bob,

                   

                Can you share some Example program ?.

                   

                 

                   

                Regards

                   

                Duraisamy

                • 5. Re: I2C and TMP100 integration
                  user_1377889

                  I2C interface is quite simple: After setting up the component and starting it you use

                     

                      I2C_MasterSendStart(DeviceAddress,I2C_WRITE_XFER_MODE);    // Initialize a transaction for writing
                      I2C_MasterWrite(Register);                // Indicate which register you want to write to
                      I2C_MasterWriteByte(Value);                // Write to register
                      I2C_MasterSendStop();                    // End of transaction

                     

                  When you want to read from a device you use (example for reading two bytes

                     

                      I2C_MasterSendStart(DeviceAddress,I2C_WRITE_XFER_MODE);    // Initialize a transaction for writing
                      I2C_MasterWrite(Register);                // Indicate which register you want to write to
                      I2C_MasterSendRestart(DeviceAddress,I2C_READ_XFER_MODE);
                      I2C_MasterReadByte(I2C_ACK_DATA);            // Read from register
                      I2C_MasterReadByte(I2C_NAK_DATA);            // Read from register, last byte is NAKed
                      I2C_MasterSendStop();                    // End of transaction

                     

                  Not too difficult. Keep in mind that most of the APIs (except those for reading a byte) return a status byte which, when non-zero indicate an error condition.

                     

                  Bob

                  • 6. Re: I2C and TMP100 integration
                    durai.samy

                    Hi Bop 

                       

                    Thanks for your valuable support.  Now Its working fine.

                       

                    Regards

                       

                    Duraisamy P

                    • 7. Re: I2C and TMP100 integration
                      user_1377889

                      You are always welcome!

                         

                       

                         

                      Bop