I want to use the MSP430F1611 for a closed loop PID controller that has to operate at around 1 kHz. The input will be 4 analog signals that need to be sampled each control loop. There will be one output through an SPI connection.
With the processor running at 8 MHz this will give me 8000 cycles for each control loop. The ADC12 should take ~0.02ms for all 4 values plus the interrupt overhead. (Assuming the ADC12 can reach the 200ksps rate in this case) Regarding my SPI output I only need to send 12 bytes each control loop (no receive). With an SPI clock of 4 MHz (main clock divided by 2) this should take around 0.024ms plus 12 times the time it takes to refill the 8 bit shift register with a new value through the DMA.
The calculations necessary to get my output values from the input are fairly straight forward so I think this won’t cost many cycles. However I’m not quite sure how to estimate the overhead that is generated by interrupt routines and DMA transfers. Disregarding this extra time the ADC and SPI should only take up ~5% of the 1ms I have each loop.
I don’t have a lot of experience estimating performance requirements so I would greatly appreciate any help. In case you are wondering: Other higher performant versions of the MSP430 are not an option because I want/have to use this specific version of the MSP430. My main concern is the overhead generated by the ISR and the DMA transfers. If you have done something similar that could give me a better understanding of how to estimate my performance requirement that would also be greatly appreciated.
Thanks in advance for all helpful replies!