Quadrature Decoder (TCPWM) PSoC4 not counting.

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.
Anonymous
Not applicable

 Hi,

   

I have a problem getting the TCPWM quadrature detector to work. it's not counting !

   

I have used a quadrature detector in the past, UDB based and the app worked without any problems, only after replacing it with a more resource-smart alternative I cannot seem to make it work.

   

The automatically generated API within psoc creator does look different, but I only require the Start() and readCounter() calls...

   

1. the TCPWM based solution does not count, the read results always in 0... what am I doing wrong?
2. Asuming I can make it work with other (more) API calls....Why does a simple replacement of the detector implementation
    requires me to change the API anyway.... apart from the namechange of the readCounter method (GetCounter()) it simple      
    should work, that's the promise of a good API, right?

   

the attachment shows the schematic, inputs (p1[0], p1[1]) -> glitch filter (4us) -> TCPWM QD (x1, A+B=level, no interrupt)

   

    QuadDec_2_Start();

   

 

   

    CyGlobalIntEnable;

   

    for(;;)

   

    {

   

        sprintf(uart_tx_buffer, "%d", (uint16) QuadDec_2_ReadCounter() );

   

        txstring(uart_tx_buffer);

   

        txchar('\r');

   

        txchar('\n');

   

        

   

        CyDelay(100);              
    }

   

 

   

After changing back to the UDB implementation it works as expected, but consumes a lot of valuable resources on my PSoC4 (4245). I'm using latest version of PSoC creator, all updates ok etc...

Anybody run into this issue before?  any help very welcome ! 

   

 

   

 

   

// and yes it i'm using the UDB implementation the glitch filter could be moved inside... but i require glitch-free signals from A-input for other parts (not shown) of the design... 😉

0 Likes
5 Replies