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.

[参考译文] AWR6843ISK:在 AWR6843ISK 上运行具有固定数据的开箱即用演示

Guru**** 2401455 points
Other Parts Discussed in Thread: AWR6843ISK, AWR6843

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1534151/awr6843isk-running-outofbox-demo-with-fixed-data-on-awr6843isk

器件型号:AWR6843ISK
主题中讨论的其他器件: AWR6843

工具/软件:

尊敬的先生/女士:

我正在使用 awr6843isk+maveBooster 卡、我能够通过 CCS 调试器模式运行开箱即用演示。
我的要求是使用固定生成的数据运行开箱即用演示、而不是“通过 ADC 缓冲器传输前端数据“。
我已经了解了“C:\ti\mmwave_sdk_03_06_02_00-LTS\packages\ti\datapath\dpc\objectdetection\objdethwa\test\main.c“下提供的示例设计示例、以便了解如何使用固定生成的数据并生成必要的“TRIGGER_FRAME"和“和 TRIGGER_CHIRP 事件。

因此、根据我的理解、需要在“开箱即用演示“中执行以下步骤、以便使用固定生成的数据而不是“通过 ADC 缓冲器传输前端数据“:

1.需要对毫米波启动的执行进行注释 — 这样传感器启动命令将到达雷达前端,因此不会从射频前端触发任何帧事件

需要在代码中生成帧事件和 chrip 事件逻辑部分

将固定生成的数据映射到 ADC 缓冲区。

我已对开箱即用演示代码进行了上述更改、如下所示:

1.\ti\demo\xwr68xx\mmw\mss\mss_main.c 文件、在 MmwDemo_startSensor () 函数中注释 mmWave_start () 逻辑并调用我的用户逻辑函数“readdatalogic ()“

.(随附屏幕截图以供参考)

     

2.我已将必要的“帧事件和 chrip 事件逻辑部分添加到 myuser 逻辑 代码中(见下文):

static void readdatalogic()


int32_t errorCode = 0;
uint32_t frameIdx;
uint32_t numFrames=12;
uint32_t i、j、k;
int32_t = 0;
DPU_RangeProcHWA_OutParams outParms;
uint16_t rxIdx;
uint16_t numChirpsPerFrameRef=96;
uint16_t numChirpsPerFrame;
Uint16_t chirpIdxRef;
Uint16_t numAdcSamples=256;
uint16_t numRangeBins=256;
uint16_t MAX_NUM_RX_ANTENN=4;
uint16_t numRx天 线=4;



numChirpsPerFrame = numChirpsPerFrameRef;

/*设置种子值*/
dataInBuffer[0]= 0x12345678;

/*这个整数序列有一个足够长的周期,不能在数据立方体中重复。
这可确保如果测试通过、则不是多维数据集数据模式中的重复导致的
这可能会掩盖一些计算错误。*/
对于 (k = 1;k < MAX_NUM_RX_Antenna * numRangeBins;k++)

dataInBuffer[k]=(3* dataInBuffer[k-1]+ 5);
}

针对 (frameIdx = 0;frameIdx < numFrames;frameIdx++)




/*在此处发送 TRIGGER_FRAME */
ErrorCode = MmwDemo_DPM_ioctl_blocking (gMmwMssMCB.objDetDpmHandle、
DPC_OBJDET_IOCTL_TRIGGER_FRAME、
空、
0);
if (errorCode < 0)

SYSTEM_printf(“错误:无法发送 DPC_OBJDET_IOCTL_TRIGGER_FRAME [错误:%d]\n“、errorCode);

}
DebugP_log0(“App:DPC_OBJDET_IOCTL__TRIGGER_FRAME 已处理\n“);


/*处理帧中的线性调频脉冲循环*/
for (I=0;I< numChirpsPerFrame;I++)


/*读入一个线性调频脉冲数据*/
对于 (j = 0;j < numRx天 线;j++)

//16 字节对齐、4 个 Uint32 符号
Memcpy ((void *)&adcDataIn[j *((numAdcSamples+3)/4*4)]、(void *)&dataInBuffer[chirpIdxRef * MAX_NUM_RX_Antenna * numRangeBins + j *numRangeBins]、sizeof (uint32_t)* numAdcSamples);
}
ErrorCode = EDM_startTransfer (gMmwMssMCB.dataPathObj.edmaHandle、EDM_TPCC0_REQ_DFE_CHIRP_AVAIL、EDMA3_CHANNEL_TYPE_DMA);

if (errorCode!= 0)

SYSTEM_printf(“错误:EDMA 启动传输返回%d\n“、errorCode);
返回;
}
TASK_SLEEP (1);
}/*线性调频脉冲环路结束*/
}/*帧结束循环*/



}

3. 将固定数据映射到 ADU 缓冲区变量和必要的数据创建(附加屏幕截图)

4. c:\ti\mmwave_sdk_03_06_02_00-LTS\packages\ti\datapath\dpc\objectdetection\objdetrangehwa\objdetrangehwa.c、 static src 32_t dpc_ObjectDetection_ioctl () 内部

添加了 TRIGGER_FRAME(附了屏幕截图)

 

我的问题:

1.当我使用上述更改构建设计时、我会收到以下构建错误“../objdetrangehwa.c",“,第、第 880 行:错误#20:标识符“DPC_OBJDET_IOCTL_TRIGGER_FRAME"未“未定义“

请检查并确认我,什么是问题?

2.请确认,上述步骤是正确的,可以使用固定生成的数据运行  ,而不是“通过 ADC 缓冲器传输前端数据“ ,或者需要添加其他步骤?

此致、

