6

What are the advantages of using ATmega32 than other microcontrollers? Is it better than PIC, ARM, and 8051?

4

6 回答 6

13

优点

  1. 仍然在 5 V 上运行,因此传统 5 V 的东西接口更干净
  2. 尽管它支持 5 V,但较新的部件可以运行到 1.8 V。这种宽范围非常罕见。
  3. 不错的指令集,与其他处理器(HCS08、PIC12/16/18)相比,指令吞吐量非常好。
  4. 高质量的 GCC 端口(没有专有的蹩脚编译器!)
  5. “PA”变体具有良好的睡眠模式能力,以微安为单位。
  6. 圆润的周边套装
  7. QTouch 功能

缺点

  1. 还是8位。ARM 是 16/32 位的主力,与任何 8 位相比,它会以更高的时钟速度推送更多的数据。
  2. 成本。与 HCS08 或其他便宜的 8 位处理器相比可能会很贵。
  3. GCC 工具链有一些怪癖,比如拆分内存模型和有限的 16 位指针。
  4. Atmel 不是这个星球上最好的供应商(至少他们不是 Maxim……)

简而言之,它们是一个非常干净且易于使用的 8 位微控制器。

8051 是遗留的:工具可以通过,架构很奇怪(idata?xdata?默认情况下大多数编译器中的非可重入函数?)。

PIC24之前的 PIC也很奇怪(寄存器库)和较差的时钟->指令吞吐量。也没有一流的开源 C 编译器。

PIC32与 ARM7TDMI 和 ARM Cortex-M3 竞争,基于经过调整的 MIPS 内核,并具有 GCC 端口(非主线)。

AVR32 正在与 Cortex-M3 竞争,并且提供了相当不错的价值,尤其是在低功耗领域。

MSP430 是超低功耗设备的王者,具有可通过的 GCC 端口(如果您的目标不是 430X)。

HCS08 非常便宜,但是指令吞吐量很差。外围设备变化很大。

ARM 曾经是成本较高的切入点,但随着 Cortex-M3 架构的推出,与 8 位相比,价格一直在下降。例如,LPC13xx 系列在许多方面与 ATmega32 相当。Luminary (TI) 拥有相当令人印象深刻的外围设备集。

于 2010-05-10T18:45:05.010 回答
4

我发现 PIC 系列(在 MIPS 版本之前)拥有最痛苦的指令集,这意味着如果您想节省空间、获得性能、控制等,汇编程序是首选语言。

8051 不那么痛苦,更多的寄存器,但仍然需要一些指令来做任何有用的事情(这意味着你不能从 MHz 的角度将这些与其他芯片进行比较)。我在很多方面都喜欢 AVR,他们拥抱自制软件和开发者社区,或者如果不是直接的,与竞争对手相比,那里有一个更好的开发者家族。我不喜欢该指令集,但它比 PIC 和 8051 早了几十年。我非常喜欢 MSP430 指令集,它是教授汇编程序的最佳指令集之一,但 TI 对开发人员并不友好,这可能是一场斗争。eZ430 走在了正确的道路上,但 goodfet 更好,因为它不会在所有其他内核版本中都无法工作。

就我而言,MSP430 和 ARM 拥有最好的指令集,这导致了良好的汇编器和编译器工具。您可以找到上述所有内容的商业工具,当然还有 8051、MSP430 和 ARM 免费工具(MSP430 和 ARM 可以使用 GCC,8051 不能,请查找SDCC)。目前 mspgcc4.sf.net 和CodeSourcery是用于 MSP430 和 ARM 的基于 GCC 的工具的地方。 LLVM支持两者,我能够让 LLVM 27 在dhrystone 测试中击败最新的 GCC ,但这是一项测试,LLVM 在性能上落后但正在改进。

就寻找和创建免费的交叉编译器而言,我认为 LLVM 已经是最容易获得和使用的,并且希望它只会变得更好。遗憾的是,LLVM 的 MSP430 端口是我在下午的 PowerPoint 演示文稿中可以做的事情,而不是一个严肃的端口。

我的回答是这取决于你在做什么,我建议你尝试所有这些。如今,评估板的价格在 50 美元以下,有些在 30 美元以下。即使在 ARM 系列(ST、Atmel、Stellaris、LPC 等)中,也有各种各样的特性和怪癖,只有在您尝试它们时才会发现。避免使用 LPCexpresso、mbed2 和 STM32 引物。一般避免 LPC 并避免使用 Cortex-M3,直到你在 ARM7 上切齿。看看用于 Olimex 和其他板的 SparkFun。虽然它可能是 LPC ARMmite PROArduino Pro是不错的选择。eZ430 是一个很好的 MSP430 入门,我不记得是谁在制造 8051 的东西,Renasys(sp?),8051 并非都是平等的,寄存器空间因人而异,您必须为此做好准备。如果你想玩 8051,我可能会寻找 8051 模拟器。

我看到 AVT 和肯定 ARM 继续占据主导地位,我希望看到 MSP430 用于超低功耗以外的用途。借助 ARM、AVR 和 MSP430,您现在和将来都可以使用并习惯 GCC 工具,即使 GCC 不是世界上最好的编译器,它也有很多好处,但它是迄今为止受支持最好的编译器。我会避免使用专有的编译器和工具。我会寻找具有现场可编程的非专有编程接口的设备,JTAG很好,但例如 Cortex-M3 上的新 SWD JTAG 不好。TI MSP 受到了伤害,但一些黑客已经解决了这个问题,至少目前是这样。关于 PIC,我真的没什么好说的,也不会尝试。要寻找的一个重要问题是胶合逻辑,零件或系列是否具有SPII2C或您想使用的任何总线,您需要内部上拉或接线或输入吗?

