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.

AWR1843: 怎么在oobdemo下调用rlRfSetPhaseShiftConfig这个api呢?需要设置成advancechirp模式吗?

Part Number: AWR1843


我是一名初学者,想要使用AWR1843的移相器来实现DDMA,我清楚rlRfSetPhaseShiftConfig这个API可以实现每chirp调相,前置条件是要启用rlRfSetMiscConfig,我根据MRR的例子来修改OOB DEMO,只在mmw_cli.c的

MmwDemo_CLIInit函数下添加了
phaseShiftPerChirpEnable->miscCtl = 1; // Enable per chirp Phase shift
retVal = rlRfSetMiscConfig(RL_DEVICE_MAP_INTERNAL_BSS, (rlRfMiscConf_t *)phaseShiftPerChirpEnable);
retVal = rlRfSetPhaseShiftConfig(RL_DEVICE_MAP_INTERNAL_BSS, 1U, &phaseShiftCfg[0]);
if (retVal == RL_RET_CODE_OK)
{
System_printf(" PhaseShiftConfig success\n ");
}
以及他们的参数
rlReturnVal_t  retVal = -2;
rlRfMiscConf_t phaseShiftPerChirpEnable[1] = { 0 };
rlRfPhaseShiftCfg_t phaseShiftCfg[2] =
{
{
.chirpStartIdx = 0,
.chirpEndIdx = 255,
.tx0PhaseShift = 42,
.tx1PhaseShift = 62,
.tx2PhaseShift = 15,
.reserved = 0
},
{
.chirpStartIdx = 256,
.chirpEndIdx = 511,
.tx0PhaseShift = 63,
.tx1PhaseShift = 50,
.tx2PhaseShift = 25,
.reserved = 0
},
};
当我修改完后,System_printf出了PhaseShiftConfig success的消息,我打开mmWave Demo Visualizer观察发现貌似并未有相移的改变。
由此有以下几个问题
1.我调用rlRfSetPhaseShiftConfig的方式对吗?如果不对为何
retVal的值是RL_RET_CODE_OK呢?以至于我屏蔽rlRfSetMiscConfig之后依旧是RL_RET_CODE_OK?
2.mrr中的设置方式是在advance_chirp模式下的,是因为这个原因吗?
3.如果可以的话,请告诉我如何正确调用rlRfSetPhaseShiftConfig呢?我该如何修改OOB代码?
  • 1. 您的调用方式基本是正确的,因为retVal的返回值是RL_RET_CODE_OK,这表示函数调用成功。可能的原因是rlRfSetPhaseShiftConfig函数成功执行了,但是相移的改变并没有在可视化工具中显示出来。您可以尝试在调用rlRfSetPhaseShiftConfig函数之后,通过读取相移配置寄存器的方式来确认相移是否真正生效。

    2. MRR中的设置方式是在advance_chirp模式下的,这可能会影响相移的应用效果。您可以尝试在advance_chirp模式下进行设置,看看是否能够得到预期的结果。

    3. 如果您想要正确地调用rlRfSetPhaseShiftConfig函数,可以参考以下步骤:
    - 确保您已经正确地初始化了AWR1843设备,并且已经成功连接到了mmWave Demo Visualizer。
    - 在适当的时机(比如在advance_chirp模式下),调用rlRfSetPhaseShiftConfig函数来设置相移配置。
    - 确保您设置的相移配置是正确的,可以通过读取相移配置寄存器的方式来确认。
    - 在调用rlRfSetPhaseShiftConfig函数之后,可以通过mmWave Demo Visualizer来观察相移是否生效。

  • 感谢您的回答,我这几天尝试在CCS的debug模式下找到移相器的寄存器,可是我在mmWave Radar Interface
    Control Document的文档资料中只找到 5.5.7 Sub block 0x0106 – AWR PERCHIRPPHASESHIFT CONF SB 下有

    这个表格与CCS中的寄存器我并没有找到关联,也就是说我不清楚在CCS下哪个寄存器代表了移相器的值

    希望能得到您的回答

    此致

  • 特别的我看到有一些Sub block是有在寄存器中的解释的,而这个我在文档里没有找到

  • 您好,您能重述一下您的问题吗

  • 抱歉,可能之前我的表述不清,那么我重述一遍。简而言之,在您之前给我的建议中,提到直接观察相关寄存器以确定rlRfSetPhaseShiftConfig是否成功调用。可是我并没有在官方文档中找到该寄存器。下面是我此问题的补充。

    1.观察寄存器的值的操作应该是在确保AWR1843连接在计算机上且在CCS软件中使用debug模式下可以把要观察的寄存器通过‘Registers’列出。

    2.我并不知道相关寄存器是哪一个寄存器,仅仅只在《mmWave Radar Interface Control Document》中找到一个可能相关的‘Sub block’。

    3.我想知道这些寄存器有没有详细的说明呢?

    4.关于我提到的有解释的寄存器例如下图的DSS_REG.CQCFG1寄存器我在debug模式下能找到该寄存器。

  • 您好,

    您是正确的,观察寄存器的值通常需要确保AWR1843已连接到计算机上,并且在CCS软件中使用debug模式。通过调试模式,您可以列出要观察的寄存器,并查看其当前值。DSS_REG.CQCFG1寄存器是AWR1843的一个寄存器,用于配置连续查询(CQ)模块的参数。如果您在debug模式下找到了该寄存器,您可以使用CCS软件中的寄存器查看器来查看其值,并进行必要的更改。

  • 非常感谢您的回答,我已找到《Technical Reference Manual 》,里面是关于各寄存器的解释,但是我还是没有找到哪个寄存器代表的是各tx的相移值,如果可以的请告诉我可以吗?

  • 您好,个人理解:各个TX的相移值通常由相位调节器控制,而不是由寄存器直接代表。相位调节器可以根据系统需求动态调整各个TX的相移值,以实现信号的调制和定向传输。因此,相移值通常由相位调节器的控制信号来表示,而不是由寄存器直接代表。

  • , 那么相位调节器的控制信号如何观察呢?CCS中有办法观察吗?

  • 您好,新的问题烦请重新发帖交流,感谢理解,谢谢!