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.

[参考译文] EK-TM4C123GXL:将 UART 数据从 IWR1642BOOST EVM 流式传输到 TM4C123GXL

Guru**** 2538950 points
Other Parts Discussed in Thread: IWR1642

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1070282/ek-tm4c123gxl-streaming-uart-data-from-iwr1642boost-evm-to-tm4c123gxl

部件号:EK-TM4C123GXL
“线程”中讨论的其它部件:IWR1642TM4C123

TI 团队您好,

我目前正在进行一个项目,需要通过 UART 将数据从 IWR1642 EVM 流式传输到 TM4C123GXL。 到目前为止,我已经攻丝了1642上的 AR_MSS_logger 引脚,并通过逻辑分析器确认,来自该引脚的数据流至少与我通过 USB 连接接收到的 PC 数据流类似:

逻辑分析器:

EVM 到 PC (USB):

我当前对 TM4C 代码的迭代基于来自以下相关问题的 Suyash Bagad 代码:  

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/651579/ek-tm4c123gxl-uart-on-tm4c123-not-able-to-read-from-receive-fifo

从此帖子中,我将接收 PIN 从 U2Rx PD6更改为 U3Rx PC6,尽管我的问题尚未得到解决。

我的 TM4C 代码:

我目前正在尝试的是将数据从 EVM 传输 到 TM4C,然后传输到我的 PC 以验证数据并开始实施分析算法。 我遇到的问题是,我希望我的数据采用 EVM 到 PC 图像的格式。 但是,当尝试从 TM4C 读取数据时,我 既没有 获得正确的数据,也没有格式。

EVM 到 TM4C 到 PC:

我假设我的缓冲区溢出,但不确定。 如果有人能就我的问题给出建议,我会非常感激。  

