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.

[参考译文] AWR2944EVM:在 AWR2944EVM 中找不到魔法字's TLV 输出

Guru**** 2366870 points
Other Parts Discussed in Thread: AWR2944EVM, AWR1843BOOST, AWR2944
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1533331/awr2944evm-cannot-find-magic-word-in-awr2944evm-s-tlv-output

器件型号:AWR2944EVM
Thread 中讨论的其他器件: AWR1843BOOSTAWR2944

工具/软件:

您好、

我正在我的 AWR2944EVM 上运行开箱即用 (OOB) 演示、它使用 TI 的在线可视化工具时符合预期。

我想使用自定义工作流程、类似于使用 AWR1843BOOST、通过 CLI/UART 读取 TLV 数据包。 这样、当我将自己的 CLI 命令添加到雷达固件中时、我可以直接在 Python 中解析它们的输出、因为在线演示无法修改。

在 TI 的文档中、每个 TLV 帧都以“输出缓冲器魔术字“开头。 此处有相关文档: dev.ti.com/.../node (单击下载按钮查看它,否则它看起来为空白)。 这些文档列出了此 16‑位字的序列:{0x0102、0x0304、0x0506、0x0708}。 在小‑端字节序主机上、成为字节阵列[2、1、4、3、6 5、8、7]、python 脚本在 1843 的 UART 流中成功找到该内容。

但是、尽管两个在线演示使用相同的 UART 波特率、但完全相同的代码仍无法在 AWR2944EVM 的 TLV 输出中定位该序列。 我在‑的用户指南中找不到任何器件特定的说明来介绍 2944 的不同神奇之词。

我的问题是:

  1. AWR2944EVM 是否使用了不同的魔术字?
  2. 如果应该是相同的、为什么我的脚本(在 1843 上工作)在 2944 上无法检测到它?

此致、

标记  

上述代码:  

导入序列 
导入时间
NumPy 导入 NP

ConfigFile =“C:/Users/mmpas/PycharmProjects/liveComAWR/Data/profile_onlineDemo.cfg

COM_UART =“COM13"</s>“
COM_AUX_DAT =“COM12"</s>“

CLIport = serial.Serial (COM_UART、115200超时=0.2)
数据端口=串行。串行 (COM_AUX_DAT、921600超时=0.2)

Time.sleep (1.0)
CLIport.reset_input_buffer()

ByteBuffer = np.zeres (2 ** 15dtype='uint8')
byteBufferLength = 0


DEF sendConfigFile (cfgfile、settle=0.05):
对于 open (cfgfile) 中的行:
如果不是 LINE.StartsWith ('%'):
CMD = LINE.STrip ('\r\n')

CLIport.write (cmd +'\n').encode ())
CLIport.flush()

打印 (cmd)
时间睡眠 (0.01)


DEF readTlc_messages(数据端口):
全局 ByteBuffer、byteBufferLength

#常量
obj_struct_size_bytes = 12
BYTE_VEC_ACC_MAX_SIZE = 2 ** 15
MMWDEMO_UART_MSG_DETECTED_PORTS = 1
MMWDEMO_UART_MSG_RANGE_PROFILE = 2
maxBufferSize = 2 ** 15
tlvHeaderLengthInBytes = 8
pointLengthInBytes = 16
MagicWord =[21、43、6 587]

#初始化变量
magicOK = 0
DataOK = 0
frameNumber = 0
detObj ={}

readBuffer = dataort.read (Dataport.in_waiting)
打印 (readBuffer)
byteVec = np.frombuffer(readBuffer、dtype='uint8')
byteCount = len (byteVec)

#检查缓冲区是否满,然后将数据添加到缓冲区
如果 (byteBufferLength + byteCount)< maxBufferSize:
ByteBufferLength:byteBufferLength + byteCount]= byteVelc[:byteCount]
byteBufferLength = byteBufferLength + byteCount

#----- <<<检查魔术字的位置、将其用作 strat 索引>>>-------------------
#检查缓冲区是否有数据
如果 byteBufferLength > 16

#检查魔术字的所有可能位置
possibleLocs = NP.WHERE (ByteBuffer = magicWord[0])[0]

#确认这是魔术字的开头,并将索引存储在 startIdx 中
startIdx =[]
对于可能位置中的位置:
检查= ByteBuffer[loc:loc + 8]
如果 np.all (check == magicWord):
startIdx.append (loc)

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

    在这种情况下、有人发现 DatPort 的波特率必须设置得更高、以便:  

    数据端口=串行。串行 (COM_AUX_DAT、3125000、超时=0.2) 

    这将允许脚本找到“神奇的单词“。

    虽然我仍然不明白为什么在线演示可视化工具使用低得多的波特率“921600"仍然“仍然工作,任何线索?  

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

    您好:Mark、

    在 AWR2944 演示中、数据端口的波特率配置为 3125000。 因此、您应该  在可视化工具中将波特率设置为 3125000。

    在演示可视化工具中、您需要将波特率更新为 3125000。 您可以参阅部分 3.4.2.毫米波演示可视化工具 — AWR294X 和 AWR2x44P 的目录:“C:\ti\mmwave_mcuplus_sdk_04_07_01_03\mmwave_mcuplus_sdk_04_07_01_03\docs\mmwave_mcuplus_sdk_user_guide.pdf“。

    此致、

    Samhitha