我作为嵌入式系统软件工程师已经工作了 5 年(更多的是 CAN 和核心级编程、I2C、SPI),并且我参加了一个研究生课程。目前我是一名应用软件程序员,这也很有趣。但是,我对嵌入式系统项目的乐趣和满足感消失了。我想从可以在家做的项目开始,以保持我的兴趣。如果你们中的任何人可以与一些外围设备分享有关具有 16 位或 32 位微型的开发套件的信息,我将不胜感激。或者建议一个重新开始的好地方。
11 回答
发光微板很好。Olimex 板很好,http://www.sparkfun.com是 olimex 和其他人的好地方。我不喜欢 avr 指令集,但它们非常受欢迎,arduino pro,你可以在 sparkfun 或 lilypad 买到,这取决于他们当时的库存。armmite 看起来不错,昨天刚订了一个。msp430 有一个非常好的指令集,ARM 也是如此。Stellaris 板可能是您学习如何交谈的片上外围设备的最佳选择。他们越来越多地试图隐藏 apis 中的魔法,这违背了目的。最近终于买了stm32的primer 1和primer 2,非常失望,如果非要用primer1,但如果觉得stm32需要就用olimex板。如果 olimex 有一个 Stellaris 标头(由 sparkfun 出售),我会全力以赴。
我会检查您当地的电子产品经销商有什么可用的(您没有说明您在哪里)。
在美国,您可以查看Sparkfun。
最容易设置的是 8 位 Atmel AVR 控制器、一个 7805 和面包板上的一些电容器以及一个编程器就足够了。AVR 的 GNU 工具(gcc 等)非常好。
ARM Cortex M3 是一个全新的小型 32 位架构,因此它可能会让您走在前沿。Luminary 和 ST (STM32F) 控制器已经存在一段时间了,NXP(前飞利浦)LPC17xx 控制器的发布迫在眉睫。
对于完全不同的东西,FPGA 也很酷。有相对便宜的板子(约 150 欧元),上面有很多硬件,针对学生。
这可能是一个非常规的建议,但我和一群朋友今年去了Defcon ,得到了我们的徽章。出现在它上面的微程序是相当惊人的。诚然,我们没有人在硬件方面有太多经验,但拥有丰富的软件技能并且仍然从中获得乐趣。
飞思卡尔 DSP 微处理器和 codewarrior 被证明是一种令人愉快的体验。除了必须在我的 windows xp vm 中做所有事情。
无论如何,这听起来很合你的胃口。UART可编程,i2c接口,大量可编程引脚,内部时钟。希望这会有所帮助
玩过其中一些东西后,我建议使用 Luminary Micro 的 Stellaris 开发板之一作为入门的好地方。他们所基于的 ARM Cortex-M3 是 32 位架构,很方便来自桌面世界,并且看起来介于微型 8 位微控制器和更强大的东西(如 Beagleboard 中的 ARM Cortex A8)之间运行Linux。电路板本身有一组很好的“有趣”外围设备——通常是一个小的 LED 屏幕、一些按钮、一个微型 SD 卡插槽和一个以太网端口。更重要的是,他们有板载调试硬件,用于将您的程序加载到板上等等;无需为此购买和连接外部调试设备,您只需插入 USB 电缆即可。
(免责声明:我的公司销售这些开发软件,所以我在这里并不完全没有偏见。另外,我应该注意我是代表我自己和我的个人观点,而不是代表我的公司。)
考虑为 Linux 开源设备驱动程序做出贡献。这应该能满足你去低层次的冲动,并在这个过程中帮助别人。我意识到这不是严格意义上的嵌入式开发,但它可能会给你一些同样的冲动。
AVR uController 非常受欢迎,当然 8051 永远不会消失。我有两个我感兴趣的项目(但嵌入不是我的一杯茶)。它们是宽带 O2 控制器(是的,我知道已经有这方面的设备,这看起来是一项具有挑战性的工作)和非常小规模的电子燃油喷射。(是的,我知道这方面也有中型项目)。
只是一个想法。
最初的 PC 架构感觉有点像嵌入式系统——现代 PC 仍然几乎完全向后兼容它。
我为 PC 编写了一个简单的实模式抢先式多任务系统,后来也创建了一个保护模式系统 - 全部使用汇编语言。没有多少人会认为这很有趣,但我确实如此。
首先是 VGA——我认为它的设计非常适合当时的情况(不是真正的原始 PC 的一部分,但无论如何都得到了广泛的支持)。文档可能有点神秘,但 VGA 设法将向后兼容性、易用性(无论如何对于有经验的嵌入式程序员)和一些不错的速度提升特性结合在一起。
然后是并行端口 - 连接一些 LED - 或更复杂的东西!您也可以编写一个由端口触发的中断处理程序。我通过并行端口使用脉冲宽度调制驱动扬声器。
您可以使用定时器芯片进行播放(其中一个定时器可以产生“时钟滴答”中断,另一个可用于通过内部扬声器播放方波)。
您可以在 DOS 中启动,然后替换其中的部分内容 - 或者您可以直接从磁盘启动并仅限于调用 BIOS 功能。如果你想进入保护模式,你也会失去它,基本上必须编写自己的设备驱动程序 - 例如向磁盘发出请求,通过 DMA 获取扇区......
我个人喜欢 x86 汇编 - 用于汇编编程。如果您打算使用编译器来生成它,这是一个愚蠢的指令集,但对于汇编编程来说,它相当不错。
这类东西可以教你很多关于操作系统和语言实现的知识。它可能会让您进入虚拟化和分布式编程等领域......
你试过亚马逊网站吗?可能是这样的?您在寻找什么级别的复杂性?
Subha - 如果您是以 Linux 为中心的开发人员,或者如果您有兴趣学习嵌入式 Linux,TinCanTool 的 Hammer Board是一个非常有趣的选择。它使用三星 micro,开发硬件有一些丰富的外围设备,包括 UART、SPI、I2C 和 USB 接口。
我拥有其中一个板,不仅对结构和功能感到满意,而且支持非常好。你可以花大约 240 美元得到一整套,包括程序员。
对于 32 位嵌入式系统,我一直很喜欢 LinuxStamp (theLinuxStamp.com)。但是,您可以在 amazon 或 eBay 上获得更便宜的 Linksys NSLU2。然后查找 unslung 和/或 slug 操作系统以开始开发。它将为您提供一个完整的 Linux 系统,您可以在该系统上开始编程。
您应该从 Leaflabs http://leaflabs.com/查看新项目,它基本上是一个 STM32 Cortex M3 32 位微控制器,它有一个 arduino 接口它看起来是一个很棒而且很有趣的东西,而且只要 50 美元你就不会能够以这个价格找到许多开发套件。