You are here

PSOC3 device doesn't respond (Hang / Suspended ?) | Cypress Semiconductor

PSOC3 device doesn't respond (Hang / Suspended ?)

Summary: 3 Replies, Latest post by AK55 on 12 May 2014 06:03 AM PDT
Verified Answers: 0
Last post
Log in to post new comments.
AK55's picture
User
4 posts

Hello all,

I am using PSOC3 device and configured it as USB HID device. It is usb powered and has 15 capsense keys and a slider, each with LED indication on board.

The PCB(capsense based) is pasted on 1.5mm thick acrylic sheet.

Afetr USB connection the device is recognised to PC as HID device & every functions work fine.

But at some stage, while I use, i observed that sometimes the data is not getting sent to PC at all. The device remains recognized to PC as HID device. But it remains in the hang state. Any capsense key pressed, it doesn't respond in that state.

I have to reinsert the usb to resume the action. There are LED indications on it, which remains ON, means power from PC is OK.  

Any Idea what is happening ? Is the capsense device getting hanged/busy ?

Hoping for kind reply


user_1377889's picture
User
10803 posts

"Hangs" can be caused by different reasons, a software-bug could be one. If you have got a miniprog3 and when you can connect it to your board, you might see what the reason is.

Bad Power supply is another frequent source of errors, check for noise & spikes with an oszilloscope.

 

Bob

user_14586677's picture
User
7648 posts

This is a brute force debug effort I would think. If you can debug while in-situ all the better.

 

I would start by creating an "alive" pin that I periodically pulse, and start with minimalist code

acessable, and increase code routines used/called until I hit a non responsive pin toggling.

 

HW wise look at code on any port with mixed I/O and make sure you do not have an infinite

loop situation if you examine a port with  floating pin configured in it, and your code stays in

a loop trying to test a pin with unknown state.

 

Re. Bobs suggestion, use DSO, set triggering V first to Vdd + .7, then Vss -4.7, looking for

any pin getting a transient outside allowable I/O pin levels. Then use infinite persistence

on scope and look at supply railsfor a few seconds to see if you have load transients causing

supply to drop out of spec.

 

This is tedious at best.

 

Lastly look at Capsense layout and compare to recomendations in Cypress Capsense

handbook.

 

Normal
0

false
false
false

EN-US
X-NONE
X-NONE

MicrosoftInternetExplorer4

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}

http://www.cypress.com/?rID=66647

http://www.cypress.com/?rID=48787

http://www.cypress.com/?rID=58549

 

Regards, Dana.

AK55's picture
User
4 posts

I assigned LED on condition on while loop[while(!USBFS_bGetEPAckState(1))] in my code. And kept it for running.

After 3 days running this LED was seen in ON state.

Thus the execution is staying in this loop. Which kind of ACK this function provides?

then why the ACK is not received?

 

Log in to post new comments.