TI中文支持网
TI专业的中文技术问题搜集分享网站

請問如何透過LVDS 介面傳輸我們自訂的Data 在AWR1843上

請問:

我在Trace AWR1843的sample code時候發現以下:

typedef enum CBUFF_DataFmt_e
{
/**
* @brief Only ADC Data is to sent out
*/
CBUFF_DataFmt_ADC_DATA = 0x0,

/**
* @brief Chirp Parameters + ADC Data
*/
CBUFF_DataFmt_CP_ADC,

/**
* @brief ADC Data + Chirp Parameters
*/
CBUFF_DataFmt_ADC_CP,

/**
* @brief Chirp Parameters + ADC Data + Chirp Quality
*/
CBUFF_DataFmt_CP_ADC_CQ,

/**
* @brief ADC + User Data
*/
CBUFF_DataFmt_ADC_USER,

/**
* @brief Chirp Parameters + ADC Data + Chirp Quality + User Data
*/
CBUFF_DataFmt_CP_ADC_CQ_USER,

/**
* @brief Maximum Data format value.
*/
CBUFF_DataFmt_MAX
}CBUFF_DataFmt;

有提供CBUFF_DataFmt_ADC_USER ,視乎可以讓我們user自己透過LVDS傳輸我們要傳送的資料

請問要把我們要傳送的資料放置在哪裡??或是指向到哪邊去?或要做什麼設定呢?

才能把資料透過LVDS傳輸出去

謝謝

Chris Meng:

你好,

你可以参考mmw demo里面使用LVDS的sw session来传输你们定制的信息。
C:\ti\mmwave_sdk_03_04_00_03\packages\ti\demo\xwr18xx\mmw\mss\mmw_lvds_stream.c– MmwDemo_LVDSStreamSwConfig()

user6131882:

回复 Chris Meng:

您好,

請問是否有一些範例可以參考呢?

請問是將我們要的傳輸的data放在sessionCfg.u.swCfg.userBufferInfo[1].address 中即可嗎?

int32_t MmwDemo_LVDSStreamSwConfig (MmwDemo_DSS_DataPathObj *datPathObj){ CBUFF_SessionCfg sessionCfg; MmwDemo_LVDSStream_MCB_t* streamMcb = &gSrrDSSMCB.lvdsStream; int32_t errCode; int32_t retVal = MINUS_ONE;

memset ((void*)&sessionCfg, 0, sizeof(CBUFF_SessionCfg)); /* Populate the configuration: */ sessionCfg.executionMode = CBUFF_SessionExecuteMode_SW; sessionCfg.edmaHandle = datPathObj->edmaHandle[MMW_LVDS_STREAM_EDMA_INSTANCE]; sessionCfg.allocateEDMAChannelFxn = MmwDemo_LVDSStream_EDMAAllocateCBUFFSwChannel; sessionCfg.freeEDMAChannelFxn = MmwDemo_LVDSStream_EDMAFreeCBUFFSwChannel; sessionCfg.frameDoneCallbackFxn = MmwDemo_LVDSStream_SwTriggerFrameDone; sessionCfg.dataType = CBUFF_DataType_COMPLEX; sessionCfg.u.swCfg.userBufferInfo[0].size = HSIHeader_toCBUFFUnits(sizeof(MmwDemo_LVDSUserDataHeader_t)); sessionCfg.u.swCfg.userBufferInfo[0].address = (uint32_t)&(streamMcb->userDataHeader); if(datPathObj->numDetObj != 0) { sessionCfg.u.swCfg.userBufferInfo[1].size = HSIHeader_toCBUFFUnits((datPathObj->numDetObj) * sizeof(MmwDemo_detectedObj)); sessionCfg.u.swCfg.userBufferInfo[1].address = (uint32_t)datPathObj->detObj2D; } else { sessionCfg.u.swCfg.userBufferInfo[1].size = 0; sessionCfg.u.swCfg.userBufferInfo[1].address = 0; } /* Do we need to enable the header? */ if(datPathObj->cliCfg->lvdsStreamCfg.isHeaderEnabled) { /* Create the HSI Header to be used for the HW Session: */ if (HSIHeader_createHeader (&sessionCfg, true, &(streamMcb->swSessionHSIHeader), &errCode) < 0) { /* Error: Unable to create the HSI Header; report the error */ System_printf("Error: MmwDemo_LVDSStream_config unable to create HW HSI header with [Error=%d]\n", errCode); goto exit; } /* Setup the header in the CBUFF session configuration: */ sessionCfg.header.size = HSIHeader_getHeaderSize(&streamMcb->swSessionHSIHeader); sessionCfg.header.address = (uint32_t)&(streamMcb->swSessionHSIHeader); }

/* Create the SW Session. */ streamMcb->swSessionHandle = CBUFF_createSession (gSrrDSSMCB.lvdsStream.cbuffHandle, &sessionCfg, &errCode); if (streamMcb->swSessionHandle == NULL) { /* Error: Unable to create the CBUFF SW session */ System_printf("Error: MmwDemo_LVDSStream_config unable to create the CBUFF SW session with [Error=%d]\n", errCode); goto exit; }

/* Control comes here implies that the LVDS Stream has been configured successfully */ retVal = 0;

exit: return retVal;}

Chris Meng:

回复 user6131882:

你好,

这段代码本身就是一个例子,你可以把你的的数据放在sessionCfg.u.swCfg.userBufferInfo[0].address 或者sessionCfg.u.swCfg.userBufferInfo[1].address。注意这个地址必须是一个全局变量。

赞(0)
未经允许不得转载:TI中文支持网 » 請問如何透過LVDS 介面傳輸我們自訂的Data 在AWR1843上
分享到: 更多 (0)