1

如果这是重复的,我深表歉意,即使我确实在这里搜索了一个类似的问题,但我只找到了一个。

因此,我的工程课程中的编程团队目前使用 32 位 72MHz ARM Cortex-M3 微处理器。我们都是高中生,我们都在努力使用图书馆等等,主要是因为我们正在使用的 Bioloid Premium 制造商的文档很差。然而,我们即将购买 8 位 16MHz AVR 微控制器,因为它具有更广泛的在线支持和更易于使用的库 + 更多文档。我的问题是,减少的位数以及较低的处理器速度对我们真的很重要吗?我们不会进行大量流程密集型编程,而更像是一个基本的机器人课程。那么,8 位 16MHz AVR 微处理器和 32 位 72MHz ARM Cortex-M3 微处理器之间的主要区别是什么?此外,(如果它具有任何相关性):

  1. 我们正在使用带有 CM530 (ARM) 的 Robotis 的 Bioloid Premium,即将切换到 CM510 (AVR)。
  2. 我们将使用 Embedded C 而不是 Robotis 的 RoboPlus IDE 作为我们的指令集。

我搜索了一下,发现了比特数是什么,以及更多关于它对处理器速度的影响,但没有很多关于它的文件给出一个清晰简洁的答案,这就是我来这里的原因,因为它是为了清晰简洁答案。(所以请不要告诉我在过去二十分钟里用谷歌搜索它。)

4

2 回答 2

2

我们正在使用带有 CM530 (ARM) 的 Robotis 的 Bioloid Premium,即将切换到 CM510 (AVR)。我们将使用 Embedded C 而不是 Robotis 的 RoboPlus IDE 作为我们的指令集。

我环顾了您所指的产品,您的问题似乎缺少您真正应该关注的问题。

Bioloid Premium 套件看起来非常漂亮,所有部件都已经组装好并为您配置好了。许多机器人课程通常与硬件设计有关。你不会做任何这些。因此,您的任务实际上归结为对您提供的硬件进行编程。

也就是说,看起来类似于 Lego Mindstorms 拖放界面的 RoboPlus IDE 与使用 AVR Studio 用 C 语言编写代码之间存在天壤之别!

我以前使用过 AVR Studio,但最近版本发生了重大变化。您可能需要修改示例程序以在最新版本中工作,并且您可能需要一些帮助。

看起来他们为您提供了足够的示例代码来使用外围设备,但我没有立即看到如何编写 main() 函数来执行诸如遵循计划之类的事情。也许,网上有一些例子。

但是要回答您的问题,您可能不会在处理器容量方面遇到任何限制。他们改用更便宜、更强大的处理器来编写更新版本的控制软件,但旧硬件也会很棒。在 C 语言中工作,您将熟悉如何实际使用 MCU,并且这些知识将转移到其他芯片。AVR 系列是一个很好的开始。它具有许多功能,并且在工作方式上非常明智,并具有大量文档和第三方支持。绝对从 Atmel 下载您正在使用的芯片的数据表,尽管它是一个密集且难以阅读的数据表。您只需要阅读其中的一部分。另外,请查看AVR Freaks论坛。

这听起来像是一门很棒的高中课程。玩得开心!

于 2013-03-22T06:32:17.843 回答
1

我的问题是,减少的位数以及较低的处理器速度对我们真的很重要吗?[...] 那么,8 位 16MHz AVR 微处理器和 32 位 72MHz ARM Cortex-M3 微处理器之间的主要区别是什么?

多么酷的项目!这是了解处理器如何工作以及位宽和时钟速度意味着什么的绝佳机会。

时钟速度在概念上是最容易理解的。AVR 和 ARM 等微控制器使用时钟晶体来设置电路运行的速度。使用更快的时钟,处理器可以在相同的时间内执行更多的指令。72MHz 时钟是 16MHz 时钟的 4 倍以上,因此 ARM 处理器的运行速度将比 AVR 快 4 倍。但“跑得更快”的真正含义是什么?处理器执行指令。在基本层面上,这些指令类似于“添加两个数字”和“使该引脚上的电压变高”。ARM 处理器在这里会快很多,但考虑一下它将与什么硬件对话:伺服系统。伺服电机监听一个相当低速的 PWM 信号,所以在那个速度下,72MHz 和 16MHz 之间的差异是'

但是位宽呢?这个有点棘手。它不会真正影响处理器的运行速度,但会影响它执行的指令的复杂性。假设您想将两个非常大的数字相加。像 100,000 和 200,000 这样的数字。当我们在纸上将它们加在一起时,这只是一步。但是像 AVR 这样的 8 位处理器只能处理 65,536 这样大的数字。因此,为了对这么大的数字进行操作,需要将加法分解为几个较小的步骤。另一方面,32 位 ARM可以处理这么大的数字。所以它一步完成了加法。我希望这是有道理的。

无论如何,我已经在比你的 16MHz AVR 更慢的处理器上使用伺服系统做了很多工作。它很可能适合您想做的事情,并且就像您发现它有一个更加活跃的爱好者社区一样。如果您正在寻找代码的快速示例,Cornell 4760 页面有一些很棒的项目可供您学习。

于 2013-03-26T14:32:06.320 回答