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