有些芯片没有这个选项,你必须添加外部硬件。你需要一个有条件的中断吗?ARM 往往会在这方面获胜,因为它是许多人使用的内核,因此每个 ARM 供应商都将自己的 I/O 放在那里,这样您仍然可以生活在 ARM 世界中并有很多选择,AVR 和 MSP 将受到很大限制比较。有了 ARM,工具将成为最先进的,ARM 是目前使用最多的处理器。AVR 和 MSP 是特殊的项目插件,支持较少且脆弱。虽然 ARM 的功耗比 Intel 低虽然 ARM 在SBC或计算机平台,它可能不像 AVR 或 MSP 那样低功耗。您确实需要查看您的项目并为工作选择合适的处理器,我不会也不会将自己限制在一个家庭中。由于评估板价格低廉,而且几乎所有工具都可以使用免费工具,因此只需花几个晚上或周末的时间来学习每个工具。我建议学习不止一个 AVR,学习不止一个微处理器。

于 2010-05-10T22:44:28.677 回答
4

这取决于.. 首先你必须知道你想从微处理器那里得到什么。

一般来说:

图片:

  • 旧建筑。这意味着它要么昂贵要么缓慢
  • 仅针对低端市场(<几兆赫兹)
  • 为它写了很多代码

手臂

  • 可扩展
  • 快速/便宜

Atmega 介于两者之间

于 2010-05-10T18:40:30.430 回答
3

在光谱的这一端,实际上只有两个因素会产生很大的不同。首先,在数量较少的情况下,唯一重要的是哪种架构最适合您的开发需求。如果您已经熟悉 PIC,那么学习 avr 没有多大意义,反之亦然。选择您喜欢的架构,然后对该架构上的选项进行排序,以查看哪种模型符合您的特定需求。

在数量上(例如,20 个或更多单元),您可能会受益于选择与您的设备需求完全匹配的正确平台,以尽可能降低成本。

一般来说,Pic 和 avr 平台适用于简单的单功能设备,而 arm 用于需要完整的操作系统堆栈(如 QNX 或 Linux)用于 TCP 或实时操作系统服务的情况。

于 2010-05-10T18:44:21.037 回答
2

如果您想要最广泛的外设、性能、价格点、软件和工具支持以及供应商选择,那么基于 ARM Cortex-M3 的部件将很难被击败。

但是直接解决您的问题,整个 AVR 系列具有一致的架构和从 Tiny 到 Mega 的通用外围设备集(不是 AVR32,而是完全不同的)。这是与 PIC 的显着差异,当向上移动范围(PIC10、12、16、18、24、32)时,您会获得不同的外围设计、不同的指令集,并且需要投资不同的编译器和调试硬件。

AVR 的指令集是为高效的 C 代码编译而设计的(与 PIC 不同)。

8051 是英特尔几十年前最初推出的一种架构,但现在被许多供应商用作 8 位设备的核心。它有一些巧妙的技巧,例如通过其 8 个重复的寄存器组和一个位可寻址内存块进行高效的多任务上下文切换,但具有古怪的内存架构和有限的地址范围(就像大多数 8 位设备一样)。非常适合小型目标设备,但不是真正的通用设备。

ARM Cortex-M3 实质上取代了 ARM7TDMI,并且是一种更简洁的设计,具有经过深思熟虑的架构。它需要最少的汇编程序启动代码,甚至 ISR 和向量表也可以直接用 C 语言编码,而无需任何奇怪的编译器扩展或汇编程序进入/退出代码。它的位带技术允许所有内存和外围设备原子位寻址,这对于快速 I/O 和安全多线程非常有用。基本上,它旨在允许系统级别的 C 或 C++ 代码没有非标准编译器扩展。它当然是 32 位架构,因此没有 8 位设备的资源或算术限制。低端部件的价格与更高性能的 8 位设备竞争,并将大多数 16 位设备淘汰出局(使 16 位几乎过时)。

要记住的另一件事是 PIC 和 AVR 来自单一供应商,而 8051 和 ARM 是许可内核。每个被许可方都添加了自己的外设集,因此供应商之间在外设上没有通用性,因此在切换供应商时需要移植设备驱动程序代码,并且您需要确保该部分具有您需要的外设。如果你设计好你的设备层,这很少是个大问题。

于 2010-05-11T19:53:13.443 回答
0

好吧,这并不容易回答。这主要取决于您之前使用的内容。如果您已经是 AVR 用户,那么它很好用。另一方面,您可以找到具有类似功能的 PIC,所以我想说这主要是个人喜好。我认为大多数 ARM 比 atmega32 系列更强大。如果您需要好的建议,请告诉我们您打算使用它的目的。

AVR 具有扁平内存模型,并有免费的开发工具和廉价的开发硬件可供它们使用。

我对 8051 了解得不够多,无法发表评论。

哦,如果您正在考虑原始 atmega32,我会说这是一个坏主意。它很快就会被弃用,因此您可能需要考虑 atmega32 系列的更新型号。

于 2010-05-10T18:41:06.717 回答