所以我的工程类编程团队目前使用的是32位72MHz ARM Cortex-M3微处理器。我们都是高中毕业生,我们正在努力使用这些库等等,主要是因为我们正在使用的Bioloid Premium制造商的文档很差。然而,我们即将购买一个8位16MHz AVR微控制器,因为它具有更广泛的在线支持和更易于使用的库+更多文档。我的问题是,减少的位数以及较低的处理器速度对我们来说真的很重要吗?我们不会做很多过程密集型编程,但更像是一个基本的机器人类。 那么,8位16MHz AVR微处理器和32位72MHz ARM Cortex-M3微处理器之间的主要区别是什么? 此外,(如果它具有任何相关性):
我已经google了一下,发现了点数是多少,更多关于它对处理器速度的影响,但不是很多关于它的文档给出了清晰简洁的答案,这就是我来到这里的原因,因为它是清晰简洁的答案。 (所以当我花了20多分钟这么做时,请不要告诉我谷歌。)
答案 0 :(得分:2)
我们正在使用Robotis w / CM530(ARM)的Bioloid Premium,即将推出 切换到CM510(AVR)。我们将使用Embedded C而不是Robotis' RoboPlus IDE作为我们的指令集。
我环顾了你所提到的产品,你的问题似乎错过了你应该关注的问题。
Bioloid Premium套件看起来非常甜美,所有部件都放在一起并为您配置。许多机器人课程通常都与设计硬件有关。你不会做任何这样的事情。因此,您的任务实际上归结为您给出的硬件编程。
也就是说,RoboPlus IDE之间存在着天壤之别,它似乎与Lego Mindstorms拖放界面类似,并且使用AVR Studio在C中编写代码!
之前我使用过AVR Studio,但最近版本发生了重大变化。您可能需要修改示例程序才能使用最新版本,您可能需要一些帮助。
看起来它们为您提供了足够的示例代码来使用periperpherals,但我没有立即看到如何编写main()函数来执行类似于遵循计划的操作。也许,网上有一些例子。
但是要回答你的问题,你可能不会在处理器容量方面遇到任何限制。他们转而使用更便宜,功能更强大的处理器来编写更新版本的控制软件,但旧硬件也会很棒。使用C语言,您将熟悉如何实际使用MCU,并且知识将转移到其他芯片。 AVR系列是一个很好的开始。它具有许多功能,并且在工作方式上非常明智,具有大量文档和第三方支持。绝对可以从Atmel下载datasheet来获取您正在使用的芯片,尽管这是一个密集且难以阅读的内容。您只需要阅读部分内容即可。另外,请查看AVR Freaks论坛。
这听起来像一个梦幻般的高中课程。玩得开心!
答案 1 :(得分: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 page有一些您可以学习的优秀项目。