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.

TMDSCNCD263P: FSI Pinmux

Part Number: TMDSCNCD263P
Other Parts Discussed in Thread: SYSCONFIG,

Hi,

I am working on getting FSI working on the AM263 control card. I have a very simple program running, which simply sends a ping frame and receives it:

        /* send ping frame*/
        status = FSI_setTxFrameType(txBaseAddr, FSI_FRAME_TYPE_PING);
        status += FSI_setTxFrameTag(txBaseAddr, FSI_FRAME_TAG1);
        status += FSI_startTxTransmit(txBaseAddr);
        status += SemaphoreP_pend(&gFsiTxSemObject, ClockP_usecToTicks(FSI_TX_TIMEOUT_US));
        if(status != SystemP_SUCCESS)
        {
            DebugP_log("failed to send ping frame\r\n");
            continue;
        }
        DebugP_log("sent ping frame\r\n");
        /* receive ping frame*/
        status += SemaphoreP_pend(&gFsiRxSemObject, ClockP_usecToTicks(FSI_RX_TIMEOUT_US));
        status += FSI_getRxFrameType(rxBaseAddr, &frameType);
        status += FSI_getRxPingTag(rxBaseAddr, &rxFrameTag);
        if (status != SystemP_SUCCESS)
        {
            DebugP_log("failed to receive ping frame\r\n");
            continue;
        }
        DebugP_log("received ping frame: frame tag = %u\r\n", rxFrameTag);
 
The program runs flawlessly when running in loopback mode; however, when I short rx to tx with jumper wires, and run in normal mode, the program does not work (no ping frame is received). 
My guess is that this is a pinmux issue since loopback mode bypasses the pinmux; however, I can't seem to find anything wrong with my setup. FSI signals are muxed with MCAN signals, but FSI is default because of the pull-up resistor on FSI_MUX_SEL. By the way, this documentation is incorrect (the pull-down resistor is not populated):
The MCAN signals go through a 1:2 signal routing mux. There is a pull-down resistor on the select line of the mux and therefore the MCAN signal routing is the default. 
I am also fairly certain that my AM263 Pinmux is setup correctly.  From the PROC1592E2 schematic:
 
FSIRX2_CLK J2
FSIRX2_DATA0 G4
FSIRX2_DATA1  J3
 
FSITX2_CLK G3
FSITX2_DATA0 H2
FSITX2_DATA1 G1
 
Sysconfig setup:

fsirxsyscfg.png
fsitxsyscfg.png
I also don't think there is anything wrong with my interrupt setup because I don't believe the loopback program would work if there was something misconfigured here. 
 
Am I missing something? Any recommendations on where to look next?

Thanks,
 
-Jared
  • I ran some more tests. It seems that both the fsi_loopback_polling and fsi_loopback_interrupt examples in the AM263 MCU+ SDK version 11.00.00.19 do not work when loopback mode is disabled.

    When testing, the only modification I've made is:

    -   status = FSI_enableRxInternalLoopback(rxBaseAddr);
    
    +   status = FSI_disableRxInternalLoopback(rxBaseAddr);

    I have jumpered FSITX2_CLK to FSIRX2_CLK and FSITX2_DATA0 to FSIRX2_DATA0 using jumpers that came populated on the AM263 Control Card (TMDSCNCD263P rev PROC159B).
    In addition to the changes above, I had to make some changes to the SysConfig setup. The example.sysconfig is setup for using FSI instance/module 0 which is incorrect, it needs to use FSI instance/module 2 as per the schematic. This misconfiguration leads me to believe that FSI has never been tested outside of loopback mode on this board.
    Please let me know if there is anything that I am missing here. I have tested this on two separate control cards, so I do not believe this is a hardware issue and should be very easy to reproduce.
    Thanks
    - Jared
  • Any suggestions on this? FSI is critical to our design, so any help would be greatly appreciated!

  • Hi Jared,

    Apologies for the delay, Please expect a response by tomorrow.

  • Okay, thank you for looking into this.

  • Please let me know if there is anything that I am missing here. I have tested this on two separate control cards, so I do not believe this is a hardware issue and should be very easy to reproduce.

    Hi Jared,

    There is a MUX between MCAN and FSI on AM263Px Control Card. We need to make sure the signals are routed properly for FSI2 here. You do need "FSI_disableRxInternalLoopback()" API call as well.

    Can you please try the following over your current configuration:

    1. In your example.syscfg, add a IO-Expander instance.

    2. Configure the FSI_MUX_SEL as "output" mode and "high" state.

    Can you please let me know if this helps? If this does not, can you please share your CCS project so I can use the exact project you have and test out the configuration on my end.

    Regards,
    Shaunak

  • Also just to confirm,

    The shorting is done for clock, data0 and data1 (all three) right? Since FSI Tx will take clock from FSI Rx.

    Regards,
    Shaunak

  • Hi Shaunak,

    Thanks for getting back to me. I was originally only shorting clock and data0, as we were only using one data line in the software. Could this cause issues?

    I also was not setting the FSI MUX SEL in sysconfig via the IO expander, so this would certainly explain the issues I am seeing.

    I tried updating sysconfig to set FSI MUX SEL like you showed above; however, the code is hanging on I2C_transfer(). I am assuming this is due to improper I2C setup in sysconfig.

    Do you see anything wrong with my setup?

    Here is a link to my ccs project.


    Thanks for your help,

    Jared

  • fsi_loopback_interrupt_am263px-cc_r5fss0-0_nortos_ti-arm-clang.zip

    Here is zip of the project in case the Dropbox link is broken.

    Thanks again,

    Jared

  • Resolved int this thread.