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

IWR6843: 芯片内部空间映射表的问题

Part Number:IWR6843

问题1:您好,我在阅读IWR6843的HWA手册的时候,发现了HWA由EDMA触发的情况,是当EDMA完成数据搬移到HWA之后,会自身通过链接的方式,将SIGDMACHXDONE(X=1~16,且SIGDMACHXDONE[X-1]=1)中的其中一个寄存器的数据通过搬移到DMA2ACCTRIG中,来触发HWA的运行,但对于这种搬移方式,我在EDMA的映射空间表中,并没有看见此HWA公共寄存器(SIGDMACHXDONE)所对应的空间 ,此公共寄存器的空间只出现在了DSP和R4F的空间映射表中,请问我应该如何去编写EDMA的搬移参数。

问题2:在对空间映射表进行阅读的时候,我发现了一个问题 DSS_HW_ACC_MC_PING\PONG这个寄存器似乎在整个手册中都没有介绍,无论是雷达家族手册还是HWA手册,并且这个DSS_HW_ACC_MC_PING\PONG的空间范围是否存在错误,因为其空间范围和下面的DSS_HW_ACC_WIN的空间范围存在着重叠。

Shine:

可以参考industrial toolbox里的68xx_mmwave_sdk_hwa例程。 https://dev.ti.com/tirex/explore/node?a=VLyFKFf__4.12.1&a=VLyFKFf__4.8.0&node=A__AMMUdK6IEcEe9g-aDP73eQ__com.ti.mmwave_industrial_toolbox__VLyFKFf__4.8.0 文档的问题,我需要和产品线工程师确认一下。

,

Shine:

产品线工程师要看一下。另外,请问使用的是哪个demo? 是在demo修改当前的HWA,还是尝试以自己的方式使用它? 此外,您能否提供参考的文档? 

,

alb a:

https://www.ti.com.cn/cn/lit/pdf/swru522

您好,这个是出现空间重叠的文档,问题出现的页数是在253页

,

Shine:

请看下面帖子里工程师的回复。https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1308608/iwr6843-hwa-edma-memory-map

,

alb a:

您好,首先感谢您的对接:

对于Q1问题的提出是因为,在雷达硬件加速器中的对触发模式的描述中,存在着以下描述:

“等待基于DMA的触发器(TRIGMODE = 011b):当必须使用DMA传输完成来触发当前参数集的加速器计算开始时,此触发模式非常有用。此触发模式的主要目的如下:在进行二次元FFT时,DMA用于将雷达数据存储器中的FFT输入采样带到加速器的本地存储器中。在每次DMA传输完成后,自动触发加速器执行FFT是有用的。

为了实现这一点,加速器的状态机有一个16位寄存器,称为DMA2ACCTRIG寄存器,其中每个寄存器位映射到与加速器相关联的16个DMA通道之一。要使用基于DMA的触发模式,必须将当前参数集中的DMA2ACC_CHANNEL_TRIGSRC寄存器编程为我们希望监控其完成情况的DMA通道。

然后,状态机监视DMA2ACCTRIG寄存器中相应的寄存器位,并仅在该寄存器位被设置时触发当前参数集的执行。如果DMA2ACC_CHANNEL_TRIGSRC被编程为5,那么当前参数集将只在DMA2ACCTRIG中设置寄存器位#5时执行。

用户可以利用EDMA的连接能力在DMA2ACCTRIG中设置适当的寄存器位。链接是EDMA的可编程特性,其中DMA传输的完成可以自动触发第二个DMA传输。在当前的上下文中,将数据移动到加速器的本地内存的DMA传输可以链接到第二个DMA,其目的是将一个单热签名写入DMA2ACCTRIG以设置特定的寄存器位并触发加速器。

注意,有16个只读的单热签名寄存器(SIG_DMACH1_DONE、SIG_DMACH2_DONE等)可用。这些寄存器只是包含硬编码值的只读寄存器(每个寄存器都是一个单热签名——0x0001、0x0002、0x0004、0x0008,等等)。为了方便起见,可以使用这些硬编码的16个只读签名,这样第二个DMA就可以简单地将这些SIG_DMACHx_DONE寄存器中的一个复制到DMA2ACCTRIG寄存器中,以设置适当的寄存器位。”

但对于此机制,EDMA的空间访问范围并没有包括HWA的公共寄存器(SIGDMACHXDONE)这个SIGDMACHXDONE寄存器是在HWA的文档中的公共寄存器的部分, ,空间映射表的这个位置(来自雷达家族文档),内部位置为 (来自雷达硬件加速器文档)

