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

AWR1843BOOST: 采用低速串行数据总线采集ADC数据

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

赞(0)
未经允许不得转载:TI中文支持网 » AWR1843BOOST: 采用低速串行数据总线采集ADC数据
分享到: 更多 (0)