37

我应该从哪个家庭开始学习?(从未在微控制器上做过任何编程)

4

20 回答 20

54

今天,AVR 和 PIC 可能是爱好者中最常见的微控制器。两者都有非常广泛的设备变体,并且都可以用来实现类似的结果。

对于初学者,由于各种原因,我建议使用 AVR:

  • AVR 系列(小型、大型)连贯且易于理解。该架构功能强大且现代,特别适用于 C 编译器。AVR 当然也可以在汇编中编程。

  • 由于其 C 友好的架构,有高质量的 C 编译器可用,包括商业的和免费的。无处不在的 GCC 被移植到 AVR 并称为avr-gcc

  • 开始时,您真正需要的只是一些基本组件、AVR 芯片本身和面包板。甚至 PC 和 AVR 之间的编程电缆也基本上可以免费构建(所谓的 wiggler)。但是,有几种商业开发套件可供使用,最著名的是 Atmel 自己的STK500。商业开发套件是更昂贵的入门方式,但实际上不需要任何有关电子学的先验知识。一些开发套件包含例如LCD 显示器,因此很容易完成有趣的事情。

  • 它有一个丰富的爱好者社区

PIC以其独特的架构而臭名昭著。许多人为此喜欢 PIC,有些人讨厌它。AVR 更直接,似乎不会引起那么多极端和极端的意见。

AVR 和 PIC 都用于许多严肃的商业应用。但是,它们当然不是唯一的选择。我个人最喜欢的用于业余爱好和商业工作的微控制器是 Silicon Laboratories 的 C8051 系列,最著名的是 C8051 F530。C8051 系列有一个出色的免费 C 编译器和汇编器,称为SDCC

摘要:有很多选择,但请不要让您不知所措。只需选择一个并开始学习它。一旦你决定开始,微控制器真的非常容易掌握!

于 2008-10-02T20:53:00.293 回答
11

我的老板在没有经验的情况下在一周内学会了使用 AVR 的基础知识。

于 2008-09-26T15:03:07.797 回答
8

我会推荐AVR。它已远远超过 PIC,成为一般爱好者项目的首选微控制器平台。最值得注意的是,考虑 Arduino(和其他 *duino)平台,它以易于接口和流行的外形提供高端 AVR。

于 2008-11-22T01:14:59.250 回答
6

我做过一些 PIC 编程——主要是因为我喜欢这个芯片只有一两美元的想法。然而,对于初学者来说,仅仅根据价格做出决定是过早的优化。

用汇编程序编程是一种体验。您基本上必须先了解 100 个概念,然后才能使 LED 闪烁。(看门狗定时器、复位引脚、8 位计数器/溢出、延迟循环、十六进制、二进制、位掩码、中断、中断服务请求、IO 端口等)这一切都非常有教育意义 - 如此接近的感觉很棒到机器上——但是能够用 C 编写一些东西会隐藏一些这种复杂性,这样你就可以专注于结果。出于这个原因,我会说选择 AVR。(而且我相信价格现在更接近图片。)

另外:如果您有兴趣完成工作(并且不介意花费约 30 美元),请查看arduino。一个在我当地的电子商店卖它们的人说他正在向艺术学生出售大量它们。(它使用 Processing 项目中的 IDE,并使用 avr-gcc 编译代码。)

更新:修正了 Arduino 运行解释代码的注释。还更新了大约 Arduino 价格。

于 2008-11-12T15:27:33.907 回答
6

我非常喜欢 AVR 而不是 PIC,我觉得它的架构有点乱。这可能只有我一个人,如果你能用高级语言编写它不会给你带来麻烦,很可能是 C 的(某种方言)。

由于您是微控制器的新手,我认为性能不会成为问题,因此我会寻找开发工具的可用性:原型板、IDE 和仿真/调试工具。我个人非常喜欢 AVR Studio(Atmel 的免费开发环境)。