谢谢!

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

    您好,

     我不熟悉 IWR1642。 我有几 条评论。  

     IWR 和 TM4C 之间是否设置了相同的波特率,停止位和奇偶校验位? 如果其中任何一个不匹配,则不起作用。  

     -函数 UARTCharPut()将无符号字符作为第二个参数。 通过传递一个32位无符号参数来调用 UARTCharPut()。 是否可以将其转换为无符号字符并查看这是否会产生影响?

     ——您实际看到的变量“数据”是什么? 您能显示 TM4C 的读数吗?

     -您是否可以将 IWR 和 TM4C 配置为更慢的波特率(115200)? 我想知道波特率对结果是否有任何影响。  

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

    您好,

     您的问题是否已解决? 我现在将状态更改为“关闭”。 如果您仍需要帮助,请 回答我之前的问题,帖子将自动重新打开。   

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

    您好,

    很抱歉耽误您的回答。 我们的传感器存在一些不相关的技术问题,这些问题现已得到解决。  

    关于我的问题:

    1.我的波特率,停止位和奇偶校验位相同。  

    2.我现在使用的代码不使用 UINT32_t 变量。 我只是在使用 UARTCharPutNonBlocking (UART0_BASE,UARTCharGetNonBlocking (UART3_BASE ));

    3.我遇到的原始问题不再发生,现在发生的是当我更改 TIVA 上的系统时钟时,我的 TIVA 到 PC 的数据输出流略有变化。 最初,我使用的系统时钟频率为100MHz,但在将其更改为50MHz 后,流可以识别,但仍不是我所期望的格式。 现在发生的事情是,当我改变系统时钟时,数据流会发生一点变化。 我认为这是一个超频错误,但我不确定我应该在多大的时钟频率下解决,以获得我需要的所有数据。

    如果您对我应该使用的系统时钟设置有任何了解,我非常感谢您的意见。 我在1642上使用的是 mmWave 演示版本3.5,我不知道1642的系统频率是多少,或者这是否会对我遇到的问题产生影响。 我认为我目前的最佳结果是~8-10MHz。

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

    8-10MHz 范围是我在 TIVA 上使用的范围

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

    您好,

    [引用 userid="506838" url="~ë/support/icls/arm-based Microwers-group/arm-based Microwers/f/arm-based Microwers-forum/1070282/EK-tm4c123gxl-streaming -UART-data-from-iwr1642booter-EVM-VME-to-tm4c123gx769397l/693979692]

    3.我遇到的原始问题不再发生,现在发生的是当我更改 TIVA 上的系统时钟时,我的 TIVA 到 PC 的数据输出流略有变化。 最初,我使用的系统时钟频率为100MHz,但在将其更改为50MHz 后,流可以识别,但仍不是我所期望的格式。 现在发生的事情是,当我改变系统时钟时,数据流会发生一点变化。 我认为这是一个超频错误,但我不确定我应该在多大的时钟频率下解决,以获得我需要的所有数据。

    如果您在中有任何

    [/引用]

    很高兴您的原始问题得到解决。 请注意,TM4C123只能以最高80MHz 的频率运行。 100MHz 肯定不会工作,因为它超出规格。

    ~引述 userid="506838" url="~ë/support/icls/arm-based 微处理器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1070282/EK -tm4c123gxl 流- UART-data-from-iwr1642booter-EVM-tm4ce-to-tm4c4c3cx3cx123992m[#69923gx8]i 英寸39797932"。

    另请注意,波特率时钟与系统时钟分开。 尽管 UART 模块支持分次除法, 但与 预期波特率(如)相比,生成的波特率可能与另一个波特率略有不同 921600),如果系统时钟不同(例如 50MHz 与8MHz)。 我也曾问过您为什么选择921600。  这是否是 IWR1642的要求? 我对 IWR1642一无所知 ,这就是我提出这一问题的原因。 你为什么不尝试低波特率? 我建议您尝试115200,看看它是否有什么不同。 当然,除非   IWR1642 具有一些内置的自动波特率检测,否则您需要为同一波特率配置 IWR1642端。  

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

    我选择了波特率921600,因为它是传感器数据端口的默认推荐速率,尽管它是可配置的,我尝试了更改它,但这没有帮助。

    尽管我收到溢出错误,这是否意味着我溢出缓冲区? 如果是,我该如何解决这一问题?

    我应该使用 UARTBusy 代替 UARTCharsAvail,还是同时使用两者?

    此外,您能否进一步解释系统时钟和波特率之间的关系? 我知道 BRD 等式,尽管我不确定这是否意味着如果我的时钟频率在6个小数位内不成比例,这是否会导致产生的波特率问题?

    下面是我现在使用的代码:

     

    谢谢!

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

    经过几次实验,我发现使用 UARTRxErrorGet 时出现的错误返回0x05。 我认为哪个选项不是溢出错误,但如果我没有弄错,则是断路和分帧错误? 这是正确的吗?  

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

    您好,

     我几乎从未看到任何客户出现断线/帧错误。 不知道为什么要得到它。 尝试使用  UARTBusy , UARTCharSet 和 UARTCharPut,而不是使用 UARTCharGetNonBlocking()。 非阻塞主要用于 DMA。 另请参阅 C:\ti\TiaWare_C_Series-2.2.0.295\Examples\Peripherals\UART 中的两个示例。

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

    不幸的是,我认为这些是我收到的错误。  

    我正在使用此代码查看我的错误,而不进行调试,我已经阅读了这条代码,这是我收到溢出错误的原因。 在这种情况下,我没有收到溢出错误,而是收到中断和帧错误。

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

    我真的不知道帧/中断错误的原因。 您正在接收来自 IWR 的数据。 您确实需要在范围内检查波形是否正确。 正如我以前所建议的,以较低的波特率运行。 结果如何? 当 IWR 发送到 MCU 时,逻辑分析仪是否也能显示波形?

    谁在运行 serial.Serial?

    您是否可以轮询  UARTBusy 而不是 如示例所示的 UARTCharsAvail

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="93620" url="~/support/icls/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forum/1070282/EK -tm4c123gxl-streaming -UART-data-from-iaj1642booter-EVM-tm4c123cx2480[#39732xl/trame]397324/l]来引用用户名,不知道错误的原因。

    关于可能导致这些错误的原因的一些想法:

    1. 高速时的信号完整性错误,例如缓慢上升时间/振铃。 一个范围将有助于按照已经建议的那样检查。
    2. 发送器和接收器的波特率不匹配,这可能导致接收器无法正确采样比特。 为了分析这一点,需要检查发送器和接收器上编程的波特率控制器,以及波特率生成器的输入时钟上的频率容差。