4 Replies Latest reply on Jul 23, 2018 10:49 PM by denki_1669721

    Problem with GPIO interrupt

    denki_1669721

      Problem: interrupt signal triggered by itself

      I'm using 2 PSoC to control my robot

      CY8C4125PVI-482 to control panel and capsense

      CY8C5468AXI-LP042 to control Motor Driver(Sabertooth 2x32) and others

      What I intend to do is

      When capsense active, CY8C4125PVI-482 (P1.0) will trigger signal to CY8C5468AXI-LP042 (P2.7)

      Since P2.7 is GPIO with interrupt, interrupt will triggered to stop the motor

      Problem:

      When motor is not connected, the interrupt triggering work as expected, thus

      CapSense Active->P1.0 triggered->P2.7 received->interrupt triggered

      BUT when motor connected, EVEN CapSense not active, interrupt triggered at P2.7

      AND even it was very rare, even the motor not connected and CapSense not active, sometimes P2.7 triggered interrupt by itself

      Countermeasure done:

      -since CY8C5468AXI-LP042 (P2.6) signaling a relay circuit, I've tried to change GPIO interrupt port to P3.5....result=still interrupt self-triggered

      -check if there is any spike at P2.7 or P3.5..result=no spike/noise etc

      -disable Capsense....result=still sel-triggered

       

      Your helps and ideas are appreciated

      Thank you

        • 1. Re: Problem with GPIO interrupt
          bob.marlowe

          A bit difficult to check: Two Zips with eight(!!!) projects each. That is a bit too much work for me. Try to reduce the issue to its barest.

          I presume that you get some unwanted feedback from the moving motors/relays to your PSoC power supply. Check with a scope (AC coupling amplificatrion until limited).

           

          Bob

          • 2. Re: Problem with GPIO interrupt
            denki_1669721

            thanks Bob

            I've checked said GPIOs and power supply port for both PSoC with scope AC coupling

            when motor is running, steady noise of 50mVp-p observed...no other noise or spike observed

             

            Here I've reattached related project file for reference

             

            In isgMain, I declared the ISR as

            CY_ISR_PROTO(ISR_BODY_SENSE_DET);

             

            and in isgPanel, signal used to activate isgMain's ISR as

            BODY_SENSE_ON_Write(1);

             

            Thanks in advance for your help

             

            Regards

            Kamari

            • 3. Re: Problem with GPIO interrupt
              rzzh

              Hi Kamari,

               

              How about adding a pull-down resistor for  BODY_SENS_DET?

              If PSoC4 suffered unexpected reset, The driver pin will keep Hi-Z for a while during boot. That may cause unstable signal on BODY_SENS_DET.

               

              Thanks,

              Ryan

              • 4. Re: Problem with GPIO interrupt
                denki_1669721

                Thanks Ryan

                But actually I've tried that too

                The reason why I configured BODY_SENS_DET to Hi-Z was,

                when I configured it to pull-up or pull-down, the input voltage became 2.6V no matter

                what BODY_SENSE_ON_Write was...means always ISR triggered

                 

                When I configured it to Hi-Z, then OK(means 0,1 based on input) but still got self triggered ISR.

                But today I tried again as your advise...it's work(means 0,1 based on input)  and no self triggered anymore

                 

                Still dont understand....