Part Number: TMS320F28335
Tool/software: Code Composer Studio
Hi,
In a high temperature application I'm using the F28335 and the Resolver_Lib_Float.lib library. I have successfully implemented the rslver_algo_float() function, and I'm getting good quality angle updates every 16th ADC sample. However, due to the high temperature application I have reduced the system frequency to 90MHz and timing becomes an issue. Is there any way to reduce the number of sampling points required by the rslver_algo_float() function?
I realize that the x035 demo provided with the library package requires only 8 samples to produce an angle update. However, this example uses the Resolver_Lib_Fixed.lib library i.e. rslver_algo_fixed(). When I try to implement the 8 sample approach in my source code, the rsolvr_algo_float() fails to produce any angle data i.e. it never reaches the state where the angle data is calculated.
The following summarize what I have done in my attempt to reduce the number of sampling point required:
- DELAY_LENGTH set to 8
- Updated SINE_TABLE to match new DELAY_LENGTH
- Updated FIR_COEFF to match new DELAY_LENGTH (copied the coefficients from the x035 demo, but made them float type)
- Doubled SINE_CARRIER to maintain the resolver excitation frequency.
I suspect that with these changes the rslverOut.sineIndex never reaches the value where it triggers an angle calculation in the rslvr_algo_float() routine. Can this be the case?
Am I missing something in my approach?
Any help and pointers are much appreciated :)