对于Q2:因为我想要在R4F核中空间生成的窗数据通过memcpy映射到HWA的窗RAM中,但这个空间似乎和DSS_HW_ACC_MC_PING\PONG存在重叠,且文档中没有对DSS_HW_ACC_MC_PING\PONG的介绍,我担心窗数据的映射是否会因此出现问题。所以想要了解这个DSS_HW_ACC_MC_PING\PONG的情况

,

Shine:

alb a 说:来自雷达家族文档

请问这篇是什么文档?有英文版本么?

,

alb a:

https://www.ti.com.cn/cn/lit/pdf/swru522

您好,就是这个链接

,

Shine:

alb a 说:

“等待基于DMA的触发器(TRIGMODE = 011b):当必须使用DMA传输完成来触发当前参数集的加速器计算开始时,此触发模式非常有用。此触发模式的主要目的如下:在进行二次元FFT时,DMA用于将雷达数据存储器中的FFT输入采样带到加速器的本地存储器中。在每次DMA传输完成后,自动触发加速器执行FFT是有用的。

为了实现这一点,加速器的状态机有一个16位寄存器,称为DMA2ACCTRIG寄存器,其中每个寄存器位映射到与加速器相关联的16个DMA通道之一。要使用基于DMA的触发模式,必须将当前参数集中的DMA2ACC_CHANNEL_TRIGSRC寄存器编程为我们希望监控其完成情况的DMA通道。

然后,状态机监视DMA2ACCTRIG寄存器中相应的寄存器位,并仅在该寄存器位被设置时触发当前参数集的执行。如果DMA2ACC_CHANNEL_TRIGSRC被编程为5,那么当前参数集将只在DMA2ACCTRIG中设置寄存器位#5时执行。

用户可以利用EDMA的连接能力在DMA2ACCTRIG中设置适当的寄存器位。链接是EDMA的可编程特性,其中DMA传输的完成可以自动触发第二个DMA传输。在当前的上下文中,将数据移动到加速器的本地内存的DMA传输可以链接到第二个DMA,其目的是将一个单热签名写入DMA2ACCTRIG以设置特定的寄存器位并触发加速器。

注意,有16个只读的单热签名寄存器(SIG_DMACH1_DONE、SIG_DMACH2_DONE等)可用。这些寄存器只是包含硬编码值的只读寄存器(每个寄存器都是一个单热签名——0x0001、0x0002、0x0004、0x0008,等等)。为了方便起见,可以使用这些硬编码的16个只读签名,这样第二个DMA就可以简单地将这些SIG_DMACHx_DONE寄存器中的一个复制到DMA2ACCTRIG寄存器中,以设置适当的寄存器位。”

请问这段文字是出自哪篇文档?

,

alb a:

https://www.ti.com.cn/cn/lit/pdf/swru526

这个文档下的21页(TRIGMODE = 011b)模式下

,

Shine:

已跟进!

,

Shine:

请看下面工程师的回复。

第一个问题您可以参考C:\ti\mmwave_sdk_03_06_00_00-LTS\packages\ti\datapath\dpedma\src\dpedmahwa.c代码。第二个问题他还要在看一下。I think a lot of these questions cannot be directly answered by looking strictly at the documentation.  There are some EDMA utility functions that solve the first issue the customer was concerned about regarding the EDMA accesing HWA registers.  The filepath to those functions is C:\ti\mmwave_sdk_03_06_00_00-LTS\packages\ti\datapath\dpedma\src\dpedmahwa.c.  I am still looking into the second issue and will have a follow up by Friday.

,

Shine:

抱歉,回复晚了,请看下面e2e工程师的回复。他会明天再确认一下,请关注帖子的回复。Apologies for the delay in response.  Regarding the second question, it looks like there is a discrepancy between the frame address start/end address and the size, as the 4 KiB size doesn't match the size from subtracting the start address from the end address.  I am looking into which is correct and will have an update by tomorrow.

,

alb a:

好的,感谢

,

Shine:

不客气~

请看下面工程师的最新回复。start address和size是正确的,但是end address是错误的。

Santosh Krishnan said:
Regarding the second question, it looks like there is a discrepancy between the frame address start/end address and the size, as the 4 KiB size doesn't match the size from subtracting the start address from the end address

The start address and size is correct, but the end address is incorrect.  If you use the start address and the frame size to calculate the end address, you should note that there is no overlap.  I hope this answers the question.

赞(0)
未经允许不得转载:TI中文支持网 » IWR6843: 芯片内部空间映射表的问题
分享到: 更多 (0)