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/TMDSCNCD280049C: fsi_ex1_loopback_cpucontrol.c External Connections Question

Part Number: TMDSCNCD280049C
Other Parts Discussed in Thread: TMDSHSECDOCK, C2000WARE, TMDSFSIADAPEVM

Tool/software: Code Composer Studio

Hello,

I am currently working through the fsi_ex1_loopback_cpucontrol project that is available to download on C2000Ware. I am using a TMDSCNCD280049C controlcard and a TMDSHSECDOCK docking station. I am able to run the project with internal connections (EXTERNAL_FSI_ENABLE == 0), however when I try to run the project using external connections (EXTERNAL_FSI_ENABLE == 1) I get to the ESTOP0 on line 363 of fsi_ex1_loopback_cpucontrol.c, which is due to the txTimeOutCntr  and rxTimeOutCntr going down to 0 (the receiver isn't receiving anything from the transmitter):

    //
    // Coming out of infinite while loop means timeout occurred for one of Tx
    // or Rx transmit/receive events. Debug further to root-cause
    //
    ESTOP0;

I am assuming that my external connections are incorrect, below are the instructions (lines 43-62) in the comments on what external connections I should make. 

//!	 External Connections Required between FSI TX and RX of the same device:	
//!     - FSIRX_CLK  to  FSITX_CLK
//!     - FSIRX_RX0  to  FSITX_TX0
//!     - FSIRX_RX1  to  FSITX_TX1 
//!
//!  ControlCard FSI Header GPIOs:
//!     - GPIO_27  ->    FSITX_CLK
//!     - GPIO_26  ->    FSITX_TX0
//!     - GPIO_25  ->    FSITX_TX1
//!     - GPIO_13  ->    FSIRX_CLK
//!     - GPIO_12  ->    FSIRX_RX0
//!     - GPIO_11  ->    FSIRX_RX1
//!
//!  LaunchPad FSI Header GPIOs:
//!     - GPIO_7   ->    FSITX_CLK
//!     - GPIO_6   ->    FSITX_TX0
//!     - GPIO_25   ->    FSITX_TX1
//!     - GPIO_33  ->    FSIRX_CLK
//!     - GPIO_12  ->    FSIRX_RX0
//!     - GPIO_2  ->    FSIRX_RX1


I am trying to get FSI to work just on the singular 280049C using the i/o's on the control card via the docking station, no other device.

Below are the connections I have for J1 of the TMDSCNCD280049C (they're not in the Piccolo F280049 controlCARD Information Guide) so I deduced them from the pinout on J2 of my TMDSFSIADAPEVM.

FSIRX_RX0

FSIRX_RX1

FSIRX_CLK

GND

FSITX_TX0

FSITX_TX1

FSITX_CLK

GND

My question is: am I supposed to connect the "External Connections Required between FSI TX and RX of the same device" or the "ControlCard FSI Header GPIOs" or both? 



  • Hi Bernard,

    The details mentioned in the comment section of the source code are in two parts:

    A) The connections to be made externally for the external loopback that you are working on --

    //!  External Connections Required between FSI TX and RX of the same device:   
    //!     - FSIRX_CLK  to  FSITX_CLK
    //!     - FSIRX_RX0  to  FSITX_TX0
    //!     - FSIRX_RX1  to  FSITX_TX1
    B) The pin out details of each of the above.
    //!  ControlCard FSI Header GPIOs:
    //!     - GPIO_27  ->    FSITX_CLK 
    //!     - GPIO_26  ->    FSITX_TX0
    //!     - GPIO_25  ->    FSITX_TX1
    //!     - GPIO_13  ->    FSIRX_CLK
    //!     - GPIO_12  ->    FSIRX_RX0
    //!     - GPIO_11  ->    FSIRX_RX1
    For external loopback, you have to make connections as mentioned in part A. To ensure connection between FSIRX_CLK and FSITX_CLK, referring part B, GPIO_13 on the controlCARD has to connected to GPIO_27. Similarly, GPIO_12 [FSIRX_RX0] to be connected to GPIO_26 [FSITX_TX0] and lastly, GPIO_11 [FSIRX_RX1] to be connected to GPIO_25 [FSITX_TX1] externally.
    You can refer to the internal loopback diagram to get more insight on the connections to be made.
    Hope this helps.
    Thanks,
    Aditya
  • Hello Aditya,

    Anyone who has experience with any of the C2000Ware fsi examples is welcome to contribute as well. This setup in the software and hardware is used in all 16 fsi examples provided.

    Thank you! Your response helped me understand the hardware connections to make, however I'm still having the same issue where rxTimeOutCntr  and txTimeOutCntr go to 0 leading me to an error. I would really appreciate if you could help me find my issue, I can describe my setup in a more detail.

    Hardware-wise, I'm using the TMDSHSECDOCK docking station with using the usb-mini plugged into J17 to power it. SW is "on." My TMDSCNCD280049C control card is plugged into the 120-pin J3A connector. The docking station powers the control card MCU via the fingers.

    A separate usb-mini powers the isolated XDS100v2 Emulator circuitry on the control card via J1:A. The tables below show how S1 and S1:A switches are configured (as per the control card information guide my choices squared in red) on the control card.

    Software-wise I was able to successfully complete this lab with the internal loopback (EXTERNAL_FSI_ENABLE == 0), my only change is to enable external loopback (EXTERNAL_FSI_ENABLE == 1).

    Below are the signals and outputs I am getting when I run the program. Note that FSI_DataWidth nLanes = FSI_DATA_WIDTH_1_LANE so I am not expecting any signals on FSIRX_RX1 or FSITX_TX1.

    Signal

    280049C GPIO

    TMDSHSECDOCK Pin

    Output (experimental)

    FSITX_CLK

    GPIO_27

    81

    3.3V DC

    FSITX_TX0

    GPIO_26

    79

    3.3V DC

    FSITX_TX1

    GPIO_25

    77

    Noise

    FSIRX_CLK

    GPIO_13

    59

    Noise

    FSIRX_RX0

    GPIO_12

    57

    Noise

    FSIRX_RX1

    GPIO_11

    73

    Noise

    To view these signals I used my oscilloscope, below is a screenshot of the FSITX_CLK signal. Below that is the FSIRX_CLK signal. My oscilloscope's  positive input is on the corresponding docking station pin. My oscilloscope's negative input is to the GND of the docking station (which powers the MCU).

    From the information above, are you able to tell why my FSI TX signals are 3.3V DC and FSI RX signals are noise?                                                                                                                         

  • Hi Bernard,

    Thanks for the detailed information.

    I tried to recreate the issue on my side and I was able to run the code with the configurations which you mentioned. Since you mentioned that you have got 3.3V on the FSITX_CLK and noise on the FSIRX_CLK pin, same with the FSI_TX0 and FSI_RX0, can you check your external connections from pin 81 to pin 59 and from pin 79 to pin 57 whether they are solid? 

    At least the data on pin FSITX_CLK and FSIRX_CLK should be same as they are to be externally shorted with a jumper. Same thing can be expected for FSI_TX0 and FSI_RX0. 

    Thanks,

    Aditya

  • Hello Aditya,

    I should’ve mentioned that my values were with no jumpers connecting any pins. After jumping the pins I can check FSIRX_CLK and get back to you!

  • Hi Bernard,

    Post our offline discussion, it was found that there was error in the initialization part of the device which has been solved.

    Thanks,

    Aditya