7 Replies Latest reply on May 11, 2017 12:42 AM by chmc_2411676

    Fastest I2C master enable (write) method



      I have a design in which CPU wakes up and waits for a digital pin state change. Immediately after that I2C write must be issued.


      I have been reading SCB docs but still unsure what is the best way to achieve that. Wake pre-initialised SCB from sleep? 


      Basically I have just two objectives:


      1/ To make sure SCB master either idle or in a high impedance state all time except this short (one byte write) event


      2/ Time between digital pin state change and the start of I2C transmission is as short as possible (say less than 100 us).


      Code runs on CY8C4014LQI-412


      All suggestions welcome (apart from the design change - it is set in stone).





        • 1. Re: Fastest I2C master enable (write) method

          Having the settings for the I2C written once at code initialization, and then just use the sleep() and wakeup() methods to turn the I2C on and off sounds pretty reasonable to me.


          Depending on your clock speed, and how you are running your code, it should be quite easy to achieve 100 us latency. Interrupts are a good method of ensuring quick responses to changes.


          Also, a faster CPU clock speed will ensure faster response times as well.

          • 2. Re: Fastest I2C master enable (write) method



              I'm working on a project in which I need to configure CY8CMBR3116 through  I2C by using CY8CKIT-042 programmer kit. Is that possible..?
            If it is possible, Then which software tool should I use for configuration.
            I have connected scl and sda pins from PSoc5lp(from CY8CKIT-042 kit) with the I2C pins of CY8CMBR3116 and tried to configure using EZ-CLICK,
            But the device is not getting detected in the software.
            Can anyone please give me a solution.

            • 3. Re: Fastest I2C master enable (write) method

              It sounds like you want to repurpose the CY8CKIT-042 kit to program the CY8CMBR3116 instead of the PSoc5lp on the board?


              It would involve more hardware changes to the kit besides just soldering two wires to the CY8CMBR3116 chip. Can you show us what you have done so far for hooking it up? (Image or description would be nice)


              What exactly are you trying to solve; configuring the CY8CMBR3116 once, multiple times, multiple chips, or programmatically controlling it?

              • 4. Re: Fastest I2C master enable (write) method





                In the MRB3 Kit user guide you can find the details about how to configure the MBR3 using the Cy8CKIT-042.


                The details are in the below document(page-57- PSOC4 host examples).











                • 5. Re: Fastest I2C master enable (write) method

                  Thank You Guys,  I had successfully configured CY8CMBR3116 using CY8CKIT-042.


                  Now I am trying to interface it with PICHJ24 microcontroller, the problem here is, Im not getting interrupt from the CY8CMBR3116 when the capsense button is touched,


                  I have configured HI/BUZ/GPO7(pin number 23) as an interrupt pin, According to the datasheet the interrupt pin status initially should be high and once the button is touched it should give a active low pulse. but when am testing, the interrupt pin status was not high initially. for experimental purpose I had connected a 4.7k resistor and pulled up that particular pin. but after that even when the button is touched the pin status remains high. So can you please help me to deal with this problem.





                  • 6. Re: Fastest I2C master enable (write) method

                    Is the pin going low? Can you attach the project bundle that you are working on?

                    • 7. Re: Fastest I2C master enable (write) method

                                We have not started project,We have designed a PCB with CY8CMBR3116 controller and capsense buttons, Just we have configured the controller using EZ-CLICK software, in that software we are getting the raw counts  and difference count if the button is touched. but we are not getting any interrupt from the interrupt pin of the controller.


                      The interrupt pin is always low, I am not getting any state change from that pin even when the capsense button is touched.


                      Thank you.