atmega32的优点

时间:2010-05-10 18:33:15

标签: embedded arm 8051 atmega atmel

使用ATmega32比使用其他微控制器有什么好处? 它是否优于PICARM8051

6 个答案:

答案 0 :(得分:13)

<强>优点

  1. 仍在5 V上运行,因此传统的5 V封装接口更清洁
  2. 即使它具有5 V功能,较新的部件也可以达到1.8 V.这个范围非常罕见。
  3. 与其他处理器(HCS08,PIC12 / 16/18)相比,良好的指令集,非常好的指令吞吐量。
  4. 高质量的GCC端口(没有专有的蹩脚编译器!)
  5. “PA”变体具有良好的睡眠模式功能,微安。
  6. 精心设计的外围设备
  7. QTouch功能
  8. <强>缺点

    1. 仍然是8位。 ARM是16/32位的主力,它将以比任何8位更高的时钟速度推动更多的数据。
    2. 成本。与HCS08或其他便宜的8位处理器相比,价格昂贵。
    3. GCC工具链有怪癖,比如拆分内存模型和有限的16位指针。
    4. Atmel不是这个星球上最好的供应商(至少他们不是Maxim ......)
    5. 简而言之,它们非常干净且易于使用8位微控制器。

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

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

      PIC32正在与基于改进的MIPS内核的ARM7TDMI和ARM Cortex-M3竞争,并且具有GCC端口(非主线路)。

      AVR32正在与Cortex-M3竞争,并提供相当不错的价值,特别是在低功率区域。

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

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

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

答案 1 :(得分:4)

这取决于......首先,您必须知道微处理器的内容。

一般来说:

PIC:

  • 旧建筑。这意味着它既昂贵又缓慢
  • 仅针对低端市场(
  • 为它编写了很多代码

ARM

  • 可扩展
  • 快速/廉价

Atmega介于两者之间

答案 2 :(得分: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 test中击败最新的GCC,但这是一次测试,LLVM在性能上落后但正在改进。

就查找和创建免费的交叉编译器而言,我认为LLVM已经是最容易获取和使用的,并且未来只会变得更好。可悲的是,用于LLVM的MSP430端口看起来我可以在下午的PowerPoint演示文稿中做些什么,而不是一个严肃的端口。

我的答案是,这取决于你在做什么,我建议你尝试所有这些。目前,评估板的价格在50美元以下,部分在30美元以下。即使在ARM系列(ST,Atmel,Stellaris,LPC等)中,如果您尝试它们,您仍会发现各种各样的功能和怪癖。避免使用LPCexpresso,mbed2和STM32引物。一般避免使用LPC,一般不要使用Cortex-M3,直到你在ARM7上割牙为止。看看SparkFun for Olimex和其他主板。尽管可能是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是特殊的项目插件,不太广泛支持和脆弱。尽管与SBC或计算机平台上的英特尔相比,ARM的功耗较低,但它可能不如AVR或MSP那样低功耗。你真的需要看看你的项目并为工作挑选合适的处理器,我不会也不会将自己限制在一个家庭。由于评估板价格便宜,并且几乎所有人都可以使用免费工具,因此只需要花几个晚上或周末来学习每个工具。我建议学习多个AVR,并学习多个微处理器。

答案 3 :(得分:3)

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

在数量上(例如,20个或更多单位),您可以选择恰当匹配设备需求的合适平台,以尽可能降低成本。

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

答案 4 :(得分: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是许可核心。每个被许可方都添加了自己的外围设备,因此外围设备上的供应商之间没有共性,因此设备驱动程序代码在切换供应商时需要移植,并且您需要确保该部件具有您需要的外围设备。如果你很好地设计你的设备层,这很少是一个问题。

答案 5 :(得分:0)

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

AVR具有平坦的内存模型,并提供免费的开发工具,并且可以使用廉价的开发硬件。

我对8051的评论不够了解。

哦,如果你正在考虑原创的atmega32,我会说这是一个坏主意。它很快就会被弃用,所以你可能想要考虑atmega32系列的新型号。