微控制器可以在任意低的时钟频率下运行吗?

电器工程 微控制器
2022-01-05 22:43:24

例如,ATTiny13A 的数据表列出了 0 MHz 的最小频率。这是否意味着时钟可以以任意低频率运行而不会产生不良影响?我假设它以较低的时钟速度消耗较低的电流?0 MHz 是否意味着您可以完全停止时钟,只要仍然通电,它就会无限期地记住它的状态?

4个回答

是的。如果数据表上写着“完全静态操作”,那么您可以以任何速度对其进行计时,甚至是 0 Hz。“动态”芯片需要有一个特定速率的时钟,否则它会失去其状态。

我发布另一个答案,只是因为您之前没有回答过最后一个问题。

Todbot 是完全正确的。它还将在较低的速度下消耗较低的功率。这也意味着如果您从另一个处理器提供它的时钟,例如,您可以随时停止提供它,然后再开始为它提供时钟,只要您的速度不超过最大速度,就可以了。

我的芯片在 32768Hz 振荡器和 1MHz 振荡器之间有一个数量级的变化。我有一些不需要速度的应用程序,我只需要另一个小家伙为我做一些基本的数据处理。

希望这可以帮助。

大多数现代微控制器设计都可以在其时钟输入上使用任何模式,只要没有高脉冲低于某个最小长度,没有低脉冲低于某个最小长度,并且没有低-高-低或高-低-高脉冲对低于一定长度。基本上发生的情况是,在芯片完成与特定时钟沿相关的所有动作之后,芯片将处于一种状态,即它什么都不做,只等待下一个时钟沿。如果下一个时钟边沿在十天内没有到达,那么(除非芯片有一些外部看门狗)芯片将处于与芯片准备好时边沿到达时相同的状态。

请注意,一般而言,暂停微控制器上的时钟将大大减少电流消耗,但不如使用“睡眠”功能那么多。大多数微控制器在“运行”模式下的电流消耗可以很好地估计为恒定的静态电流加上每秒每周期的一定量的电流(这可能更“自然”地表示为每周期充电)。例如,一个芯片可能有 10uA 的静态电流,加上 0.1mA/MHz(100pC/周期)的电流。以 10MHz 运行这样的芯片将产生 1.01mA 的电流。以 1MHz 运行它会产生 0.11mA。以 100KHz 运行它会产生 0.02mA。以 1Hz 运行它会产生 0.0100001mA。另一方面,该芯片可能提供 1uA 的休眠电流。一般来说,进入睡眠模式将完全关闭芯片在睡眠时不会做任何有用的事情的区域,从而避免这些区域可能存在的任何泄漏电流。在某些情况下,它还会将寄存器文件等区域的电压降低到寄存器文件可以保存其内容但不能很快访问它们的水平(因为它们根本不会被访问,访问速度无关紧要) .

一些较旧的微处理器、微控制器和其他设备具有最长的时钟高和/或时钟低时间。这种处理器利用动态逻辑来节省电路。作为动态逻辑的一个例子,考虑一个移位寄存器:一个典型的静态寄存器位需要一个双晶体管电路来保存值,而一个动态寄存器位在读出晶体管的栅极上保存值。可以在 NMOS 中使用四个 NFET 和每位两个电阻器来实现两相时钟动态移位寄存器。静态移位寄存器每位需要 8 个 NFET 和 4 个电阻。动态逻辑方法在今天几乎不是那么普遍。早在 1970 年代,栅极电容就很大,而且还没有摆脱它。因此,没有特别的理由不利用它。今天,栅极电容通常要低得多,芯片制造商正在积极尝试进一步降低它。使动态逻辑可靠地工作通常需要有意识地增加栅极电容。在大多数情况下,增加电容所需的额外芯片面积可以同样有效地用于添加更多晶体管,从而使电容变得不必要。

是的,您可以完全停止时钟并在以后重新启动它而不会产生任何后果。您甚至可以用一个按钮替换时钟,并逐步完成您的程序(频率:约 0.1 Hz)。

功率几乎与频率呈线性关系:在 10 MHz 时,微控制器的功耗是 1 MHz 时的 10 倍。但是,这并不意味着在 0 Hz 时消耗完全为零。总是有静电耗散,但非常低,通常为 1 uA 或更少。

PS:请注意,ADC 确实有最低工作频率。如果频率太低,则测量电压的电容器会放电过多,您的测量结果将是错误的。