Multiple PSP Module Specific Considerations
Classic Module Support
On classic modules, MultiplePSP is not supported. Instead a similar function is provided called MuxPSP.
PSP Behavior when Pulse Timings Change
Timings are typically applied asynchronously to where they may occur and so a change in timing (be it the start angle, stop angle or the duration) may impact a pulse that has already started. MotoHawk will take steps to ensure that a change in timing won't result in a pulse being missed, but the specific actions taken are also dependant upon the capability of the module in use.
Behavior of Modules without an eTPU
A change of timing on modules without an eTPU that support the PSP behavior will not affect an active pulse. An active pulse is either asserted or about to assert. The about to assert region is also module specific, but in general terms it means that the closest preceding encoder tooth relative to where the pulse is to start has already been observed. Such a pulse will be scheduled with the old timing and the new timing will be applied once the pulse has completed. Thus extending or reducing the duration of a pulse timing on such a module will have no impact on the active pulse.
Behavior of Modules with an eTPU
Whether a change of timing on modules with an eTPU will affect an active pulse (a pulse that is either asserted or about to assert) is defined by the control mode being used by the pulse.
An active PSP output pulse using the Hard Start/Hard Stop control mode will behave in a similar manner to modules without an eTPU. In short, an active pulse won't be affected by a change of timing. However it should be noted that the window that defines whether a pulse is about to assert for an eTPU pulse is very small, typically less than 1 degCA. Thus a pulse scheduled to start at 10 degAfTDC#1 that is to be updated to have a new timing of 20 degAfTDC#1 and which is updated (say) at 9 degAfTDC#1 would accept the new timing, but that same update executed one degree later at 10 degAfTDC#1 wouldn't (because the pulse would have already physically started).
An active PSP output pulse using the Hard Start/Hard Duration control mode can be affected by a change of timing. These various situations apply:
- Reducing the duration of a pulse that is still asserted will reduce the duration of the asserted pulse and the pulse will terminate if the pulse's duration has already exceeded the newly applied duration timing.
- An asserted pulse will also adopt a new duration that is longer. This will effectively extend the pulse's duration. However a pulse that has just completed won't re-start in order to deliver additional duration. The duration would instead be applied the next time the pulse occurred.
- The start timing can't be altered on a pulse that has already started, but the stop timing is still applicable and will influence the observed behavior.
- A pulse that is due to occur next, but that has not yet started, that has its start timing advanced may assert immediately if the engine position where the timing update occurs implies that the pulse should have already started. For example, a pulse that has an old timing of 20 degAfTDC#1, which has its timing change to be 10 degAfTDC#1, would assert immediately if the the current engine position when the update occurred was 15 degAfTDC#1. In effect the pulse's start timing was 5 degAfTDC#1 in this instance. Subsequent pulses would use the new timing of 10 degAfTDC#1 (assuming there were not further updates in that time).
Use the Hard Start/Hard Stop mode to avoid having asserted pulse updating in this fashion. An eTPU capable module treats Hard Stop and Hard Duration with equal weight and so the modes can be used interchangeably so far as pulse generation is concerned. What does change is the update behavior of a pulse that has its timing altered.