I am researching to use LCU for PWM, for which I am planning to use the rise and fall filters to create complementary PWM from a single eMIOS PWM input. I have got a working set up and it is mostly working as expected.
However, for this set up I am looking to update the filter values (thus altering the deadtime) during operation. To visualize the updates I have created different scenarios, see the timing diagram below.
Now the thing that is unclear to me: what happens when a fall filter value has not been reached yet and the fall filter value is reduced to below the current fall filter count. Refer to the illustrations in red for what I see as the two possible outcomes.
1. The update of the fall filter value happens before a match - since there is no match, the output is only deasserted at the following match, which is in the next period.
2. The update of the fall filter value happens before a match - since the new fall filter value is smaller than the current fall filter count, so the output is deasserted immediately.
The RM reads as follows:
Each filter starts accumulating clock cycles on the occurrence of the associated LUT event. The Rise Filter counts from an output assertion, and the Fall Filter counts from an output deassertion. When the number of clock cycles reaches the filter threshold (matches the specified filter value), the output flips to the new state. For example, if you specify a Rise Filter value of 100h, and the LUT event triggers an output assertion, the output signal does not assert until the 256th clock cycle after the event.
The RM explicitly states a "match of the specified filter value" and not greater than or equal to the specified filter value. This makes me suspect my first option will be the case.
Solved! Go to Solution.
Hi,
as per LCU designer, the LCU uses less than or equal comparators for filters and therefore whenever filter value (desired deadtime) is set below current filter count value then output will change accordingly not waiting for counter to overflow.
BR, Petr
Hi,
as per LCU designer, the LCU uses less than or equal comparators for filters and therefore whenever filter value (desired deadtime) is set below current filter count value then output will change accordingly not waiting for counter to overflow.
BR, Petr
Thanks for your swift reply @PetrS .
Correct me if I am wrong, but as I understand you, that would lead to option 2 in the timing diagram above.
Hi,
yes it leads to option 2 you outlined.
BR, Petr