Part Number: TMS320F28375D
Dear TI,
I have an application running on the CLA, the CLA services the ADC's processes the values, and then generates an interrupt to CPU2, CPU2 has an interrupt service routine that just copies the data from shared CLA/CPU ram to the shared GSRam (between CPU2 and CPU1) so that CPU1 can read it as well.
The main thread of CPU2 is just polling a GPIO pin to 'say go' , which it in turn sets a flag that the CLA can read to know to start.
I just set the qualification bits on the inputs of the part.
GpioCtrlRegs.GPACTRL.bit.QUALPRD1 = 0x14;
GpioCtrlRegs.GPAQSEL1.bit.GPIO8 = 0x2;
and I have built in some tests in the CLA code to ensure I know when its not running fast enough, ie: not servicing all the ADCs... I essentially set a bit when I service ADCA, B, C, D.... and if it starts servicing any of them again before it completes all 4 and calls an interrupt to CPU2, then I trigger a debugstop so I can see that it failed to complete.
When I set the above registes, which should simply set it to 1us qualification period for the GPIO input using 6 samples (200MHz part) I now have the program in CLA hitting the debug stop.
So somehow the change of qualification period affects the CLA interrupt speed...
So the question is, by changing the qualification period for the GPIO input... shouldn't that just change how often the input pin register changes value.... so from a program execution point of view, CPU2 who's main application is just continually reading the GPIO pin, should just read more values of the same thing? Or does this somehow halt/slow down the processor as it waits for that input? which in turn might slow down the CPU2 interrupt processing which the way I have set it up, would then affect the CLA since it has a flag that waits for the CPU2 to complete it's interrupt...
Also could you clarify the documentation under GPIO (spruHM8f) section sections 7.4 and subsections... they talk about SysCLKOUt but in the registers it refers to PLLSYSCLK not SYSCLKOUT. Also under section 2 clocking I cant find a definition of sysclkout. If I have set the part to run at 200MHz is sysclkout 200MHz? is pllsysclk = sysclkout? where is it shown in the clocking section? For now I have assumed in my calculation s of the qualification that SYSCLKOUT = 200MHz or 1/200MHz for period.
where do you list the trigger points of your GPIO to read a 1 or a 0 in terms of voltage?
the reason for the large delay is a lot of ringing is observed on the input, so the problem could be solved by addressing that in hardware, or by adding the long qualification to wait for the input to stabilize after a transition.
but either way it would be good to know why changing the GPIO qualification would impact the CPU2 execution speed.
Thanks.