Quais são os bons microcontroladores disponíveis hoje? [fechadas]

40

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)

Edward
fonte
Estou começando com algumas respostas, por favor, adicione-as gratuitamente! ou edite as famílias existentes para adicionar sua sabedoria. Agradecimentos especiais a Jason S por toda a sabedoria do TI MCU / DSP. chiphacker.com/users/330/jason-s
Edward
@Edward, Este site está em modo de inicialização para que todos possam editar as mensagens CW
Earlz
Eu gostaria de ver / ouvir quais estão disponíveis a partir de onde e, especialmente, se houver alguma disponível como amostras.
XTL
11
Toda essa questão é inútil e não construtiva . Como esperado, você está recebendo opiniões bastante tendenciosas a favor e contra várias linhas de processador. Votação para fechar.
Olin Lathrop
11
@ Ricardo Lembro-me de escrever esse comentário. Alguém estava procurando um distintivo de arqueólogo ou algo assim. Independentemente disso, essa pergunta antiga não se encaixa mais no escopo da visão e precisa ser despachada.
Matt Young

Respostas:

35

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!

Kevin Vermeer
fonte
11
o PIC32 usa um núcleo MIPS M4K - semelhante ao ARM, pois o núcleo é licenciado para outros fabricantes - como o microchip para embalar e adicionar periféricos.
Smashtastic
Eu voto no braço também. compiladores e depuradores completamente padrão, uma interface JTAG quase universal, sem dependência de coisas binárias proprietárias como PICASM e C18. :-)
akohlsmith
11
Outro fã do ARM aqui. Prototipei um projeto e, em seguida, projetei e montei uma PCB para a TI Stellaris LM3S6965. Documentos decentes e bibliotecas de software, eu tinha um histórico de software antes desse projeto e os documentos fornecidos pela TI eram suficientes para aprender a programar o dispositivo e usar seus esquemas de amostra como modelo. Eu me ensinei como fazer o layout da placa e construí algo que trabalho. Toneladas de recursos e poder para o dinheiro. Hoje, eu olhava para as várias ofertas do Cortex M4, a TI acabou de lançar seus micros M4, mas não hesitei em olhar para as ofertas de outros fornecedores.
Suboptimus 14/10/11
27

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.

Kevin Vermeer
fonte
3
Se você usa Linux, provavelmente pode ter uma cadeia de ferramentas totalmente funcional em menos de meio minuto com "sudo apt-get install gcc-avr avr-libc avrdude". O Winavr é essencialmente totalmente compatível. Eu tenho mantido uma base de código compartilhada entre os dois sem sequer uma única alteração em um Makefile. Se você possui uma porta serial ou paralela de hardware, o hardware completo do ISP consiste em alguns conectores prontos para uso e alguns passivos (resistores). Existem várias opções de USB disponíveis e o Bus Pirate, de US $ 30 (enviado em todo o mundo), faz diretamente o ISP do AVR e muito mais.
XTL
2
O AVR também é um dos poucos chips que sua loja de eletrônicos nas proximidades também pode ter na prateleira.
XTL
11
Você pode programar para WINAVR (ie avr-libc) no Eclipse IDE usando o plug-in AVR Eclipse. Eclipse torna tudo melhor!
vicatcu
17

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.

Edward
fonte
O GCC está disponível. mspgcc.sourceforge.net (antigo) mspgcc4.sourceforge.net (novo)
XTL
Ultimamente, o problema com a TI parece ser que sua "loja virtual" simplesmente não funciona e os novos kits estão sempre esgotados ou não estão em estoque. Parece haver muita demanda por Chronos e Launchpad, bem como os kits EZ e EZ RF, mas eles são ocasionalmente quase inatingíveis, a menos que você encontre uma loja com alguns itens em estoque. Esperemos que isso seja esclarecido em breve.
XTL
Aparentemente, a TI também oferece amostras de seus chips.
XTL
A Elektor também oferece uma placa que estenderá o ez430 em direção a um devkit mais tradicional. elektor.com/products/kits-modules/modules/…
XTL
Não tivemos problemas para obter Launchpads neste verão. O problema de fornecimento pode ter durado pouco.
precisa
14

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:

  • seu conjunto de instruções e arquitetura de memória
  • a necessidade de trocar de banco
  • falta de suporte para operações comuns de ponteiro
  • baixo desempenho em C / C ++ devido à arquitetura
  • requer tamanho de programa maior para implementar algoritmos

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:

  • suporte para indireção
  • bancos de RAM específicos sempre acessíveis (sem necessidade de troca de banco)

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

  • As folhas de dados têm todas as informações necessárias (pinagens, registros de configuração, etc.) categorizadas e bem documentadas. Um manual também explica detalhadamente os recursos.

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

  • As notas de aplicação descrevem código e circuito para várias aplicações comuns
  • Comunidade ativa de usuários nos Fóruns do Microchip
  • Site gratuito de suporte técnico, 24 horas por dia, 7 dias por semana, para o qual você envia seus problemas (tickets) e a equipe técnica responde sem custo e ainda permite que você ligue se precisar de mais ajuda
  • Apresentações (seminários na web) que explicam os vários módulos e aplicativos
