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.

AM2634: AM2634 FSI Setup for Short Frames

Part Number: AM2634

Hi,

I am trying to setup a two lane FSI channel (FSI clock is 50 MHz) for short frames. First I did try to use the SW mode to select frames with less than 8 words. However I do not figure out howto configure it correctly. As soon as I configure for less then 7 Wds there is no FSI xmission anymore. It seems that I do miss something. Please find attached the function that is used (based on the TI example) to configure the Tx (Rx) Channel.

Q: What do I need to modify to configure it for 4Wds using the "FSI_FRAME_TYPE_4WORD_DATA"  frame type?

SW based FSI Tx Channel Setup:

static int32_t Fsi_appTxConfig(uint32_t txBaseAddr)
{
    int32_t     status;

    /* TX init and reset */
    status = FSI_performTxInitialization(txBaseAddr, FSI_APP_TX_PRESCALER_VAL);
  
    status += FSI_resetTxModule(txBaseAddr, FSI_TX_MASTER_CORE_RESET);
    FSI_clearTxModuleReset(txBaseAddr, FSI_TX_MASTER_CORE_RESET);

    /* Setting for requested transfer params */
    status += FSI_setTxSoftwareFrameSize(txBaseAddr, FSI_APP_FRAME_DATA_WORD_SIZE);
    status += FSI_setTxDataWidth(txBaseAddr, FSI_APP_N_LANES);

    /* Setting frame config */
    status += FSI_setTxUserDefinedData(txBaseAddr, FSI_APP_TX_USER_DATA);
    status += FSI_setTxFrameTag(txBaseAddr, FSI_APP_TX_DATA_FRAME_TAG);
    status += FSI_setTxFrameType(txBaseAddr, FSI_FRAME_TYPE_NWORD_DATA);

    return status;
}

I tried to do the following. However then nothing happens ...

static int32_t Fsi_appTxConfig(uint32_t txBaseAddr)
{
    int32_t     status;

    /* TX init and reset */
    status = FSI_performTxInitialization(txBaseAddr, FSI_APP_TX_PRESCALER_VAL);
  
    status += FSI_resetTxModule(txBaseAddr, FSI_TX_MASTER_CORE_RESET);
    FSI_clearTxModuleReset(txBaseAddr, FSI_TX_MASTER_CORE_RESET);

    /* Setting for requested transfer params */
    // status += FSI_setTxSoftwareFrameSize(txBaseAddr, FSI_APP_FRAME_DATA_WORD_SIZE); <-- not used
    status += FSI_setTxDataWidth(txBaseAddr, FSI_APP_N_LANES);

    /* Setting frame config */
    status += FSI_setTxUserDefinedData(txBaseAddr, FSI_APP_TX_USER_DATA);
    status += FSI_setTxFrameTag(txBaseAddr, FSI_APP_TX_DATA_FRAME_TAG);
   

    status += FSI_setTxFrameType(txBaseAddr, FSI_FRAME_TYPE_4WORD_DATA); <-- Modified

    return status;
}

br

Markus