我有微控制器的汇编和 C 编程经验,但我不熟悉当今公司提供的各种 MCU 和 DSP 系列。(例如:德州仪器、爱特梅尔、瑞萨)
我想了解好的微控制器/DSP,以及用它们开发的感觉。请总结您对各种MCU / DSP系列的理解,每个答案一个系列。
如果您详细说明此(ese)微控制器的主要应用程序是什么,那也将非常有趣。
(这是一个“社区维基”,因此任何拥有>100 声望的人都可以改进和改进答案)
我有微控制器的汇编和 C 编程经验,但我不熟悉当今公司提供的各种 MCU 和 DSP 系列。(例如:德州仪器、爱特梅尔、瑞萨)
我想了解好的微控制器/DSP,以及用它们开发的感觉。请总结您对各种MCU / DSP系列的理解,每个答案一个系列。
如果您详细说明此(ese)微控制器的主要应用程序是什么,那也将非常有趣。
(这是一个“社区维基”,因此任何拥有>100 声望的人都可以改进和改进答案)
ARM是 32 位控制器的行业标准,尽管PIC32有一些不错的功能。它们非常易于使用。我喜欢 NXP LPC2000 和 LPC1000 ARM 芯片,但新的 Energy Micro ARM Cortex-M3芯片非常有趣,因为它的功耗非常低 - 与MSP430 [Youtube] 一样好。支持非常多变,NXP 芯片有我运行的LPC2000组,人们似乎很喜欢 - 我们有超过 8,000 名成员!
Atmel AVR,也许在Arduino中:我不同意 Leon 的观点,并说 Atmel 的 AVR 系列是一个很好的开始。它非常多样化,从 ATtiny 到 ATmega,再到 Dragon(我没有使用过)。我想说 AVR32 和 Xmega 是不同的系列。
AVRfreaks 是网络上最好的电子论坛之一(很快就会被 Chiphacker 超越 :),Arduino 社区也存在,它是针对爱好者的。Arduino 非常适合学习微控制器硬件,尽管它不会帮助您进行编程(OP 表示他们知道 ASM 和 C)。
与其他工具链相比,WinAVR 套件非常简单。只需下载,按 Next 几次,输入一些代码并按 F5。没有比这更容易的了。当然,AVR Studio 编辑器并不具备它应有的所有功能,但许多供应商的 IDE 并没有更好,甚至更差(*cough*MPLAB*cough*)。
我不确定交付情况,但我会说 6 针 SOT23 ATtiny 是一款小众芯片,而且 SO8 或 DIP 版本非常可用。在相关的说明中,他们在 DIP(用于原型制作)和紧凑型 SMT 封装中也做得很好。
TI MSP430系列
硬件
硬件外设的种类不如 Microchip PIC 灵活,但软件调试工具链支持比 Microchip 的部分要好得多。TI 最近发布了用于 MSP430 微控制器和 TMS320F28xx DSP 的新版 Code Composer,它使用 Eclipse。调试支持非常好。
这些也很容易设置控制寄存器,比 28xx DSP 容易得多。
MSP430 非常适合时序密集型应用,因为它通常有更多的捕捉/比较寄存器可供使用。这可以大大简化您需要处理许多时序密集型外围设备的系统。
发展
你可以花 150 美元购买一个开发系统(有一个更便宜的 20 美元的 MSP430-on-a-a-USB-stick 变体,但它有点限制),你会得到一个真正的硬件 + 调试器原型系统。您还可以获得带有 2 个芯片的新 TI启动板,价格为 4.30 美元。
微芯片 PIC 16F/18F
目标市场
廉价的 8 位微处理器。16F 是 Microchip 较早的处理器系列之一,并不特别适合用 C/C++ 编程,因为:
18F 系列较新,如果您的项目负担得起,则应考虑使用它。它在目标市场、外设集、IC 封装、开发工具和价格方面与 16F 系列相似。18F 内核被设计为更适合 C 和 C++,因为:
软件
非常容易编程,您可以使用它的 30 条汇编指令集编写,或者使用C 编译器。这些是 8 位 MCU,因此如果您想使用 >255 的值,您必须自己查找/写入 2 字节加法/减法/乘法/除法代码。它的 RAM 有 4 个“银行”,所以如果你用汇编语言编写,你必须不断地来回切换以访问存储在当前银行以外的银行中的变量。
硬件
这些 MCU 运行速度很慢,典型速度为 4 MIPS,最大速度为 20 MIPS。它们有一些内置硬件功能,如果配置正确,可以正常工作,例如 ADC、串行端口、并行端口、CAN 总线、I2C 总线、SPI 总线、电压比较、EEPROM,当然还有通用 I/O 端口.
文档
开发工具
Microchip 有一个新工具,即VDI,它可以更轻松地配置 MCU 的各种硬件功能,生成汇编或 C 代码。比倒在数据表上要好。
Microchip 多年来一直提供其MPLAB IDE,尽管程序一直在缓慢改进,但与 PC 开发工具(Visual C++、Eclipse/NetBeans for Java/等)相比,用户界面非常差,软件仍然特别漏洞百出。它也不支持 C++,尽管 C 与大多数 C++ 特性(不包括动态内存分配、虚函数和一些其他特性)之间的差异非常小,而且 C++ 鼓励编程模块化。有第 3 方 IDE 供应商,尤其是 IAR,但价格昂贵。(Hi-Tech 最近被 Microchip 收购了。)
Microchip 的 ICD 接口在某些部分提供在线调试,这是一个 2 引脚串行接口,可通过调试适配器 ICD2、ICD3、REAL ICE、PICkit2 /3 等访问。请务必检查您选择的部分是否有ICD 功能!调试功能有些限制,并且有“打滑”,您在一条指令上设置断点,程序稍后停止几条指令。但是,ICD 总比没有好。
支持