我是一名初学者,想要使用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代码?


