主题中讨论的其他器件: IWR1243、 UNIFLASH、 AWR1243、 AWR1443
您好!
我尝试移植 DFP 示例代码 在 DFP 版本01_00_00_01中、添加到 STM32微控制器、但遗憾的是、我的实施存在一些问题、因此代码无法按预期工作。
我正在使用 IWR1443、 我已将"xwr12xx_masterss.bin"和"xwr12xx_xwr14xx_radarss.bin"加载到该 IWR1443、因此需要对 IWR1243进行仿真。 这些容器也可在 DFP 库中找到。
SPI 通信和 SPI_HOST_IRQ 似乎正常工作、因为 在 CNYS 写入之后、STM32 MCU 正在接收 IWR1443芯片的异步事件、而来自 IWR1443芯片的初始消息将随正确的校验和发送。
对"MMWL_powerOnMaster"的调用 返回 OK
MMWL_setDeviceCrcType 也返回 OK
但调用 MMWL_rfEnable 会返回超时错误。
我已经分析了 STM32 MCU 为 RF (在 MMWL_rfEnable 中)加电写入和读取的消息、看起来不错、请参阅下面的内容。
但有一点奇怪的是、在示例代码中、似乎我们正在等待一条异步消息、它说 RL_DEV_AE_RFPOWERUPDONE_SB (请参阅 MMWL_asyncEventHandler)、但在 AWR_DEV_RFPOWERUP_MSG 命令之后从 IWR1443读取的消息(请参阅下文)没有异步消息类、 但响应消息类(下面为黄色)、即"rlDriverEventHandler"不会在函数"rlDriverMsgCmdlReply"中调用、因此在 MMWL_asyncEventHandler 中、mmwl_BStartComp 永远不会设置为1。
这是错误还是我做了错误的事情?
在我的 STM32实施中,我没有使用任何操作系统,因此,实施某些 rlos***功能并不明显。 例如 、我在 函数"rlosiSpawn"中立即调用 pentry(pValue)、这是可以的吗?
我非常感谢为外部主机使用 DFP 的示例实施、而该主机未使用任何操作系统。
BR
HAKAN
--写入22个字节--
0x0034 /* SYNC =>主器件到从器件指示一个新命令*/
0x0012
0x0021
0x0043
0x0005 /*操作码*/
0x0080 0x8005 =>方向= 0101 (主机到主机)、MSGTYPE = 00 (命令)、MSGID = 0x200 (AWR_DEV_RFPOWERUP_MSG)
0x0012 /* MSGLEN */
0x0000 len = 18
0x0000 /*标志*/
0x0010 0x1000 =>重试= 00 (新消息)、ACKREQ = 00 (ACK)、PROT_VER = 0、CRC = 00 (附加 CRC)、CRCLEN = 00 (16位)、seqnum = 1
0x0000 /* REMCHUNKS */
0x0000 0
0x0001 /* NSBC */
0x0000 1
0x00E7/* 校验和*/
0x006F CRC = 0x6FE7 (μ Stämmer!)
0x0000 /* SBLKID */
0x0040 0x4000 = AWR_DEV_RFPOWERUP_SB
0x0004 /* SBLKLEN */
0x0000 0x4 = 4字节
0x0000
0x00DA
--写入16个字节--
0x0078 //*写入 CNYS =>外部主机已准备好接收消息*/
0x0056
0x0065
0x0087
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
--读取4个字节--
0x00FF
0x00FF
0x00BA /*同步开始*/
0x00DC
--读取4个字节--
0x00CD
0x00AB /*同步结束*/
0x0016 /*操作码*/
0x0080 0x8016 =>方向= 0110 (主机到主机)、MSGTYPE = 01 (响应)、MSGID = 0x200 (AWR_DEV_RFPOWERUP_MSG)
--读取10个字节 --
0x000E /* MSGLEN */
0x0000 0xE = 14字节
0x000C /*标志*/
0x0010 0x100C =>重试= 00 (新消息)、ACKREQ = 11 (NO_ACK)、PROT_VER = 0、CRC = 00 (附加 CRC)、CRCLEN = 00 (16位)、seqnum = 1
0x0000 /* REMCHUNKS */
0x0000
0x0000 /* NSBC */
0x0000
0x00CF /* CHKSUM */
0x006F CRC = 0x6FCF (Stämmer!)
--读取2个字节--
0x0026 /* CRC *
0x00B5 0x26B5
---写入16个字节---
0x0078 //*写入 CNYS =>外部主机已准备好接收消息*/
0x0056
0x0065
0x0087
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF
0x00FF



