Part Number:AWR1843BOOST
您好:
我根据此问题(e2echina.ti.com/…/iwr6843aopevm-mmwaveicboost-dca1000)中的说明,根据文档《使用低速串行总线的实时 ADC 原始数据采集方法 ZHCAB69 》修改AWR1843BOOST的out-of-box代码,试图将ADC数据通过UART传输出来。我根据文档修改代码后,代码DSP核在startSensor后跑飞。请协助分析一下。我的config文件如下:
flushCfg dfeDataOutputMode 1 channelCfg 15 5 0 adcCfg 2 1 adcbufCfg -1 0 1 1 1 profileCfg 0 77 121 7 38.61 0 0 100 1 128 4166 0 0 30 chirpCfg 0 0 0 0 0 0 0 1 chirpCfg 1 1 0 0 0 0 0 4 frameCfg 0 1 32 0 1000 1 0 lowPower 0 0 guiMonitor -1 0 0 0 0 0 0 cfarCfg -1 0 2 8 4 3 0 15 1 cfarCfg -1 1 0 8 4 4 1 15 1 multiObjBeamForming -1 1 0.5 clutterRemoval -1 0 calibDcRangeSig -1 0 -5 8 256 extendedMaxVelocity -1 0 lvdsStreamCfg -1 0 0 0 compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 measureRangeBiasAndRxChanPhase 0 1.5 0.2 CQRxSatMonitor 0 3 4 95 0 CQSigImgMonitor 0 63 4 analogMonitor 0 0 aoaFovCfg -1 -90 90 -90 90 cfarFovCfg -1 0 0 4.99 cfarFovCfg -1 1 -3.05 3.05 calibData 0 0 0
我在mss_main.c的代码修改部分如下:
函数MmwDemo_initTask内:
#define UART_DMA_TX_CHANNEL 1
#define UART_DMA_RX_CHANNEL 2
DMA_Params dmaParams;
DMA_Handle dmaHandle;
DMA_Params_init(&dmaParams);
dmaHandle = DMA_open(0, &dmaParams, &errCode);
if (dmaHandle == NULL)
{System_printf ("Error: Unable to open the DMA Instance [Error code %d]\n", errCode);MmwDemo_debugAssert (0);return;
}
////////////////////////////////////////
/* Setup the default UART Parameters */
UART_Params_init(&uartParams);
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.clockFrequency = gMmwMssMCB.cfg.platformCfg.sysClockFrequency;
uartParams.baudRate= gMmwMssMCB.cfg.platformCfg.loggingBaudRate;
uartParams.isPinMuxDone= 1U;
uartParams.dmaHandle= dmaHandle;
uartParams.txDMAChannel= UART_DMA_TX_CHANNEL;
uartParams.rxDMAChannel= UART_DMA_RX_CHANNEL;
函数MmwDemo_transmitProcessedOutput内:
if (pGuiMonSel->statsInfo)
{tl[tlvIdx].type = MMWDEMO_OUTPUT_MSG_STATS;tl[tlvIdx].length = sizeof(MmwDemo_output_message_stats);packetLen += sizeof(MmwDemo_output_message_tl) + tl[tlvIdx].length;tlvIdx++;MmwDemo_getTemperatureReport();tl[tlvIdx].type = MMWDEMO_OUTPUT_MSG_TEMPERATURE_STATS;tl[tlvIdx].length = sizeof(MmwDemo_temperatureStats);packetLen += sizeof(MmwDemo_output_message_tl) + tl[tlvIdx].length;tlvIdx++;
}
/* 20250526, ZHUYIFAN add here */
tl[tlvIdx].type = MMWDEMO_OUTPUT_MSG_L3_DATA;
tl[tlvIdx].length = subFrameCfg->numRangeBins*subFrameCfg->numDopplerBins*subFrameCfg->numVirtualAntennas*4;
packetLen += sizeof(MmwDemo_output_message_tl) + tl[tlvIdx].length;
tlvIdx++;
////////////////////////
header.numTLVs = tlvIdx;
/* Round up packet length to multiple of MMWDEMO_OUTPUT_MSG_SEGMENT_LEN */
header.totalPacketLen = MMWDEMO_OUTPUT_MSG_SEGMENT_LEN *((packetLen + (MMWDEMO_OUTPUT_MSG_SEGMENT_LEN-1))/MMWDEMO_OUTPUT_MSG_SEGMENT_LEN);
header.timeCpuCycles = Pmu_getCount(0);
header.frameNumber = stats->frameStartIntCounter;header.subFrameNumber = result->subFrameIdx;
/* Send stats information */
if (pGuiMonSel->statsInfo == 1)
{UART_writePolling (uartHandle,(uint8_t*)&tl[tlvIdx],sizeof(MmwDemo_output_message_tl));/* Address translation is done when buffer is received*/UART_writePolling (uartHandle,(uint8_t*)timingInfo,tl[tlvIdx].length);tlvIdx++;UART_writePolling (uartHandle,(uint8_t*)&tl[tlvIdx],sizeof(MmwDemo_output_message_tl));UART_writePolling (uartHandle,(uint8_t*)&gMmwMssMCB.temperatureStats,tl[tlvIdx].length);tlvIdx++;
}
/* 20250526, ZHUYIFAN add here */
UART_writePolling(uartHandle, (uint8_t*)&tl[tlvIdx], sizeof(MmwDemo_output_message_tl));
uint32_t *outdata;
outdata = 0x51000000;
UART_writePolling(uartHandle, (uint8_t*)(&outdata[0]), tl[tlvIdx].length);
tlvIdx++;
////////////////////////
/* Send padding bytes */
numPaddingBytes = MMWDEMO_OUTPUT_MSG_SEGMENT_LEN - (packetLen & (MMWDEMO_OUTPUT_MSG_SEGMENT_LEN-1));
if (numPaddingBytes<MMWDEMO_OUTPUT_MSG_SEGMENT_LEN)
{UART_writePolling (uartHandle,(uint8_t*)padding,numPaddingBytes);
}
其余部分均未修改。
多谢
Eirwen:
已经收到了您的案例,调查需要些时间,感谢您的耐心等待。
,
Ken Zhang:
Hi
1,建议您在UART_writePolling(uartHandle, (uint8_t*)(&outdata[0]), tl[tlvIdx].length) 之后添加断点,以观察该函数是否正常执行,
2,请您计算在预留的frame时间内,以配置的uart速率能否完整的将您的outdata数据发送出来。
Ken
,
yifan zhu:
收到,请问MSS软件侧是否需要提高波特率,我看到文档中提到需要将UART波特率提高到3.125M,同时我注意到1843应该是支持此波特率的。文档中并未提及如何修改DATA PORT的波特率,请问我需要做哪些相关修改?
Kevin
TI中文支持网


