Problem with GPIO interrupt

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
KaSo_1669721
Level 1
Level 1

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

0 Likes
1 Solution

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....

View solution in original post

0 Likes
4 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

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

0 Likes
lock attach
Attachments are accessible only for community members.

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

0 Likes

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

0 Likes

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....

0 Likes