I am trying to create complicated pulse train waveforms with the c6748 -- without needing a lot of cpu overhead. My question is whether to use the Enhanced High-resolution Pulse Width Modulator (EHPWM) that comes in the c6748. Or whether to use the Programmable Real-time Unit Sub-System (PRUSS) on the c6748. Or perhaps something else? Which approach would incur the least amount of cpu overhead?
Here are the specs:
My waveforms are digital, having only two values -- high or low -- and all the information is conveyed in the timing of the high/low pulses. The waveforms go something like this. High for 14 counts, then low for 14 counts -- Do that 9 times. Followed by high for 16 counts, then low for 16 counts -- Do that 8 times. The "counts" are timed by an external clock that must be at a specific frequency. (Or perhaps the "external clock" might be derived from the system clock -- if that is set at an appropriate frequency.) There will also be slightly different versions of that waveform all in a long continuous un-interrupted stream. I also need fairly tight control on when this pulse train starts. There should be no jitter or interrupts in this bit stream.
I could also have this pulse train stored in memory (as a stream of one's and zero's) and then have some sub-system (which sub-system?) clock these out a GPIO port in-sequence. That would be yet another way to accomplish my goal.
I'm looking for ways to off-load some most this tedium away from the CPU. What is your recommendation?
Thank you for your help.