This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320F28035: immigrant fixed point SFRA lib to 28035

Part Number: TMS320F28035
Other Parts Discussed in Thread: SFRA, CONTROLSUITE

Tool/software: Code Composer Studio

hello sir/madam,

i try to immigrate the SFRA in fixed point 28035 following the guide doc "C2000 Software Frequency Response Analyzer (SFRA) Library & Compensation Designer".

the serial communication is established successfully but when start to sweep, there is no indication the status bar, everything turn to grey and no error appear.

1. i add following code in the background task

if(initializationFlag == 1)
{
SFRA_IQ_INIT(&SFRA1);
initializationFlag = 0;
SFRA1.start = 1;
}
SerialHostComms();

2. i add SerialCommsTimer++ in the 1ms task.

3. add code in the ISR

SFRA_i32Iref = SFRA_IQ_INJECT(SFRA_i32IoutSetSlewed);

SFRA_IQ_COLLECT(&SFRA_i32Iref,&SFRA_i32Fdbk);

then i try to add SFRA_IQ_BACKGROUND(&SFRA1); in the background task which is not mentioned in the use of fixed point SFRA lib but float point SFRA lib.

here always a build error that

undefined first referenced
symbol in file
--------- ----------------
__IQ16log D:/WSP/DSP_WorkSpace/OBC33_LLC_SFRA/build/SFRA_IQ_Lib.lib<SFRA_IQ_BACKGROUND.obj>

my questions are.

1. what's the SFRA_IQ_BACKGROUND(&SFRA1) used for? is it a mandatory for fixed point SFRA lib?

2. how to remove this link error?

3. are there any points i missed making SFRA work?

thank you

  • 1. We already have a working example code for SFRA using F28035 in controlSUITE

    C:\ti\controlSUITE\libs\app_libs\SFRA\v1_20_00_00\examples\DPSWrkShpKit_SFRA_F28035

    please refer to the example and compare differences..

    Alos refer to the linker command file , and you will know that you may be missing some section definitions.

    2. If the SFRA GUI does not show any progress, you can put the sfra structure object in the watch window, then look at freqindex variable? does it show any increments? If no, then the issue is related to either the background task not being called, SFRA inject or collect not being called. You can set breakpoints in your code to check those routines are called.