Mani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mani:

    感谢您 通过 E2E 发布您的问题。 请允许我们的软件专家在一天内回复。 同时、您能否确认您计划在 AWR6843 器件上使用硬件在环 (HIL)?

    此致、
    Deexith。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Deexith、

    感谢您的答复。

    如果我理解您的问题正确、您是否参考 awr6943isk 中的硬件加速器? 或其他什么吗?

    我的要求是 使用固定的 i 和 q 生成的数据 样本或从.bin 文件读取 i 和 q 样本来运行开箱即用示例。因此 、我想绕过发送到射频前端的传感器启动 API 命令、避免 直接从 ADC 缓冲区读取并处理的实时 i 和 q 样本...

    请确认上述处理步骤是否正确或是否遗漏了任何其他步骤?

    此致、

    Mani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我 通过在 objdetrangehwa.h 文件中添加命令来解决了“DPC_OBJDET_IOCTL__TRIGGER_FRAME"未“未定义的错误问题(随附屏幕截图)

    我通过 CCS 成功构建 DSS 和 MSS 并在调试器模式 下加载、但当我通过工业可视化工具发送配置文件来运行设计时、我没有在可视化工具和 CCS 控制台上获得任何输出 、只是  没有显示太多进度、因此我为提供“DPC_OBJDET_IOCTL_TRIGGER_FRAME"而“而添加的更改似乎没有运行后续处理。

    我随附了以下文件以供您参考,这些文件取自开箱即用示例源文件 — 修改    /更改已完成:

    1.mss_main.c

    e2e.ti.com/.../7484.mss_5F00_main.c

    2. objdetrangehwa.c

    e2e.ti.com/.../objdetrangehwa.c

    3.objdetrangehwa.h

    e2e.ti.com/.../objdetrangehwa.h

    用于通过工业可视化工具发送的 4.profile_3d_InputBin(config 文件)

    e2e.ti.com/.../profile_5F00_3d_5F00_InputBin.cfg

    随附一步一步执行流程屏幕截图以供您参考:

    1.加载 DSS 和 MSS 构建文件并在 CCS 调试器上运行(您可以看到 DPM 同步模块成功完成)

    2.sending 使用工业用过道器的配置文件

    3.配置成功发送,但没有经过处理的检测数据 被可视通道接收到

    发送配置文件后的 CCS 控制台状态

    并 粘贴更新后的  readdatalogic () 代码

    static void readdatalogic()


    int32_t errorCode = 0;
    uint32_t frameIdx;
    uint32_t numFrames=12;
    uint32_t i、j、k;
    int32_t = 0;
    DPU_RangeProcHWA_OutParams outParms;
    uint16_t rxIdx;
    uint16_t numChirpsPerFrameRef=96;
    uint16_t numChirpsPerFrame;
    Uint16_t chirpIdxRef;
    Uint16_t numAdcSamples=256;
    uint16_t numRangeBins=256;
    uint16_t MAX_NUM_RX_ANTENN=4;
    uint16_t numRx天 线=4;
    uint16_t tempval[4];
    DPM_Handle objDetDpmHandle;


    DPC_ObjectDetectionRangeHWA_PreStartCfg objDetPreStartR4fCfg;
    DPM_DPCHandle 手柄;
    numChirpsPerFrame = numChirpsPerFrameRef;

    /*设置种子值*/
    dataInBuffer[0]= 0x12345678;

    /*这个整数序列有一个足够长的周期,不能在数据立方体中重复。
    这可确保如果测试通过、则不是多维数据集数据模式中的重复导致的
    这可能会掩盖一些计算错误。*/
    对于 (k = 1;k < MAX_NUM_RX_Antenna * numRangeBins;k++)

    dataInBuffer[k]=(3* dataInBuffer[k-1]+ 5);
    // System_printf(“dataInBuffer[%d]=%x\n“、k、dataInBuffer[k]);
    }

    针对 (frameIdx = 0;frameIdx < numFrames;frameIdx++)

    // System_printf(“frameIdx=%x\n“、frameIdx);

    RetVal = DPM_ioctl (gMmwMssMCB.objDetDpmHandle、
    DPC_OBJDET_IOCTL_TRIGGER_FRAME、
    空、
    0);

    if (retVal == 0)

    /*等待 ioctl 完成*/
    信标_pend (gMwMssMCB.DPMioctlSemHandle、BIOS_WAIT_FOREVER);
    }


    /*处理帧中的线性调频脉冲循环*/
    for (I=0;I< numChirpsPerFrame;I++)

    chirpIdxRef =0;

    /*读入一个线性调频脉冲数据*/
    对于 (j = 0;j < numRx天 线;j++)

    //16 字节对齐、4 个 Uint32 符号
    Memcpy ((void *)&adcDataIn[j *((numAdcSamples+3)/4*4)]、(void *)&dataInBuffer[chirpIdxRef * MAX_NUM_RX_Antenna * numRangeBins + j *numRangeBins]、sizeof (uint32_t)* numAdcSamples);
    }
    ErrorCode = EDM_startTransfer (gMmwMssMCB.dataPathObj.edmaHandle、EDM_TPCC0_REQ_DFE_CHIRP_AVAIL、EDMA3_CHANNEL_TYPE_DMA);

    if (errorCode!= 0)

    SYSTEM_printf(“错误:EDMA 启动传输返回%d\n“、errorCode);
    返回;
    }
    TASK_SLEEP (1);

    }/*线性调频脉冲环路结束*/
    }/*帧结束循环*/
    }

    我的问题:

    请 检查并更新我,什么是问题,为什么 DPC 处理链没有发生?

    此致、

    Mani