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.

[参考译文] TM4C1294KCPDT:UART 处于深度睡眠模式

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/610962/tm4c1294kcpdt-uart-in-deep-sleep

器件型号:TM4C1294KCPDT
主题中讨论的其他器件:TM4C123

您好!

我的器件需要最低功耗、使用 UART 时的流耗应低于1mA。 设备的另一个要求-支持 USB 主机。
我检查了所有 TI 器件(MCU)、发现只有 Tiva 是最合适的解决方案、因为 MSP430根本没有 USB 主机。
同时、只能使用 TM4C129、因为它的电流消耗要比 TM4C123好得多。

如我们在数据表中所见

2.7电源管理
Cortex-M4F 处理器睡眠模式降低了功耗:
■睡眠模式停止处理器时钟。
μ■深度睡眠模式可停止系统时钟并关闭 PLL 和 Flash 存储器。
寄存
器131:通用异步接收器/发送器深度睡眠模式时钟门控控制寄存器(DCGCUART)、偏移量0x818 DCGCUART 寄存器为软件提供启用和禁用深度睡眠模式中的 UART 模块的功能。 当被启用时、一个模块被提供一个时钟。 禁用时、时钟将被禁用以节省功耗。
重要提示:应使用该寄存器控制 UART 模块的计时。
A.运行、睡眠和深度睡眠模式中的总电流是 IDD 和 IDDA 的总和。 

据我了解,只有一种方法-从 LFIOSC 计时,因为即使所有外设都关闭,IDD 也会提高到1mA。

我对配置有一些疑问。

有2个时钟源- PIOSC 和系统时钟。 在数据表中:

其他外设时钟控制
在 UART 和 QSSI 时钟控制寄存器中、用户可以在系统时钟(SYSCLK)(波特时钟的默认时钟源)和备用时钟之间进行选择。 请注意、在配置波特时钟时、可能会有一些特殊的注意事项。

系统时钟可配置为从 LFIOC 工作。

在数据表中、我发现了另外2个注释:

寄存
器18:UART 时钟配置寄存器(UARTCC)、偏移量0xFC8 UARTCC 寄存器控制 UART 模块的波特率时钟源。 有关更多信息,请参阅第234页的“外设时钟源”一节。
注意:如果 PIOSC 用于 UART 波特率时钟、则在运行模式中系统时钟频率必须至少为9MHz。
寄存
器131:通用异步接收器/发送器深度睡眠模式时钟门控控制寄存器(DCGCUART)、偏移量0x818 DCGCUART 寄存器为软件提供启用和禁用深度睡眠模式中的 UART 模块的功能。 当被启用时、一个模块被提供一个时钟。 禁用时、时钟将被禁用以节省功耗。
重要提示:应使用该寄存器控制 UART 模块的计时。

https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/187113?tisearch=e2e-sitesearch&keymatch=uart%20deep%20sleep 上查看有关相同问题的类似文章、其中介绍了有关30kHz 时钟的解决方案。

您能否澄清接下来的问题:

  • UART 是否可以从 LFIOSC 计时?
  • 在使用 UART 的深度睡眠模式下、可实现低于1mA 的功耗?



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

    您好、Vladimir、

     是的、UART 可以从 LFIOSC 计时。 在 UARTCC 寄存器中,您将对0x5进行编程,以选择由系统控制模块中的 ALTCLKCFG 寄存器定义的备用时钟源。 在 ALTCLKCFG 寄存器中、您将对0x4进行编程以选择 LFIOSC 时钟源。

      

     您的工作温度是多少? 如果您查看表中列出的高温下最大条件下的功耗、即使使用 LFIOSC、它也可以超过1mA。  

      

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

    我是否可以注意到"深度睡眠"期间超出功耗的事件也可能需要进行如此严格的检查和分析?

    持续时间-既要"退出深度睡眠"又要"返回深度睡眠"-以及 UART 数据包大小、波特率(以及可能使用的 UART 电平转换器)也不会影响您的"功率预算?"

    一如既往-"魔鬼会隐藏这样的细节..."

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

    我们尝试实施您的建议、但又遇到了另一个问题。
    它是 LFIOSC 的稳定性。 它可以在休眠中更改9次(两种方式中更改3次)、在休眠中更改7.5x 次(不是在休眠中更改7次)。
    因此、正如您所了解的、由于稳定性极低、UART 无法从此时钟源计时。
    我在 e2e.ti.com/.../612100的另一个主题中询问了这个问题

    我们能否为这种情况提供另一种解决方案?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果电源要求如此严格、可能"越来越少"? 一个非常简单的 FRAM MSP430是否能够在需要时仅处理串行端口监控并使用 USB 唤醒另一个 MCU?
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vladimir、

    正如我在您提到的帖子中回复的那样、由于 LFIOSC 时钟的高变化、因此在深度睡眠模式期间不应将其用作 UART 的源时钟。

    您是否必须在深度睡眠模式期间使用 UART? 您能否在休眠模式期间获取其他唤醒源(即 PGIO 引脚)来唤醒器件? 一旦器件被唤醒、UART 就可以继续传输。

     还请考虑 Bruno 的可行性想法。