This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x: QEP module in PWMSS

On a AM335x CPU (Beaglebone Hardware) I run the QEP modules in the PWMSS subsystems. All works well, unless I try to switch the Quadrature Count mode (QDECCTL:QSRC bits). My target is to change the mode dynamically (while the module is running). This works well when I switch from Quadrature-count mode to Up-count mode.

But when I switch the other way from Up-count mode to Quadrature-count mode, the Edge Caption Unit doesn't generate UPEVNT signals at low speed for a certain time. Then, after some time (or at high speed), it starts to work as expected. The down-time at low speed varies between 5 and about 500 Unit timeout events (at random).

The TRM says

The QCAPCTL register should not be modified dynamically (such as switching CAPCLK
prescaling mode from QCLK/4 to QCLK/8). The capture unit must be disabled before
changing the prescaler.


I don't change the prescaler (CCPS bits), just the binary divider (UPPS bits). But even if I disable the Edge Caption Unit before changing its configuration and re-enabling it, it doesn't work immediately.

Did anybody see this issue yet? Or solved it? If so, how?

Thanks in advance!