【问题标题】:Can a Microcontroller peripheral operate with a frequency higher than CPU Freq.? [closed]微控制器外设能否以高于 CPU 频率的频率运行? [关闭]
【发布时间】:2020-01-29 03:31:18
【问题描述】:

我想知道微控制器外设是否可以以高于 CPU 频率的频率运行。这可能吗?

【问题讨论】:

  • 请更具体地说明您的意思。
  • 我的意思是外设有可能让我们说 SPI 在处理器以 24 MHz 工作时以 48 MHz 工作!外设可以以比进程更高的速率接收数据,这可能导致它们之间的不同步!我们能否使用数字设计,通过将数据存储到中间缓冲区或缓冲区组中来实现这一点?
  • @AmrAbdeen :您评论中的所有信息都属于问题。但是,即使对于electronics.stackexchange.com,它也使您的问题更加偏离主题,而且范围也太广了。我建议您将问题缩小到更具体的问题,然后在其他地方提问;这不是软件问题。
  • 这不仅可能而且很常见。例如,在 ATmega16U4 上,在睡眠期间 CPU 时钟停止,USB 外围设备倾向于以 48MHz 时钟运行,尽管 CPU 的运行速度不能超过 16MHz。 AVR 数据表的“系统时钟和时钟选项”一章中对时钟域进行了总结。

标签: arm embedded microcontroller avr cpu-architecture


【解决方案1】:

这完全是特定于零件的 - 请参阅零件的数据表以参考手册。

对于像 AVR 这样的简单部件,可能不是(虽然我没有检查过 - 有很多部件)。对于具有复杂时钟树的部件,例如 STM32,当然可以。例如:

在此示例中(由 ST 已弃用但仍然有用的 clock configuration tool 计算),核心时钟为 24MHz,而 USB 必须以 48MHz 运行,而 I2S 必须以 106.5MHz 运行。另请注意,I2S 可以独立于本示例中使用的 HSE 振荡器进行外部计时。

【讨论】:

  • Avr XMEGA 设备也使用 PLL 从 12MHz 晶振生成 48MHz USB 时钟。
  • @Rev1.0 :是的,但不独立于内核时钟,内核时钟也以 48MHz 运行。你完全没有抓住问题和答案的重点。
  • 例如 ATtiny26 有 PLL 可以为高速 Timer1 提供高达 64MHz 的时钟,而内核的工作频率不高于 16MHz。
  • 问题是“微控制器外设是否可以以高于 CPU Freq 的频率运行”。当“核心”以 12MHz 运行而 USB 外围设备以 48MHz 运行时,不正是这种情况吗?
  • @AterLux 这是一个更清晰的例子。我认为这不会使我的答案无效,该答案建议检查特定部分的文档。重点是至少提出 一个 例子来说明这是可能的。
猜你喜欢
  • 2013-07-24
  • 2012-10-09
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
相关资源
最近更新 更多