Part Number: MSP430F6779
Hi team,
For MPY32 hardware multiplier:
1. The code generated by EnergyMeasurementDesignCenter-1.40.00.03 is used.
2. MSP DSP Lib: DSPLib_1_30_00_02 is used.
3. Capture interrupts in ADC SD24 with 4K sampling frequency, call algorithm functions in emSwLib library in interrupts, and use MPY32 for analysis.
4. Takes 256 data from the data collected by the ADC for fft, using the function msp_fft_iq31, which executes outside of the interrupt.
Issue:
Using a set of test data for fft, it was found that the results were different after each conversion. The result of fft after an interrupt is turned off with __disable_interrupt before fft is performed is the same every time, as is the case with other fft algorithms. It should be that the msp_fft_iq31 was interrupted by the ADC and MPY32 was used during the MPY32 process, causing the MPY32 original data to be corrupted, resulting in different results each time the fft came out. The customer has tried to back up the MPY32-related registers when entering the interrupt calculation, and restore the the MPY32-related registers when exiting the interrupt, but the problem remains.

The customer would like to know is it possible to resolve this issue by restoring the MPY32 registers, or is there a way to solve this problem? NOTE: The interrupt cannot be turned off because some of the more important actions are taken in the ADC interrupt.
Could you help check this case? Thanks.
Best Regards,
Cherry


