I'm working with the automotive function set on an MPC5634M (crank/cam/fuel/knock) and I seem to have control of my signals where the crank and cam sync and I'm able to generate fuel and knock signals that show up in the correct place with the correct width on an oscilloscope. Interrupts firing properly. Just works.
For the next part of my project I need to detect some incoming signals that are timed to the crank, so I'm using the IC function to count pulses, give me the position of those edges and generate an interrupt when N edges go by.
The problem that I'm having is that I don't seem to be able to generate interrupts on channels greater than 23. I started by fighting with channel 26 for a while, I could not get an interrupt to fire. Then moved to 16 while writing this question and things started working. I've tried a few more pins in-between, 25 no, 22 yes, 23 yes, 24 no. OH NO could it be a 24 bit encoding thing?
I took a look at the CIER in the eTPU in the debugger and it SEEMS to have 31 bits and the appropriate bits for channels 23 and 24 are set. But IC will only generate interrupts for channels <= 23.
The function microcode was generated on https://www.nxp.com/webapp/etpu_cw/ . My set consists of crank/cam/fuel/knock/ic/oc. The development environment is the latest version of S32DS using gcc. My board is a pair of TRK-MPC5634M boards purchased recently.
Andrei (from the Great White North)