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.

[参考译文] LAUNCHXL-CC1352R1:低功耗、UART 和流控制信号...

Guru**** 2558250 points
Other Parts Discussed in Thread: TL16C550C, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1165672/launchxl-cc1352r1-low-power-uart-and-flow-control-signals

器件型号:LAUNCHXL-CC1352R1
主题中讨论的其他器件:TL16C550CSysConfig

(使用的硬件实际上是1352 LPSTK -但我没有找到此类器件型号。 但我希望它足够接近)

我们对1352上的 UART HW FC 信号与低功耗感到困惑:
在"回调模式"下使用"XX"驱动程序时、我们了解到需要删除 TI 驱动程序的 RX 回调以允许睡眠。
在回调就位时、CPU 运行并消耗大约1mA+电流、而消耗是合理的。

因此-移除 RX 回调会减少 CPU 消耗、如上所述、UART 外设中的 RXEN 位
设置为 false、因此 UART 外设知道它处于禁用 RX 的状态。 但是、RTS 流控信号在此模式下保持低电平(即保持有效)
对于 HW FC、当禁用 UART RX 时、RTS 应取消置位-因为 UART 的另一端将由于置位 RTS 和数据丢失结果而发送。
下面我附加了一个图、其中当我们"淹没" UART FIFO 时、"ARC GP1"(底部的第二个图)将从置为有效切换为取消置为无效(正如预期的那样)。
但是、在大约6:45的最小值时、有一个10s 窗口、其中 UART RXEN 设置为 false、但 RTS 仍然有效、这会导致数据丢失。  

当 UART RXEN 设置为 false 时、我们是否可以使用任何权变措施来确保 RTS 无效?

