我应该从哪个家庭开始学习?(从未对微控制器进行任何编程)
今天,AVR和PIC可能是业余爱好者中最常见的微控制器.两者都具有非常广泛的设备变体,并且两者都可用于实现类似的结果.
对于初学者,我会建议AVR由于各种原因:
AVR系列(微小,巨型)连贯且易于理解.该架构功能强大且现代,特别适用于C编译器.AVR当然也可以在汇编中编程.
由于其C友好的架构,有商业和免费的优质C编译器.无处不在的GCC被移植到AVR并称为avr-gcc.
首先,您需要的是一些基本组件,AVR芯片本身和面包板.甚至PC和AVR之间的编程电缆也可以基本上免费构建(所谓的摆动器).但是,有几种商业开发套件可供使用,最着名的是Atmel自己的STK500.商业开发套件是更昂贵的入门方式,但实际上并不需要任何有关电子设备的先验知识.一些开发套件包含例如LCD显示器,因此很容易完成有趣的事情.
它有一个丰富的业余爱好者社区.
PIC以其独特的建筑而臭名昭着.很多人都喜欢PIC,有些人讨厌它.AVR更直接,似乎没有引起极端和极端的观点.
AVR和PIC都用于许多严肃的商业应用.但是,它们当然不是唯一的选择.我个人最喜欢的用于业余爱好和商业工作的微控制器是Silicon Laboratories的C8051系列,最着名的是C8051 F530.C8051系列有一个优秀的免费C编译器和汇编器,称为SDCC.
总结:有很多选择,但请不要让那些压倒你.只需选择一个并开始学习它.一旦你决定开始,微控制器真的非常容易掌握!
我的老板在没有经验的情况下在一周内使用AVR获取了基础知识.
我建议AVR.它远远超过PIC作为一般业余爱好者项目的首选微控制器平台.最值得注意的是,考虑到Arduino(和其他*duino)平台,它提供了一个易于界面和流行外形的高端AVR.
我做了一些PIC编程 - 主要是因为我喜欢芯片只有一两美元的想法.然而,对于初学者来说,仅仅根据价格做出决定是不成熟的优化.
汇编程序编程是一种体验.在闪烁LED之前,您基本上必须了解100个概念.(看门狗定时器,复位引脚,8位计数器/溢出,延迟循环,十六进制,二进制,位屏蔽,中断,中断服务请求,IO端口等)这一切都非常有教育意义 - 并且感觉如此接近到机器 - 但能够用C编写代码会隐藏一些复杂性,这样你就可以专注于结果.出于这个原因,我会说与AVR一起去.(而且我相信价格现在更接近PIC了.)
另外:如果你对完成任务感兴趣(并且不介意花费~30美元),请查看arduino.一个在我当地的电子商店卖它们的人说他正在向艺术学生出售他们的吨数.(它使用Processing项目中的IDE,并使用avr-gcc编译代码.)
更新:修正了Arduino运行解释代码的注释.还更新了约Arduino价格.
我非常喜欢AVR而不是PIC,我的架构我觉得有点乱.这可能只是我,如果你能用高级语言写作,最有可能(某些方言)C,它不会给你带来麻烦.
由于您不熟悉微控制器,我认为性能不会成为问题,因此我会寻找开发工具的可用性:原型板,IDE和仿真/调试工具.我个人非常喜欢AVR Studio(Atmel的免费开发环境).
Jason提到了TI的MSP430,它确实是一款出色的控制器,特别是如果你处于非常低功耗的应用中.但我不建议新手,因为配置有点麻烦.(我记得在用户手册中,振荡器的描述涵盖了20多页.)
有些人评论了PIC micro的奇怪(和C不友好)架构.较小的PIC也是如此,但16位芯片(PIC24F,dsPIC30等)具有非常清晰的架构,可以很好地与C配合使用.
PIC24F系列能够动态地为功能(定时器,A/D,串行I/O)分配引脚,使设计更容易.用于调试和开发的MPLAB环境非常好.
我不明白与arduino有什么关系,它会毁掉你理解实际发生的事情的机会.我定期与AVR和PIC一起编程,基本没有太大区别,我看不出大惊小怪.然而,对于初学者远离arduino,它可能很简单,但这就是陷阱,它没有给你任何硬件架构的概念,也不知道幕后发生了什么,初学者需要学习成为一名有效的程序员.当我还是初学者时,我开始使用ATmega32 20美元USBasp程序员,AVR Studio(免费)和AVRDude(附带WinAVR),并按照AVR Freaks的介绍教程进行操作.这就是你所需要的一切!
PS如果你想真正学习如何编写微程序并有时间学习微博的汇编程序,那么你的C程序员将是开始使用arduino的人的20倍.
对于各种各样的设备,我投票给PIC.但我必须说,当我开始使用PIC时,它们几乎没有别的.也许现在事情发生了变化.
我投票支持TI的MSP430系列.我已经广泛使用了PIC(也有Atmel芯片),到目前为止,对我来说最重要的是一个很好的调试IDE.TI在这方面做得非常出色,而且他们的C++编译器工作得非常好.您可以使用价格低于100美元的评估板,包括IDE + USB调试器.PIC具有更好和更多样化的硬件外设,但MPLAB是一个废话,PIC的唯一C++ IDE是IAR的一个相当昂贵的.(超过$ 2K)
我/我们选择PIC主要是因为有相同价格的外围硬件.更重要的是,你甚至找不到类似的AVR.我确实选择了一个遗留的免费版本(从PIC18开始,迁移到dspic33)
IDE是免费的,(C)编译器在学生版中是免费的(在第一个月后禁用优化).入门级程序员也相当便宜.如果你有大量的中断,计数器和定时器,你可能根本不需要优化.直接来自Microchip的程序员是30美元.
请注意,除非您真正选择PIC12和16等传统架构,否则上述关于AVR更多地支持HLL开发的评论有点过时了.
人们通常在C中编程更现代的PIC18(8位)和16位架构(24F,30F和dspic33,它们基于相同的主要核心).16位甚至使用GCC.现在还有基于MIPS的32位,但它们在音频/视频处理领域与ARM竞争更多.奇怪的是,现代的通常比旧的便宜.可能它们是在更现代化的生产过程中生产出来的.
另一个注意事项:同时Microchip/PIC收购了Atmel/AVR,但我认为最初几年不会对产品线产生太大影响.
我真的很期待今年夏天即将发布的60MIPs以太网16-bitter(afaik streetprice只需10欧元以上)