在选择微控制器时,这确实是一个令人困惑的任务,因为市场上有各种规格相同的微控制器。因此,选择微控制器时每个参数都变得很重要。在这里,我们比较两种最常用的单片机-PIC单片机和AVR单片机。在这里,可以在各个级别上对它们进行比较,这将有助于为您的项目选择微控制器。
从项目需求开始
在开始选择任何微控制器之前,请收集有关要启动的项目的所有信息。尽可能多地收集信息非常重要,因为这将在选择正确的微控制器中发挥重要作用。
- 收集项目信息,例如项目大小
- 使用的外围设备和传感器数量
- 电力需求
- 项目预算
- 接口要求(如USB,SPI,I2C,UART等),
- 制作基本的硬件框图,)
- 列出需要多少个GPIO
- 模数输入(ADC)
- 脉宽调制
- 选择所需的正确架构,即(8位,16位,32位)
- 识别项目的内存需求(RAM,闪存等)
查看特色参数
收集所有信息后,就该选择微控制器了。本文将比较两个竞争的微控制器品牌PIC和AVR的各种参数。根据项目比较这两个项目的需要,请查看以下参数,例如,
- 频率:微控制器运行的速度
- I / O引脚数:所需的端口和引脚
- RAM:大多数MCU中声明的所有变量和数组(DATA)
- 闪存:无论编写什么代码,编译后都放在此处
- 高级接口:高级接口,例如USB,CAN和以太网。
- 工作电压: MCU的工作电压,如5V,3.3V或低压。
- 目标连接器:用于简化电路设计和尺寸的连接器。
PIC和AVR中的大多数参数都是相似的,但是有些参数在比较时肯定会有所不同。
工作电压
随着电池供电产品的增多,PIC和AVR已设法改善了低压操作。与低电压操作相比,AVR以较早的PIC系列(例如PIC16F和PIC18F)为人所知,因为这些PIC系列使用的芯片擦除方法至少需要4.5V的电压才能工作,而低于4.5V的PIC程序员必须使用行擦除算法。无法删除锁定的设备。但是,在AVR中并非如此。
AVR已改进并推出了最新的P(微功耗)变体,例如ATmega328P,它们具有极低的功耗。此外,当前的ATtiny1634已有改进,并具有休眠模式,以减少使用欠压时的功耗,这在电池供电设备中非常有用。
结论是,AVR以前专注于低压,但是PIC现在已经转变为低压操作,并推出了一些基于picPower的产品。
目标连接器
目标连接器在设计和开发时非常重要。AVR定义了6路和10路ISP接口,这使它易于使用,而PIC没有,因此PIC编程器带有飞线或RJ11插座,难以安装在电路中。
结论是,AVR使目标连接器的电路设计和开发变得简单,而PIC仍需要对此进行纠正。
进阶介面
就高级接口而言,PIC无疑是一种选择,因为它具有USB,CAN和以太网等高级功能,而AVR则不然。但是,可以使用外部芯片,例如将FTDI USB连接到串行芯片,Microchip以太网控制器或Philips飞利浦CAN芯片。
结论是,PIC肯定具有比AVR更高级的接口。
开发环境
除此之外,还有重要的功能使两个微控制器彼此不同。开发环境的便捷性非常重要。以下是一些重要参数,这些参数将说明开发环境的难易程度:
- 开发IDE
- C编译器
- 组装工
开发IDE:
PIC和AVR都带有自己的开发IDE 。PIC开发是在MPLAB X上完成的,与AVR的Atmel Studio7相比,MPLAB X是稳定,简单的IDE,Atmel Studio7的大小为750MB,并且笨拙,并具有更多的附加功能,这使得新手电子爱好者很难而复杂。
可以通过微芯片工具PicKit3和MPLAB X对PIC进行编程。通过使用诸如JTAGICE和AtmelStudio7之类的工具对AVR进行编程。但是,用户正在切换到AVR Studio的较早版本,例如带有Service Pack3的4.18,因为它运行速度更快并且具有开发的基本功能。
结论是,PIC MPLAB X比AtmelStudio7更快,更友好。
C编译器:
PIC和AVR都分别带有XC8和WINAVR C编译器。PIC收购了高科技公司,并推出了自己的编译器XC8。它已完全集成到MPLAB X中,并且运行良好。但是WINAVR是基于GCC编译器的ANSI C,这使得移植代码和使用标准库变得容易。免费的4KB受限版本的IAR C编译器提供了价格昂贵的专业编译器。由于AVR最初是为C设计的,因此代码输出既小又快速。
PIC具有许多功能,使其与AVR相比非常出色,但由于PIC的结构,其代码变得更大。付费版本提供了更多优化,但是免费版本没有得到很好的优化。
结论是,就编译器而言,WINAVR比PIC XC8更好,更快。
组装商:
借助三个可简化寻址和字操作的16位指针寄存器,AVR汇编语言非常容易,具有大量指令,并且能够将所有32个寄存器用作累加器。PIC汇编程序不能通过累加器强制运行所有功能,而强制汇编器始终使用存储区切换来访问所有特殊功能寄存器。尽管MPLAB包含宏以简化存储区切换,但它既繁琐又耗时。
也缺少分支指令,只是跳过和转到,这会导致结构复杂,代码有些混乱。PIC系列具有更快一些的微控制器系列,但又仅限于一个累加器。
结论是,尽管某些PIC单片机速度更快,但就汇编程序而言,AVR更好。
价格和供货情况
说到价格,那么PIC和AVR都非常相似。两者的价格大致相同。在可用性方面,PIC与AVR相比,PIC已设法在规定的时间内交付产品,因为Microchip始终有短交货期的政策。Atmel遇到了困难时期,因为其广泛的产品范围意味着AVR仅是其业务的一小部分,因此其他市场在生产能力方面可以优先于AVR。因此,建议在交货时间表上使用PIC,而AVR对于生产至关重要。微芯片零件往往更容易获得,尤其是少量时。
其它功能
PIC和AVR都有多种封装可供选择。PIC推出的版本超过AVR。根据不同的应用程序,此版本的推出可能会有优缺点,例如更多版本会在选择合适的模型时造成混乱,但同时提供了更好的灵活性。PIC和AVR的最新版本功耗很低,并且可以在各种电压范围内工作。PIC时钟和计时器更精确,但就速度而言,PIC和AVR几乎相同。
Atmel Studio 7添加了Production ELF文件,该文件在一个文件中包含EEPROM,闪存和熔丝数据。而AVR已将保险丝数据集成到其十六进制文件格式中,因此可以在代码中设置保险丝。这使PIC可以更轻松地将项目转移到生产中。
结论
PIC和AVR都是出色的低成本器件,不仅可用于工业领域,而且还是学生和业余爱好者的热门选择。两者都被广泛使用,并具有良好的网络(论坛,代码示例)以及活跃的在线状态。两者均具有良好的社区影响力和支持,并且都具有广泛的尺寸和尺寸,并具有独立于核心的外围设备。 Microchip已经接管了Atmel,现在负责AVR和PIC。最后,众所周知,学习微控制器就像学习编程语言一样,因为一旦学习了另一种语言,学习另一种语言就会容易得多。
不管怎么说,谁赢了,但是在几乎所有工程领域中,都没有“ best”之类的词,而“最适合应用”是一个很合适的词组。这完全取决于特定产品,开发方法和制造过程的要求。因此,根据项目,可以从PIC和AVR中选择非常合适的微控制器。