Jason 提到了 TI 的 MSP430,它确实是一款出色的控制器,尤其是在功耗极低的应用中。但我不会向新手推荐它,因为配置有点麻烦。(我记得振荡器的描述在用户手册中涵盖了 20 多页。)

于 2009-02-13T21:21:02.230 回答
6

一些人评论了 PIC micro 的奇怪(和 C 不友好)架构。较小的 PIC 确实如此,但 16 位芯片(PIC24F、dsPIC30 等)具有非常清晰的架构,可以很好地与 C 配合使用。

PIC24F 系列能够动态地将引脚分配给功能(定时器、A/D、串行 I/O),使其更易于设计。用于调试和开发的 MPLAB 环境非常好。

于 2009-05-14T01:47:04.243 回答
6

我不明白 arduino 有什么大不了的,它会破坏你了解实际情况的机会。我经常用 AVR 和 PIC 编程,基本上没有太大区别,我看不出有什么大惊小怪的。然而,对于初学者来说,远离 arduino 可能很简单,但这就是陷阱,它没有给你硬件架构的概念,也不知道幕后发生了什么,初学者需要学习成为一名有效的程序员的东西。当我还是一个初学者时,我从一个 ATmega32 开始,一个 20 美元的 USBasp 程序员、AVR Studio(免费)和 AVRDude(WinAVR 附带),并遵循 AVR Freaks 中的介绍教程。这就是你所需要的,完成!!!

PS 如果你想真正学习如何编程微控制器并有时间为你的微控制器学习汇编程序,那么你的 C 程序员将是开始使用 arduino 的人的 20 倍。

于 2010-10-26T05:44:12.397 回答
5

我投票给 PIC 以支持各种可用的设备。但我必须说,当我开始使用 PIC 时,它们几乎什么都不是。也许现在情况发生了变化。

于 2008-09-26T15:04:52.130 回答
5

我投票支持 TI 的MSP430系列。我已经广泛使用了 PIC(还有一点 Atmel 芯片),到目前为止,对我来说最重要的是一个好的调试 IDE。TI 在这方面做得很好,他们的 C++ 编译器工作得非常好。您可以以不到 100 美元的价格购买评估板,包括 IDE + USB 调试器。PIC 具有更好、更多样化的硬件外设,但 MPLAB 是一个废话,唯一的 PIC 的 C++ IDE 是 IAR 的一个,它相当昂贵。(超过 2000 美元)

于 2008-12-10T19:36:00.733 回答
5

我/我们选择 PIC 主要是因为同样的价格有更多的外围硬件。更重要的是,您甚至找不到可比的 AVR。我确实选择了其中一个旧的免费版本(从 PIC18 开始,迁移到 dspic33)

IDE 是免费的,(C)编译器在学生版中是免费的(第一个月后禁用优化)。入门级程序员也相当便宜。如果您有大量的中断、计数器和计时器,那么您可能根本不需要优化。直接来自 Microchip 的程序员是 30 美元。

请注意,上述关于 AVR 更适合 HLL 开发的评论有些过时,除非您真的选择像 PIC12 和 16 这样的传统架构。

一种典型的做法是用 C 编写更现代的 PIC18(8 位)和 16 位架构(24F、30F 和 dspic33,它们基于相同的主内核)。16 位甚至使用 GCC。现在也有基于 MIPS 的 32 位处理器,但它们在音频/视频处理领域与 ARM 的竞争更大。奇怪的是,现代的往往比旧的便宜。可能它们是在具有更高产量的更现代的工艺中生产的。

另一个注意事项:与此同时,Microchip/PIC 收购了 Atmel/AVR,但我认为在最初几年不会对产品线产生太大影响。

我真的很期待今年夏天发布的支持 60MIPs 以太网的 16 位比特币(afaik streetprice 略高于 10 欧元)

于 2009-05-01T21:54:24.493 回答
3