Edward
fonte
SDCC também suporta PIC, eu acho.
XTL
Sim, o SDCC funciona muito bem para o PIC18 e para cima. Observe que a sintaxe é um pouco diferente dos compiladores C do Microchip, portanto, você pode precisar fazer algumas alterações se desejar reutilizar o código.
Wim
Eu relutei em usar o sdcc, pois a documentação parece descrever a geração do código de imagem como experimental.
John Burton #
Eu segundo os comentários do PIC16. Memória antiga, peculiar, organizada em bancos, e não amiga do público. Microchip usa o fato de ter muito poucas instruções para aprender como um ativo, o que é simplesmente estúpido, IMO. O MPLAB IDE é uma piada, parece que ainda é 1998.
Gauthier 15/12/10
11

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.

Edward
fonte
O Blackfin não possui um núcleo MIPS!
Leon Heller
E quanto aos preços?
bjarkef
11

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

XTL
fonte
7

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!)".

davidcary
fonte
Grande voto para a série pic24. Você não vê tanto on-line quanto as fotos de 8 bits, mas são mais rápidas, mais poderosas e fáceis de usar e não custam mais do que as de 8 bits de especificações semelhantes.
John
6

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/ .

davidcary
fonte
PSoC1 me deixa louco. Os novos PSoC3s, no entanto, são impressionantes.
Rocketmagnet
5

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.

Nick T
fonte
4

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:

  • Mais complexo de configurar - os arquivos do vinculador e todos os registradores (estados de espera da memória etc.) têm muitas opções e você realmente precisa saber o que está fazendo para garantir que está fazendo o que é certo
  • Precisa de duas tensões de fonte de alimentação, 3,3V para E / S e periféricos e 1,8-1,9V para o núcleo DSP.

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.

Edward
fonte
Uma coisa interessante é que cada endereço de memória numerado individualmente contém uma palavra de 16 bits.
JustJeff
Byte de 16 bits?
Nick T
4

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.

Leon Heller
fonte
Eu uso o XMOS; Estou feliz com seus produtos.
3

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!

Rocketmagnet
fonte
1

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.

davidcary
fonte
11
Eu não confiaria em A / D de 20 bits no mesmo dado que um microcontrolador. O ruído do uC provavelmente tornará inútil pelo menos 4 bits.
stevenvh
Você pode acreditar se soubesse que eram apenas 180sps.
Rocketmagnet 23/01
0

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.

Leon Heller
fonte
Por favor, elabore as ferramentas de hardware e os problemas de entrega. Eu uso chips AVR há um tempo e eles eram muito agradáveis ​​e fáceis de entrar no mundo da computação física.
Earlz
Dê uma olhada no fórum do AVR Freaks - as pessoas estão sempre reclamando sobre o Dragon e outras ferramentas e a indisponibilidade de muitos chips. Eles também reclamam da falta de apoio da Atmel.
Leon Heller
11
Não tenho certeza se você está apoiando ou votando contra o AVR. Você pode postar algumas de suas próprias experiências pessoais? É fácil encontrar críticas negativas de pôsteres frustrados, mas é mais difícil encontrar boas fichas e um bom fórum de suporte. Eu não acho que haveria uma comunidade capaz de gerar 500.000 postagens sobre 75.000 tópicos se o consenso geral fosse negativo.
Kevin Vermeer
O suporte de código aberto para o Atmel AVR é ​​muito bom (avr-gcc e avrdude).
Starblue 25/05
0

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.

jsolarski
fonte
0

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.

user28186
fonte
-1

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.

Leon Heller
fonte
2
Se você tem alguma sabedoria para compartilhar, sugiro editar as respostas do wiki da comunidade. Todos os seus pontos já foram mencionados na resposta 18F.
Edward