【问题标题】:How to make a 600MHz loop on arduino or Raspberrypi?如何在 arduino 或 Raspberry Pi 上制作 600 MHz 循环?
【发布时间】:2019-12-13 10:50:48
【问题描述】:

我需要在 Arduino 或 Raspberrypi 板上每秒生成 6 亿次脉冲。我的目的是测量发射器和接收器之间的距离。接收器每秒对接收到的脉冲进行计数并估计距离。我可以通过哪些方式编写代码?

【问题讨论】:

  • 脉搏有什么用?为什么需要那么高的频率?硬件解决方案可能会更好地创建具有良好可靠性的高频脉冲。
  • 一个 Arduino Uno 在 16 MHz 下工作。使用 Arduino Uno 在软件中无法做到这一点。
  • @Someprogrammerdude 我提交了更多详细信息。
  • @ThomasSablik Raspberrypi-3 怎么样?它的 CPU 频率为 1.2 GHz
  • ESP8266 在 80 MHz(默认)或 160 MHz 下工作

标签: c++ loops arduino raspberry-pi frequency


【解决方案1】:

由于时钟频率,Arduino 或 Raspberry Pi 无法满足您的要求。 Arduino Uno 有 16MHz,Raspi 1.2GHz。

您需要远远超过 600MHz 才能产生 600MHz 的脉冲。

要在循环中创建脉冲,您必须先将输出变为高电平,然后再变为低电平。 Arduino (AVR) 中的单个 digitalWrite 大约需要 60 个时钟周期。所以 HIGH/LOW 大约是 120。您可以产生的最高频率分别是 130KHz 左右。

了解时钟发生器 IC 或晶体振荡器。

【讨论】:

  • 如果您直接访问端口寄存器而不是使用 digitalWrite,Arduino 可以产生更高的频率。它仍然无法达到 600MHz。
  • 我怀疑在 任何 当前可用的微控制器上是不可能的。 @user12530749 需要构建一些电路。
  • @user253751 当然,但我们在这里谈论的是 Arduino,而不是 AVR 寄存器。你离你想要的还有很多距离
  • 您可以在使用 Arduino IDE 编写代码时设置 AVR 寄存器。它通常是为了速度或因为 Arduino 库缺少功能而完成的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 2022-01-04
  • 1970-01-01
相关资源
最近更新 更多