我对微控制器的第一次体验是使用OOPic-R。它让我可以进行简单的机器人实验,而不必过多担心代码。面向对象的编程流程使一切工作快速且易于编程。

最近,我尝试了另一种 PIC,非常便宜的PICAXE。包含的编程接口是轻而易举的工作。此外,要物理连接 PICAXE,您只需要一个 RS-232 端口对其进行编程和芯片上的两个引脚(无需进行电平转换)。我已经将 PICAXE 嵌入到非常小的容器中(提供 SMD 和 DIP 芯片),并且效果很好。

我没有在组装中编程微控制器的经验。如果你想尝试一下,AVR 可能更合适,因为它的用户社区更大。

据我所知,使用 ATMEL 的工具对 AVR 进行编程的最便宜的方法是 ATMEL AVR ISP mkII,价格为 35 美元。你可以花 10-15 美元找到第三方程序员。

于 2008-09-27T22:07:49.983 回答
3

如果你只是想知道什么是 MCU 编程,从 Arduino 开始是个好主意。它很便宜,具有对新手友好的 IDE(基于处理编程语言,其语法与 C 相似)。

但这并没有回答您的问题,因为尽管 Arduino 是基于 AVR 的,但您不会觉得现代 IDE 背后有 AVR MCU。:)

于 2008-12-03T08:47:20.423 回答
3

当我刚刚开始时,我在 PIC 方面取得了更大的成功。我试图从 Arduino 获得一个简单的入门套件,但如果不花费超过 100-200 美元的镍和一起调暗设置,就无法获得一个好的基本套件。大约 40 美元从 PIC 购买了一个很棒的小型入门套件,它拥有一切:IDE、编程器、带有用于演示和教程的内置电路的入门板。一次购买。此外,PIC 环境很容易设置和工作。我在一个小时内玩了它。

于 2009-04-06T16:14:16.840 回答
2

我会根据 C 交叉编译器的可用性做出选择。在过去,这将使 AVR 成为选择。我不知道现在是什么状态。

我已经用汇编程序编写了一个 PIC,但这并不好玩。C 在很多方面都更好。

于 2009-06-11T00:26:40.767 回答
1

http://www.arduino.cc/

高温高压

于 2008-12-04T21:27:49.843 回答
1

AVR 的最佳功能之一是 www.avrfreaks.net 论坛中的社区。你会得到一群经验丰富的电子工程师,他们愿意帮助新手上路。

于 2009-05-03T13:33:03.807 回答
1

我会说我发现 8051 微控制器是最简单的,Atmel 已经提出了具有如此多内置功能的微控制器……但人们仍然更喜欢使用 AVR……我的手会选择 8051 系列(如果觉得舒服)否则 AVR 的...

于 2009-07-30T15:40:37.147 回答
1

我喜欢 AVR。它易于编程和可用资源。很少有像 arduino 这样的社区可以使用它。

于 2010-04-19T21:51:25.960 回答
0

关于 AVR 优越性的更多讨论,在另一个 Stack Overflow 上: http ://embeddedgurus.com/stack-overflow/2009/04/pic-stack-overflow/

8 位 PIC 的流行让我感到困惑。它的架构很糟糕——有限的调用堆栈只是第一个可怕的东西。再加上对分页和存储的需求以及单个中断向量,您将面临编程模型的噩梦。如果这是 8 位设备的标准,那将是一回事——但事实并非如此。AVR 架构让 PIC 大吃一惊,而 HC05 / HC08 也领先于 PIC。考虑到选择,我认为我什至会在 PIC 上选择 8051。我没有看到任何成本优势、封装优势(Atmel 刚刚发布了 SOT23-6 AVR,它本质上是与其最大设备兼容的指令集)或外围设备优势。简而言之,我不明白!顺便,

于 2009-05-18T13:58:38.180 回答
-1

我从摩托罗拉 M68HC11 开始,它很简单。我认为您将获得与任何 8 位控制器相同的体验。

于 2008-09-26T15:08:40.357 回答