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!