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/TIDM-1000: F28004x Control Card Rev B

Part Number: TIDM-1000
Other Parts Discussed in Thread: C2000WARE, SFRA, TMS320F28375D

Tool/software: Code Composer Studio

Hi,

I'm trying to use the F28004x Control Card with the 3 Phase Vienna PFC. Everything seems to be working but when I switch to the SDFM current sense option I lose my current feedback. I've updated to CCS 8.2 in order to have the Resource Explorer work properly. I originally was using the F2837x Control Card, and had no issues with the SDFM enabling the SDFM. I have switched back to the F2837x Control card and started a new project using CCS 8.2 and have had no issues.

The current feedbacks were working while going through build 1 to 4 with the F28004x Control Card, but once I set SDFM_SENSING to 1 they stopped working. After I debug and run the code the guiIrms(1/2/3) variables in the scripting console don't update, they just remain 0. 

Is there any other variables I need to set for the F28004x Control Card? I have S5 and S6 switches in the proper positions. SW5 both down, SW6 both up.

Thanks,

  • TIDM-1000 on SDFM with F28004x is not a supported SW option.
  • Just a little confused, the TIDM-1000 3 Phase PFC Design Guide it makes it sound like the SDFM is usable on the F28004 Control Card. In section 5.2 is mentions setting SW5 and SW6 to certain positions to route the signals to the proper pins.

    Certain settings on the device control card are required to communicate over JTAG and use the isolated
    UART port. The user must also provide a correct ADC reference voltage. The following settings are
    required for revision A of the TMS320F280049M control card (refer to the info sheet located at
    <sdk_install_path>\c2000ware\boards\controlCARDs\TMDSCNCD280049M.
    1. Set both ends of S1:A on the control card to ON (up) position to enable JTAG connection to the device
    and UART connection for SFRA GUI. If this switch is OFF (down), the user cannot use the isolated
    JTAG built in on the control card, nor can the SFRA GUI communicate with the device.
    2. Connect the USB cable to J1:A to communicate with the device from a host PC on which CCS runs.
    3. For the control loop, use the internal reference of the TMS320F28004x and move the S8 switch to the
    left (that is, pointing to VREFHI).
    4. For the best performance of this reference design, remove the capacitor connected between the
    isolated grounds on the control card, C26:A.
    5. GPIO24 through GPIO27 are muxed on the TMS320F280049M control card. To route them to the
    correct control card pins for the SDFM, put all the switches on SW5 to OFF (down) and all the switches
    on SW6 to ON (up).


    Also the firmware seems to have all the sections regarding the SDFM functionality. Is the code incomplete for SDFM support? Is it possible to get the SDFM sensing working with some firmware changes?

    Thanks,

    Luke Nicholson

  • Luke,

    What I mean by not supported is that we did not test the HW with that option and was not part of our SW validation plan. 

    1. Check if you have SDFM Clock, you can probe this using the SD CLK test point we have on the board.

    2. Next you will need to fix a few things in the code. 

    I would begin by looking at the SDFM settings. I do think the setting below will not work. As that pin on the control card in pin 26 and so on, I have higlighted some changes for you. 

    // SDFM PINS & FILTERS
    #define IL1_SDFM_BASE SDFM1_BASE
    #define IL1_SDFM_FILTER SDFM_FILTER_14
    #define GPIO_IL1_SDFM_DATA 58
    #define GPIO_IL1_SDFM_DATA_PIN_CONFIG GPIO_58_SD_D4
    #define GPIO_IL1_SDFM_CLOCK 59
    #define GPIO_IL1_SDFM_CLOCK_PIN_CONFIG GPIO_59_SD_C4

    #define IL2_SDFM_BASE SDFM1_BASE
    #define IL2_SDFM_FILTER SDFM_FILTER_23
    #define GPIO_IL2_SDFM_DATA 32
    #define GPIO_IL2_SDFM_DATA_PIN_CONFIG GPIO_32_SD_D3
    #define GPIO_IL2_SDFM_CLOCK 33
    #define GPIO_IL2_SDFM_CLOCK_PIN_CONFIG GPIO_33_SD_C3

    #define IL3_SDFM_BASE SDFM1_BASE
    #define IL3_SDFM_FILTER SDFM_FILTER_32
    #define GPIO_IL3_SDFM_DATA 1826
    #define GPIO_IL3_SDFM_DATA_PIN_CONFIG GPIO_1826_SD_D2
    #define GPIO_IL3_SDFM_CLOCK 27
    #define GPIO_IL3_SDFM_CLOCK_PIN_CONFIG GPIO_27_SD_C2





    
    

  • Manish,

    Thanks for the information, I was on the right path. I had already fixed the GPIO's in the firmware. I believe I have it working now, this is what I changed in the code;

    #define IL1_SDFM_BASE                    SDFM1_BASE
    #define IL1_SDFM_FILTER                  SDFM_FILTER_4 //1
    #define GPIO_IL1_SDFM_DATA               58
    #define GPIO_IL1_SDFM_DATA_PIN_CONFIG    GPIO_58_SD_D4
    #define GPIO_IL1_SDFM_CLOCK              59
    #define GPIO_IL1_SDFM_CLOCK_PIN_CONFIG   GPIO_59_SD_C4

    #define IL2_SDFM_BASE                    SDFM1_BASE
    #define IL2_SDFM_FILTER                  SDFM_FILTER_3 //2
    #define GPIO_IL2_SDFM_DATA               56 //32
    #define GPIO_IL2_SDFM_DATA_PIN_CONFIG    GPIO_56_SD_D3 //32
    #define GPIO_IL2_SDFM_CLOCK              33
    #define GPIO_IL2_SDFM_CLOCK_PIN_CONFIG   GPIO_33_SD_C3

    #define IL3_SDFM_BASE                    SDFM1_BASE
    #define IL3_SDFM_FILTER                  SDFM_FILTER_2 //3
    #define GPIO_IL3_SDFM_DATA               26 //18
    #define GPIO_IL3_SDFM_DATA_PIN_CONFIG    GPIO_26_SD_D2 //18
    #define GPIO_IL3_SDFM_CLOCK              27
    #define GPIO_IL3_SDFM_CLOCK_PIN_CONFIG   GPIO_27_SD_C2

    I also had to keep GPIO 24 connected to pin 75, the guide says to place both SW5 switches in the Off (down) position and SW6 in the On (up). I had to keep SW5 pins 2 and 3 connected to have a clock signal.

    One part I'm still a little confused on is the XBAR_MUX settings, I had also changed those to be filter 4,3, and 2 but that didn't work. I had to keep them as is. Below is what I changed them to;

    #define IL1_SDFM_SENSE_XBAR_MUX_VAL      XBAR_EPWM_MUX22_SD1FLT4_COMPH_OR_COMPL
    #define IL1_SDFM_SENSE_XBAR_MUX          XBAR_MUX22

    #define IL2_SDFM_SENSE_XBAR_MUX_VAL      XBAR_EPWM_MUX20_SD1FLT3_COMPH_OR_COMPL
    #define IL2_SDFM_SENSE_XBAR_MUX          XBAR_MUX20

    #define IL3_SDFM_SENSE_XBAR_MUX_VAL      XBAR_EPWM_MUX18_SD1FLT2_COMPH_OR_COMPL
    #define IL3_SDFM_SENSE_XBAR_MUX          XBAR_MUX18

    But like I said, this didn't work. The program would build and run but not read the current correctly. I changed them back to there original values but I'm not entirely sure why it works, since we are now using Filter 4, 3, and 2 instead of Filter 1, 2, and 3.  

  • Have another question, The reason main reason I switch from the F2837x control card to the F28004x card is because of processor size. The F28379D being 337 pins is a little overkill for our application, we are just using the processor for the PFC portion. If I were to design/layout my board using the F28379S (100 Pin) or the TMS320F28375D (100 pin) processor should I expect a lot of trouble converting the PFC firmware to work? After my initial review it seems like I would just have to change a few GPIO settings.

  • Luke, Sorry for delay in my reply.

    I will not expect the code to change much. All the changes should be limited to the settings.h file between the F28379S -> F28375D.

    In fact in between F28004x and F2837x there are only a -few things that are different, less than 5% of the code. Between the above two it should be even less.