最好
Peter

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

    尊敬的 Peter:

    您能否指定您在应用中使用的是哪个 simplelink SDK 版本?

    此致、

    高斯图

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

    感谢 Fausto、

    我们当然有一个旧版本的 SDK、但更新将是一项工作、我指出了一些观察结果  
    实际上与硬件相关-可能是较新的 SDK 具有一个驱动程序、可处理我在软件中描述的问题。
    但是、除非我们确认某个 SDK 版本可以解决该问题、否则我不愿意升级。

    此致

    Peter

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

    尊敬的 Peter:

    了解 SDK 版本是一种使我能够对齐所使用的软件版本并尝试重现问题的方法。 正如您所说、硬件问题可能会在发现后在软件级别得到处理。 因此、了解您使用的 SDK 版本后、我可以看到您运行的软件与最新版本之间的差异。  

    此致、

    高斯图

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

    它是 SDK 版本4.10。

    谢谢 Fausto!

    彼得

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

    尊敬的 Peter:  

    在阅读您的初始帖子时、我还有一个问题要问您。 您说您正在使用"XX" UART 驱动程序。 但您的应用程序是在应运行 UART2CC26X2驱动程序的 CC1352器件上运行的。 这只是帖子中的一个错误、还是您愿意为旧版设备使用驱动程序?

    此致、

    高斯图

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

    您好、Fausto、

    正确、我们确实在 CC1352上使用了"XX"驱动程序。 一个原因是、1352的 Contiki 是使用"XX"驱动程序构建的。
    最初尝试让 HW FC 工作时、我们尝试了"X2"驱动程序、但当时我们确实遇到了一些问题。
    我们也一直在关注驱动器的差异、但没有发现任何明显的差异。

    最好
    Peter

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

    还有一件事:Fausto、

    CC1352的文档指出:"CC13x2和 CC26x2 UART 在功能上类似于16C550 UART、但寄存器不兼容。"
    此数据表是否适用于 CC1352?  
    https://www.ti.com/lit/ds/symlink/tl16c550c.pdf

    它确实表示"Auto Flow Control" RTS 由 FIFO 状态触发、但在没有"Auto Flow Control"的情况下、它是受控的
    也适用于 CC1352吗? 我想-如果仅 RTS 的 UART 逻辑由 FIFO 状态触发
    是否需要手动设置 RTS?

    最好
    Peter

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

    尊敬的 Peter:

    我正在研究这个问题、我想知道:

    1-您是否在应用程序中使用了 UART_CMD_RXENABLE/ UART_CMD_RXDISABLE 命令? 原因这可能是您遇到功耗问题的原因。 将  UART_CONTRARUS()设置为 UART_CMD_RXENABLE 时,即使您不调用 UART_READ(),也可以连续接收 UART。  

    2-当您说您已移除回调时,这是否意味着您现在正在  UART2_Mode_Blocking 中使用 UART 驱动程序 ,或者您没有提供回调函数,但仍在  UART2_Mode_callback 中使用它?

    此致、

    高斯图

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

    我们没有对 UART 使用交互命令-我们在回调模式下使用了 UART -这可防止低功耗 AS
    只要设置了 Rx 回调、当我们取消设置 Rx 回调低功耗时、就可以正常工作。

    但我们遇到的问题是、UART 输出的低功耗 RTS 为低电平-这意味着  
    另一端正在传输丢失的数据。

    那么问题是-我们如何实现低功耗并向 UART 的另一端发出适当的信号?

    最好
    Peter

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

    如果您在回调模式下使用 UART 但没有回调函数、您如何管理接收数据?  没有回调机制将不允许您知道 RX 事务何时完成。

    我仍在调查您看到的 RTS 问题、因为我 尚未能够复制该问题、而且我们 之前没有其他客户报告过该问题。 此外、它是否在一段时间后始终如一地出现、或者它出现的频率是多少?

    此致、

    高斯图

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

    移除回调是我们实现低功耗的唯一方法-仅在"已完成"的招待会上发生。
    您是否还有其他建议建议、如何通过回调模式实现低功耗?
    或者我们是否需要使用阻塞模式?

    我们确实始终看到 RTS 问题:您是否具有 SDK 版本/设置、它在低功耗下工作?
    如果是、这将是有关如何避免此问题的良好提示。  

    最好
    Peter
     

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

    您好、Peter、我在您正在使用的 UART 驱动程序的文档(SDK 文件夹/docs/tidrivers/tidriversAPIs.html ->单击 UARTCC26XX.h)中找到了有关器件在使用 UART 驱动程序时何时被/不被允许进入待机状态的详细说明:

    我可以看到、允许器件在回调和阻塞模式下都进入待机状态。 我看不到在阻止模式和回调模式之间如何处理电源管理有什么区别。 因此、我相信您看到的情况属于文档中突出显示的条件之一。  

    我仍在调查您看到的 CTS 问题。

    此致、

    高斯图

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

    这里有一些有趣的措辞:  
    "调用 UART_readCancel()以禁用 RX,从而确保在进入待机状态时不接收数据"
    人们想认为 ,"确保在进入待机状态时不收到数据"是指 FC
    使 RTS 无效以阻止传输到 TI UART。  
    (在 TI 终端、我们没有遇到任何 CTS 问题、仅 RTS)

    最好

    Peter

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

    对不起、Peter、

    我想说 RTS。 我使用的 SDK 版本与您使用的版本(4.10)相同、以查看是否可以重现。 因此、我的所有电源管理结果都在 SDK 4.10上观察到。

    此致、

    高斯图  

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

    Fausto,我们迁移到了 SDK 版本5.20,并尝试 了 UART_CMD_RXDISABLE 。
    我们不会观察到发出命令的 RTS 是否发生任何变化。  

    最好
    Peter

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

    尊敬的 Peter:  

    很抱歉耽误你的回答。  

    我同意您的观点、这似乎是特定的硬件行为。 RTS 似乎只与 RX FIFO 状态相关、而不与 UART 外设的 RX 使能寄存器相关。 这似乎是预期行为、正如您在技术参考手册和上面链接的 TL16C550C 数据表中所指定的那样。 不过、我确实理解了您的用例、当 UART 外设未主动接收数据时、RTS 自动取消置位似乎很有用。

    我向 SW R&D 提交了一个 TT、以评估在未来的 SDK 上在 SW 中处理此问题的可能性。 不过、如果接受、它将位于 UART2驱动程序上、而不是您正在使用的 UART 驱动程序(现在已弃用)上。

    为了涵盖您的用例、我可以考虑一种权变措施、即在不使用时将 SysConfig 中的 RTS 引脚设置为"高电平"。 当 UART 驱动程序用 UART_CLOSE ()关闭且引脚被取消分配时、这会导致 GPIO 转换为高电平。

    我还看到、在禁用自动 RTS (寄存器 UART0:CTL:RTSEN 设置为0)时、可以使用  UART0:CTL:RTS 寄存器手动控制 RTS 引脚。 这是我们的驱动程序不支持的内容、但外设支持、以防您希望完全控制 RTS 引脚。

    此致、

    高斯图

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

    感谢 Fausto、

    我们知道 SysConfig 可以在不使用时将 PIN 设置为高电平、但这是非常有意义的。
    另一个禁用自动 RTS 的选项已经超出了我的想象、我想它应该可以通过来控制它  
    FIFO 填充速率的 IRQ。

    最好

    Peter

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

    不用客气、Peter。 如果您没有其他问题、我将关闭此主题。 但 请随时在稍后发布任何后续问题、我们将继续进行讨论。

    此致、

    高斯图