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

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

cross mob
Anonymous
Not applicable

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

    

   
   


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

"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

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

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.

   

 

   

    

   

          

   

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

   

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

   

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

   

 

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

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?

0 Likes