Tenho experiência com montagem e programação C para microcontroladores, mas não estou familiarizado com as várias famílias MCU e DSP oferecidas pelas empresas de hoje. (por exemplo: Texas Instruments, Atmel, Renesas)
Eu gostaria de saber sobre os bons microcontroladores / DSPs e como é desenvolver com eles. Resuma seus entendimentos sobre as várias famílias MCU / DSP, uma família por resposta.
Seria muito interessante também se você detalhar quais são as principais aplicações deste microcontrolador (ese), por favor.
(Este é um "wiki da comunidade", para que qualquer pessoa com> 100 reputação possa refinar e melhorar as respostas)
microcontroller
development
design
dsp
Edward
fonte
fonte
Respostas:
O ARM é o padrão do setor para controladores de 32 bits, embora o PIC32 tenha alguns recursos interessantes. Eles são bastante fáceis de usar. Gosto dos chips NXP LPC2000 e LPC1000 ARM, mas o novo chip Energy Micro ARM Cortex-M3 é muito interessante devido ao seu consumo de energia muito baixo - tão bom quanto o MSP430 [Youtube]. O suporte é muito variável, os chips NXP têm o grupo LPC2000 que eu corro, do qual as pessoas parecem gostar - temos mais de 8.000 membros!
fonte
Atmel AVR , talvez em um Arduino : eu discordaria de Leon e diria que a linha AVR da Atmel é uma ótima família para começar. É bem diverso, variando do ATtiny, passando pelo ATmega, até o Dragon (com o qual não trabalhei). Eu diria que o AVR32 e o Xmega são famílias diferentes.
O AVRfreaks é um dos melhores fóruns de eletrônica na web (que em breve será superado pelo Chiphacker :), a comunidade do Arduino também existe, voltada para entusiastas. O Arduino é ótimo para aprender o hardware do microcontrolador, embora não o ajude na programação (o OP afirmou que sabia ASM e C).
O conjunto WinAVR é fácil como torta em comparação com outras cadeias de ferramentas. Basta baixar, pressionar Avançar algumas vezes, digite algum código e pressione F5. Não fica mais fácil do que isso. Certamente, o editor do AVR Studio não possui todos os recursos que deveria ter, mas muitos IDEs de fornecedores não são melhores nem piores (* tosse * MPLAB * tosse *).
Não tenho certeza sobre a entrega, mas eu diria que o SOT23 ATtiny de 6 pinos é um chip de nicho e a versão SO8 ou DIP está muito disponível. Em uma nota relacionada, eles também fazem um excelente trabalho de fornecê-los tanto em pacotes SMD DIP (para prototipagem) quanto compactos.
fonte
TI MSP430 series
Hardware
A variedade de periféricos de hardware não é tão flexível quanto os PICs do Microchip, mas o suporte à cadeia de ferramentas de depuração de software é muito muito melhor do que as peças do Microchip. A TI lançou recentemente sua nova versão do Code Composer para os microcontroladores MSP430 e os DSPs TMS320F28xx, que usam o Eclipse. O suporte à depuração é excelente.
Eles também são muito fáceis de configurar os registros de controle, muito mais fáceis do que os DSPs 28xx.
O MSP430 pode ser excelente para aplicações com tempo intenso, pois normalmente terá mais Registros de Captura / Comparação disponíveis para uso. Isso pode simplificar bastante os sistemas nos quais você precisa lidar com muitos periféricos que exigem muito tempo.
Desenvolvimento
Você pode comprar um sistema de desenvolvimento por US $ 150 (há uma variante mais barata de US $ 20 MSP430 em um pendrive, mas é meio limitante) e obtém um sistema real de prototipagem de hardware + depurador. Você também pode obter a nova barra de lançamento da TI, que vem com 2 chips e custa US $ 4,30.
fonte
Microchip PIC 16F / 18F
Mercado alvo
Microprocessadores baratos de 8 bits. O 16F é uma das linhas de processadores anteriores da Microchip e não é particularmente passível de programação em C / C ++ devido a:
A série 18F é mais recente e deve ser considerada se você puder pagar pelo seu projeto. É semelhante no mercado-alvo, conjunto periférico, pacotes de IC, ferramentas de desenvolvimento e preço à série 16F. O núcleo 18F foi projetado para ser mais acessível a C e C ++, devido a:
Programas
Muito fácil de programar, você pode escrever usando seu conjunto de 30 instruções de montagem ou usar um compilador C . Estes são MCUs de 8 bits. Portanto, se você quiser trabalhar com valores> 255, precisará localizar / escrever o código de adição / subtração / multiplicação / divisão de 2 bytes. Sua memória RAM possui 4 "bancos", portanto, se você escrever em assembly, precisará alternar entre acessar as variáveis armazenadas em bancos que não sejam os atuais.
Hardware
Esses MCUs funcionam muito lentamente, com uma velocidade típica de 4 MIPS e uma velocidade máxima de 20 MIPS. Eles têm alguns recursos de hardware embutidos que funcionam bem se configurados corretamente, como ADC, porta serial, porta paralela, barramento CAN, barramento I2C, barramento SPI, comparação de voltagem, EEPROM e, é claro, portas de E / S para todos os fins .
Documentação
Ferramentas de desenvolvimento
O Microchip possui uma nova ferramenta, a VDI, que facilita a configuração dos vários recursos de hardware do MCU, o que gera montagem ou código C. Melhor do que derramar sobre as folhas de dados.
A Microchip oferece seu MPLAB IDE há muitos anos e, embora o programa esteja melhorando lentamente, comparado às ferramentas de desenvolvimento de PC (Visual C ++, Eclipse / NetBeans para Java / etc), a interface do usuário é muito ruim e o software ainda é particularmente problemático. Ele também não suporta C ++, apesar do fato de que a diferença entre C e a maioria dos recursos de C ++ (excluindo alocação de memória dinâmica, funções virtuais e alguns outros recursos) é muito pequena e o C ++ incentiva a modularidade da programação. Existem fornecedores de IDE de terceiros, principalmente IAR, mas eles são caros. (A Hi-Tech foi comprada pela Microchip recentemente.)
A depuração no circuito é oferecida em algumas partes pela interface ICD da Microchip, uma interface serial de 2 pinos que pode ser acessada através dos adaptadores de depuração ICD2, ICD3 , REAL ICE , PICkit2 / 3, etc. Certifique-se de verificar se a peça escolhida possui os recursos do CDI! Os recursos de depuração são um tanto limitantes e têm "skid", onde você define um ponto de interrupção em uma instrução e o programa para algumas instruções posteriormente. No entanto, o CDI é melhor que nada.
Apoio, suporte
fonte
Blackfin da Analog Devices A família Blackfin é um microcontrolador DSP / híbrido com um forte núcleo RISC, além de suportar instruções de processamento de vídeo / sinal. Algumas instruções suportam o SIMD.
Hardware
Tem um núcleo RISC. As velocidades variam de 200 MHz de núcleo único a 600 MHz de núcleo duplo. Pode ter periféricos: 10/100 Ethernet MAC, UARTS, SPI, controlador CAN, temporizadores com suporte a PWM, Watchdog Timer, Real-Time Clock e um controlador de memória síncrona e assíncrona sem cola. Possui gerenciamento dinâmico de energia - desligando automaticamente partes do processador que não são usadas.
Desenvolvimento
As duas principais ferramentas de desenvolvimento são o VisualDSP ++ do AD e a cadeia de ferramentas GNU. Há também um SDK com bastante código e notas de aplicativo. O código SDK serve como uma estrutura ou como bons exemplos de código. Existem vários sistemas operacionais, incluindo o uCLinux, que serão executados nele. Há várias placas de avaliação disponíveis. Os manuais são indispensáveis.
Atualmente, o preço é de 2 $ em quantidades de 1000 unidades.
fonte
O Parallax Propeller é um microcontrolador oddbird de 8 núcleos (oito "engrenagens" mais um hub) que pode fazer coisas muito interessantes / impressionantes, incluindo a geração de vídeo SD / VGA.
Possui seu próprio ambiente de desenvolvimento, incluindo uma linguagem chamada SPIN. Assembly (PASM) está naturalmente disponível.
Há um apoio considerável da comunidade e projetos visíveis usando o chip.
Não há uma ampla gama de modelos, mas o chip parece ser o resultado de um design muito cuidadoso e de um longo desenvolvimento feito por algumas pessoas extremamente talentosas e competentes. Pode estar disponível por cerca de US $ 8.
O hardware de programação (no sistema) aparentemente consiste na porta serial no nível TTL e na linha de redefinição. Existe um dongle chamado Prop Plug disponível.
http://parallax.com
http://en.wikipedia.org/wiki/Parallax_Propeller
fonte
E o STM32 , outra família de mcu baseada no Cortex-M3?
É barato começar, pois encontrei algumas coisas boas da Olimex.
Então eu uso o gcc como um compilador e o OpenOCD para controlar o jtag.
fonte
dsPIC33F e PIC24 : Microchip tem uma família de 16-bit, 40 MIPS microcontroladores chamado dsPIC33F que combinam o seu conjunto de instruções PIC24F e periféricos com DSP apresenta como dois acumuladores de 40 bits com arredondamento e saturação de opções; ciclo único multiplicar e acumular; e turnos de até ± 16 bits para dados de até 40 bits. Os preços são baixos (tão baixos quanto $ 2 em volume). Uma coisa que eu gosto nos microcontroladores Microchip é que muitos de seus dispositivos estão disponíveis em pacotes DIP, ideais para a montagem de pratos. Eu usei um desses em um projeto em que precisava decodificar sinais DTMF; era mais econômico do que uma solução de hardware de decodificador DTMF dedicada. Um PIC24 é usado no incrível uWatch, "O relógio de calculadora científica RPN / Algébrico programável mais poderoso do mundo (e único!)".
fonte
O Cypress PSoC1 (CY8C29466) possui um núcleo simples de CPU de 8 bits cercado por blocos analógicos e digitais do tipo FPGA.
Possui entradas e saídas analógicas. Muitos projetos que exigem um monte de peças externas com qualquer outro microcontrolador - amplificadores operacionais, PGAs etc. - podem ser realizados com um único chip PSoC. Muitos mouses de computador usam um PSoC1. Por exemplo, ele pode decodificar tons DTMF que vêm em um pino de entrada e gerar diretamente sinais DTMF analógicos independentes em dois pinos de saída - analógico verdadeiro, não PWM.
Os blocos digitais e analógicos podem ser configurados para executar tarefas completamente independentes do núcleo - e, portanto, com tempo de resposta fixo garantido, mesmo que a CPU esteja ocupada lidando com alguma interrupção durante esse tempo.
Potência bastante baixa. Vem nos pacotes DIP e SMT.
O núcleo de 8 bits e 24 MHz é aproximadamente equivalente ao núcleo PIC16F, comutação de banco peculiar e tudo. Compiladores C proprietários estão disponíveis, mas é improvável que o GCC seja portado para qualquer um deles.
O projeto "Gainer.cc" programa sistemas baseados em PSoC1 usando Processing através de um cabo USB, muito semelhante ao projeto "Arduino" posterior.
O http://www.psocdeveloper.com/ fórum é amigável. Existem alguns utilitários disponíveis para desenvolvimento no Linux: http://m8cutils.sourceforge.net/ .
fonte
Os micros Freescale HCS08 são concorrentes diretos dos PIC10-18 e AVRs, geralmente de menor custo, mas ainda com um conjunto periférico bastante rico. A biblioteca de notas de aplicativos e material de referência é bastante boa.
Seu IDE CodeWarrior (compilador gratuito para código de até 32k) inclui algumas bibliotecas úteis de "Inicialização de Dispositivo" para uma abordagem orientada por GUI para inversão de bits, e um "Processor Expert" mais avançado que pode gerar drivers de nível superior para periféricos. Você também não é obrigado a usar, e pode simplesmente fazer tudo em código C direto, se desejar.
fonte
Série TI TMS320F28xx de DSPs.
Mercado alvo
Controle de motor e conversores de potência controlados digitalmente: possuem periféricos PWM muito flexíveis e ADCs rápidos.
Hardware
Esses DSPs têm duas grandes desvantagens:
Ferramentas de desenvolvimento
Depuração em tempo real através da porta JTAG, usando o Code Composer v4 (baseado em Eclipse !!!).
Suportado pelo MatLAB simulink para geração automática de código (não é necessária experiência em programação)
Os DSPs da TI costumavam ser muito caros para prototipar porque você precisava de um pod de depuração em tempo real de US $ 1.500 (adaptador JTAG), mas o preço disso diminuiu (há um barato por US $ 150-200) e eles vendem placas de avaliação com adaptadores JTAG integrados.
fonte
O XMOS cria uma variedade de chips de processamento paralelo de 32 bits muito poderosos (1600 MIPS de quatro núcleos com 32 threads de hardware). Eles são rápidos o suficiente para executar USB e Ethernet de alta velocidade em software. Suas ferramentas são muito boas, os chips são excelentes, têm preços razoáveis (começam em US $ 7,50) e as pessoas são muito úteis. Eles têm dois muito bons fóruns de suporte; um é administrado pela empresa, o outro é independente.
fonte
Vou ter que votar no Cypress PSoC3. Uso PICs há cerca de 10 anos (PIC16, PIC18, dsPIC e PIC32). Eles meio que me enlouquecem com a sua configuração periférica irritante e a busca constante na folha de dados para encontrar aquele bit que precisa ser limpo para que alguns pinos funcionem.
Por outro lado, a experiência que tive até agora com os PSoC3s foi uma delícia. Mais importante ainda, configurar os periféricos digitais e analógicos é uma alegria total. Portas seriais, relógios, interrupções, drivers, ADCs e DACs comparadores podem ser conectados em uma planilha esquemática e funcionam perfeitamente.
Por exemplo, você pode conectar seu PWM para acionar o ADC para amostrar no meio de um pulso, tornando a medição da corrente do motor mais precisa. Tente fazer isso em um PIC.
Deseja 5 PWMs, 5 decodificadores em quadratura, uma porta ADC, SPI e um gerador CRC no mesmo chip? Você entendeu. Você deseja configurar o ADC para amostrar sequencialmente a corrente em cada motor no centro do pulso? Você entendeu. Além disso, você pode conectar todas essas entradas e saídas a praticamente qualquer pino que desejar.
Ah, sim, E, se não houver um periférico disponível na biblioteca, você pode escrever o seu no verilog!
fonte
O Cypress PSoC5 possui um ARM Cortex M3 de 32 bits rodeado por blocos analógicos e digitais do tipo FPGA.
ADC e DAC analógico de resolução de 20 bits.
Os blocos digitais e analógicos podem ser configurados para executar tarefas completamente independentes do núcleo - e, portanto, com tempo de resposta fixo garantido, mesmo que a CPU esteja ocupada lidando com alguma interrupção durante esse tempo.
Potência bastante baixa.
O núcleo ARM Cortex-M3 de 32 bits e 80 MHz é aproximadamente equivalente a ...
O http://www.psocdeveloper.com/ fórum é amigável.
fonte
O suporte da Atmel ao AVR não é muito bom e suas ferramentas de hardware são um pouco esquisitas. Os chips são bons, porém, e o fórum do AVR Freaks é muito bom. Eles têm sérios problemas de entrega com seus chips mais novos, como o XMega e os chips Tiny de 6 pinos.
fonte
O Zilog também possui alguns microcontroladores. Pessoalmente, não tentei programar a linha de chips Z8 Encore , mas eles enviam amostras. Eles têm muitos chips diferentes, variando de 1 KB a 16 KB (talvez mais) com periféricos, incluindo UART, ADC, I2C , SPI, etc.
Na minha opinião, este não é um microcontrolador hobby muito bom.
fonte
Eu usei várias famílias de processadores. O principal problema ao aprender um novo processador é aprender a codificar centenas de registros de configuração de registros periféricos; este será o principal processo demorado quando você alternar de uma família para outra. sendo o código principal do aplicativo escrito em c, não importa a família que estamos usando, eu gostaria que houvesse desenvolvido um padrão para os registros periféricos. Se alguém tiver conhecimento de algum desenvolvimento nessa direção, pls o compartilhe.
fonte
Eu uso PIC, ARM, MSP430, AVR e alguns outros.
O microchip possui excelente suporte e boas ferramentas de hardware e software, a depuração é especialmente fácil e rápida. A arquitetura de 8 bits é um pouco datada. Seus novos chips de 16 bits são excelentes. Eles são líderes de mercado em MCUs de 8 bits.
fonte