我具有微控制器的汇编和C编程经验,但是对当今公司提供的各种MCU和DSP系列不熟悉。(例如:德州仪器,Atmel,瑞萨电子)
我想知道好的微控制器/ DSP,以及用它们开发的东西。请总结您对各种MCU / DSP系列的理解,每个答案一个系列。
如果您详细介绍什么是该微控制器的主要应用,那也将非常有趣。
(这是一个“社区Wiki”,因此信誉度高于100的任何人都可以完善和改善答案)
我具有微控制器的汇编和C编程经验,但是对当今公司提供的各种MCU和DSP系列不熟悉。(例如:德州仪器,Atmel,瑞萨电子)
我想知道好的微控制器/ DSP,以及用它们开发的东西。请总结您对各种MCU / DSP系列的理解,每个答案一个系列。
如果您详细介绍什么是该微控制器的主要应用,那也将非常有趣。
(这是一个“社区Wiki”,因此信誉度高于100的任何人都可以完善和改善答案)
Answers:
尽管PIC32具有一些不错的功能,但ARM是32位控制器的行业标准。它们非常易于使用。我喜欢NXP LPC2000和LPC1000 ARM芯片,但是新的Energy Micro ARM Cortex-M3芯片非常有趣,因为它的功耗非常低-与MSP430 [Youtube] 一样好。支持非常多,NXP芯片拥有我所运行的LPC2000组,人们似乎很喜欢-我们有8000多个成员!
Atmel AVR,也许是在Arduino中:我不同意Leon,并说Atmel的AVR系列是一个伟大的家族。从ATtiny到ATmega,再到Dragon(我从未使用过),它的种类非常广泛。我想说AVR32和Xmega是不同的系列。
AVRfreaks是网络上最好的电子论坛之一(很快就会被Chiphacker所超越:),此外还有一个Arduino社区,专门针对业余爱好者。Arduino非常适合学习微控制器硬件,尽管它不会帮助您进行编程(OP声明他们知道ASM和C)。
与其他工具链相比,WinAVR套件非常容易。只需下载,按“下一步”几次,输入一些代码,然后按F5。没有比这更容易的了。当然,AVR Studio编辑器没有应有的所有功能,但是许多供应商的IDE并没有更好,甚至更糟(* cough * MPLAB * cough *)。
我不确定交付时间,但我想说6针SOT23 ATtiny是一种小众芯片,并且SO8或DIP版本非常可用。值得一提的是,他们在DIP(用于原型制作)和紧凑型SMT封装中也都做得很好。
TI MSP430系列
硬件
各种硬件外设并不像Microchip PIC那样灵活,但是软件调试工具链支持比Microchip的组件好得多。TI最近发布了适用于使用Eclipse的MSP430微控制器和TMS320F28xx DSP的新版本的Code Composer。调试支持非常好。
这些也非常容易设置控制寄存器,比28xx DSP容易得多。
MSP430非常适合定时密集型应用,因为它通常会提供更多的捕获/比较寄存器供使用。这可以大大简化需要处理许多时序密集型外围设备的系统。
发展历程
您可以以150美元的价格购买开发系统(USB棒上的MSP430售价便宜20美元,但这有点限制),您可以获得真正的硬件+调试器原型系统。您还可以获得带有2个芯片的新TI Launchpad,价格为$ 4.30。
Microchip的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 ++,用于Java / Java的Eclipse / NetBeans等)相比,用户界面非常差,并且软件仍然特别容易出错。尽管C和大多数C ++功能(不包括动态内存分配,虚拟功能和其他一些功能)之间的差异非常小,并且C ++鼓励编程模块化,但它也不支持C ++。有第三方IDE供应商,尤其是IAR,但价格昂贵。(高科技最近被Microchip收购了。)
Microchip的ICD接口提供了在线调试功能,ICD接口是2引脚串行接口,可通过调试适配器ICD2,ICD3,REAL ICE,PICkit2 / 3等进行访问。请确保检查所选择的部件是否具有ICD功能!调试功能在某种程度上受到限制,并具有“滑动”功能,您可以在其中一条指令上设置断点,而程序稍后会停止一些指令。但是,ICD总比没有好。
支持
Blackfin处理器由Analog Devices Blackfin处理器家族是一种混合DSP /微控制器具有强大的RISC核心以及支持视频/信号的处理指令。一些指令支持SIMD。
硬件
它具有RISC核心。速度范围从200MHz单核到600MHz双核。它可能具有以下外围设备:10/100以太网MAC,UART,SPI,CAN控制器,具有PWM支持的定时器,看门狗定时器,实时时钟以及无胶同步和异步存储控制器。它具有动态电源管理功能-自动关闭未使用的处理器部分。
发展历程
两个主要的开发工具是AD的VisualDSP ++和GNU工具链。还有一个包含大量代码和应用说明的SDK。SDK代码可作为框架或良好的代码示例。有多种操作系统可以运行,包括uCLinux。有许多评估板可用。这些手册是必不可少的。
目前定价从2 $ 1000个的单位数量。
该视差螺旋桨是oddbird 8芯(八“齿轮”加集线器)微控制器,可以做很有趣/令人印象深刻的事情,包括SD / VGA视频生成。
它具有自己的开发环境,包括称为SPIN的语言。组装(PASM)是自然可用的。
有大量的社区支持和使用该芯片的可见项目。
型号不多,但该芯片似乎是由一些非常有才华和称职的人精心设计和长期开发的结果。它的价格可能在8美元左右。
(系统内)编程硬件显然由TTL级串行端口和复位线组成。有一个名为Prop Plug的加密狗。
dsPIC33F和PIC24:Microchip有一个称为dsPIC33F的16位40 MIPS系列微控制器,将其PIC24F指令集和外设与DSP功能相结合,例如两个带舍入和饱和选项的40位累加器。单周期乘法和累加;对于最多40位数据,最多可进行±16位移位。价格低(批量低至2美元)。我喜欢Microchip单片机的一件事是,它们的许多器件都采用DIP封装,非常适合用于实验板。我在需要解码DTMF信号的项目中使用了其中之一。它比专用的DTMF解码器硬件解决方案更具成本效益。惊人的uWatch中使用了PIC24,“世界上功能最强大(也是唯一!)的可编程RPN /代数科学计算器手表”。
赛普拉斯的PSoC1(CY8C29466)具有一个简单的8位CPU内核,该内核被类似FPGA的数字和模拟模块包围。
它具有模拟输入和模拟输出。许多需要使用任何其他微控制器(如运算放大器,PGA等)的外部零件的项目都可以使用单个PSoC芯片完成。许多计算机鼠标都使用PSoC1。例如,它可以解码一个输入引脚中的DTMF音调,并在两个输出引脚上直接生成独立的模拟DTMF信号-真正的模拟而不是PWM。
可以将数字和模拟块设置为完全独立于内核执行操作,因此可以保证固定的响应时间,即使CPU在这段时间内忙于处理某些中断。
相当低的功率。包含DIP和SMT软件包。
8位24 MHz内核大致等效于PIC16F内核,古怪的组切换等。可以使用专有的C编译器,但是GCC不太可能移植到任何一个。
“ Gainer.cc”项目使用USB电缆上的“处理”程序对基于PSoC1的系统进行编程,这与后来的“ Arduino”项目非常相似。
的 http://www.psocdeveloper.com/论坛是友好的。有一些实用程序可用于在Linux上进行开发:http : //m8cutils.sourceforge.net/。
德州仪器TMS320F28xx系列DSP。
目标市场
电机控制和数控功率转换器:它们具有非常灵活的PWM外设和快速ADC。
硬件
这些DSP具有两个主要缺点:
开发工具
使用Code Composer v4(基于Eclipse!)通过JTAG端口进行实时调试。
MatLAB simulink支持自动生成代码(无需编程经验)
TI的DSP以前的原型制作确实非常昂贵,因为您需要一个1500美元的实时调试Pod(JTAG适配器),但是价格却下降了(一个便宜的适配器价格为150-200美元),并且他们出售带有内置JTAG适配器。
XMOS制造了一系列非常强大的32位并行处理芯片(来自具有32个硬件线程的四个内核的1600 MIPS)。它们足够快,可以在软件中完成高速USB和以太网。他们的工具非常好,芯片一流,价格合理(起价为7.50美元),那里的人们非常有帮助。他们有两个非常好的支持论坛。一个是由公司经营,另一个是独立的。
我必须为赛普拉斯PSoC3投票。我已经使用PIC大约十年了(PIC16,PIC18,dsPIC和PIC32)。它们的令人讨厌的外围配置确实使我发疯,并不断地在数据手册中进行搜索,以发现需要清除的一位才能使某些引脚工作。
另一方面,到目前为止,我对PSoC3的使用感到很高兴。最重要的是,配置数字和模拟外设完全是一件乐事。串行端口,时钟,中断,驱动器,比较器ADC和DAC都可以在原理图上进行布线,并且它们工作正常。
例如,您可以连接PWM以触发ADC在一个脉冲的中间采样,从而使电机电流测量更加精确。尝试在PIC上执行此操作。
在同一芯片上要5个PWM,5个正交解码器,一个ADC,SPI端口和一个CRC发生器吗?你说对了。您要配置ADC以在脉冲中心顺序采样每个电动机中的电流吗?你说对了。另外,您可以将所有这些输入和输出连接到几乎所需的任何引脚。
哦,是的,而且,如果库中没有可用的外围设备,则可以用verilog编写自己的外围设备!
赛普拉斯PSoC5具有一个32位ARM Cortex M3,周围有类似FPGA的数字和模拟模块。
20位分辨率的模拟ADC和DAC。
可以将数字和模拟块设置为完全独立于内核执行操作,因此可以保证固定的响应时间,即使CPU在这段时间内忙于处理某些中断。
相当低的功率。
32位80 MHz ARM Cortex-M3内核大致相当于...
该http://www.psocdeveloper.com/论坛是友好的。
Atmel自己对AVR的支持不是很好,它们的硬件工具也有些不稳定,尽管芯片很好,但AVR Freaks论坛非常好。他们的XMega和6针Tiny芯片等较新的芯片在交付方面存在严重问题。