AnsweredAssumed Answered

Are the eTPU application note APIs misleading about eTPU link channels?

Question asked by Peter Dufault on May 23, 2015
Latest reply on May 23, 2015 by Peter Dufault

After pulling my hair out about why a current controller eTPU function wouldn't run, and after verifying it would properly execute a step if I used a host service request to invoke it, I just decided to change the channel it was running on to the same eTPU.  It worked properly.  I found that links from eTPU A to eTPU B don't work.

To make a long story short, I think where the application notes (this is from Analog Sensing for DC converters) say something like:


CC_innerloop_chan (uint8_t) – Number of the channel on which an inner-loop controller (in slave mode) runs. In order to not activate any inner-loop controller, set the number to a channel with priority disabled. This parameter should be assigned a value of 0-31 for ETPU_A and of 64-95 for ETPU_B.


is not correct, I think this gets directly loaded into the link register:

| Engine Select |        Channel number                 |


|   6   |   5   |   4   |   3   |   2   |   1   |   0   |


Engine select:


0 0: Select this engine

0 1: Select engine A

1 0: Select engine B

1 1: Select other engine


and so 0-31 is Select this engine while 64-95 is Select engine B.


Am I right?  Is this well-known?  I had to dig into the eTPU reference manual to figure this out, which a consumer of the API in the application notes shouldn't need to do.  Google searches didn't help.