Como escolher um microcontrolador ARM Cortex M3?

26

Com base em meus requisitos aproximados de estar na faixa de 36 a 72 MHz, com 16kb + SRAM, 128kb + flash, sendo programável em C, decidi que, para meu aplicativo, desejo usar um MCU ARM Cortex M3.

A questão é: quais critérios as pessoas usam para escolher qual versão do M3 usar? Existem muitos fornecedores possíveis, como TI, ST, NXP, Freescale, etc., etc.

Um diferencial principal do meu ponto de vista seria a facilidade de programação. O ideal é testá-lo em uma placa de fuga / desenvolvimento, seguida pela implementação em meu próprio PCB.

JDS
fonte
11
Esta é uma pergunta útil, qualquer um, por favor, não a feche como principalmente baseada em opiniões .
Dzarda
2
Escolher o fornecedor do chip é apenas parte do problema. Você já pensou em qual cadeia de ferramentas de desenvolvimento você vai usar?
kkrambo
5
Eu diria que a importância de escolher o chip uC em uma situação como essa é severamente superestimada. Todos os chips que atendem aos requisitos básicos servirão. Se você aderir ao C ou C ++ e não precisar de periféricos sofisticados, poderá alternar mais tarde com pouco esforço. Basearia minha escolha na quantidade de suporte que você pode obter dos grupos www, fornecedor, (usuário), listas, fóruns etc. aos quais você tem acesso fácil.
Wouter van Ooijen
5
"Há uma dúzia de fabricantes do mesmo núcleo. Que tipo de coisas as pessoas olham para ajudá-las a escolher uma?" Parece uma boa pergunta para mim.
Scott Seidman
5
É a pergunta com a pontuação mais alta da lista dos 250 mais novos, com três rótulos favoritos. Com essas estatísticas, se for OT, podemos pensar em perguntar por quê. Eu acho que é bastante claro que o pôster considera "facilidade de programação" um dos critérios que ele está usando no momento e está pedindo mais. Das quatro respostas, apenas uma faz uma recomendação clara para um controlador, e as demais discutem quais critérios eles usam para fazer uma seleção. Fiz uma pequena edição que deve tornar a pergunta mais específica, mas me pareceu bem clara antes da edição.
22814 Scott Seidman

Respostas:

19

Acho que o @markt está certamente no lugar certo: Toolchain, periféricos, pacotes, devkits.

Vou adicionar alguns, e talvez decolar alguns. A cadeia de ferramentas é certamente importante, mas GRÁTIS pode ou não ser. Às vezes, trabalhar sem suporte real pode ser mais caro do que você pensa e usar um pacote comercial razoável pode valer a pena para uma determinada situação. Às vezes, também é importante passar por uma auditoria completa de licença, e o uso de uma ferramenta gratuita com uma licença restritiva pode morder você mais tarde.

Uma boa biblioteca CMSIS para suportar o microcontrolador é uma obrigação para mim. O CMSIS - Padrão de interface de software para microcontroladores Cortex - arm.com/products/processors/cortex-m/… - é uma camada de abstração de hardware para microcontroladores da série Cortex-M. Em teoria, se uma biblioteca é compatível com CMSIS, é independente do fornecedor e é mais fácil trocar famílias diferentes, e você não precisa reaprender um ambiente desde o início para poder usar a biblioteca. Um dos aspectos atraentes do ambiente ARM Cortex é a capacidade de alterar plataformas sem muito suor. Se você escolher uma plataforma que não faz parte da estrutura do CMSIS, poderá não ser capaz de se mover da maneira mais conveniente.

Para mim, placas de desenvolvimento baratas e convenientes são uma obrigação, mas isso pode ou não ser tão importante quanto algumas outras coisas (acho que a série STM32 tem incríveis placas de desenvolvimento). Se a família tiver placas de desenvolvimento muito convenientes e baratas, é mais provável que você encontre ajuda de uma base maior de usuários, se precisar. Além disso, esses chips tendem a estar em pacotes SMT. Quando você inevitavelmente explode um chip, ou uma porta em um chip, ou um pouco em uma porta em um chip, a substituição do chip é uma PITA que envolve retrabalho SMD. Se você pode comprar duas ou três placas de US $ 10 a US $ 15 cada e substituí-las à medida que for quebrando, você nem pensará em fazer esse retrabalho SMD!

Pense em "extras". Você pode precisar de algo acima e além do que é considerado "periférico". Por exemplo, talvez você tenha grandes necessidades de Bluetooth e opte por usar o Nordic Semiconductor para esse tipo de suporte. Você pode considerar algumas outras coisas, como a facilidade de carregamento de inicialização, etc.

Pense na documentação. Fiquei um pouco menos impressionado com o quão difícil pode ser percorrer algumas das documentações do STM.

Scott Seidman
fonte
+1 Concordo totalmente. No ano passado, comecei com o ARM Cortex-M3 / M4 usando o STM32. Eu quase concluí um design do STM32F207 quando mudamos para o STM32F407 com base no preço / disponibilidade. Foi uma mudança para o hardware, e as alterações de software foram triviais. A documentação e a complexidade dificultaram a aprendizagem, mas o design é sólido e vale a pena. Eu uso o compilador GCC (gratuito) para escrever código de teste e a versão de avaliação gratuita limitada do Keil para tamanho de código para escrever / testar drivers de amostra. Nosso programador possui uma licença para o compilador Keil completo. Ambos parecem sólidos.
Tut
11
@NickHalden, "ARM" licencia o núcleo do ARM para fabricantes de chips que os empacotam e adicionam periféricos. O CMSIS - Padrão de interface de software para microcontroladores Cortex - arm.com/products/processors/cortex-m/… - é uma camada de abstração de hardware para microcontroladores da série Cortex-M. Em teoria, se uma biblioteca é compatível com CMSIS, é independente do fornecedor e é mais fácil trocar famílias diferentes, e você não precisa reaprender um ambiente desde o início para poder usar a biblioteca.
Scott Seidman
11
@YoungMoney Escolha o mais barato que lhe dará pelo menos o dobro dos recursos que você acha que precisará.
Markt
11
Desenvolva em grande escala, apenas para evitar que as coisas fiquem presas. Depois de ter uma boa noção de quais recursos você precisa, reduza.
Scott Seidman
11
As cadeias de ferramentas gratuitas são importantes em um contexto profissional, não por causa do custo, mas por causa da segurança do acesso - use uma cadeia de ferramentas bloqueada e sua capacidade de manter o projeto é prejudicada por licenças que podem expirar ou não estar disponíveis para o seu laptop de viagem ou colega de trabalho, dongles que podem se perder, servidores de licença que podem ser desconectados após alguns anos etc. A maioria dos projetos incorporados tem uma vida útil muito além das versões de hardware e sistema operacional de desktop usadas para desenvolvê-los e capaz de ressuscitar o original ferramentas no futuro é importante!
22815 Chris Stratton
14
  1. Procure por ferramentas gratuitas , RTOS e suporte JTAG / SWD de baixo custo.
  2. Considere com quais pacotes você pode / está disposto a trabalhar - se o DIP é obrigatório, descarte os fornecedores de silício que não oferecem pacotes DIP.
  3. Veja quais periféricos estão em oferta e o que você provavelmente deseja / precisa.
  4. Procure por dinheiro - use um ou mais sites de grandes fabricantes de eletrônicos para comparar maçãs com maçãs.

Dado o seu desejo por placas de desenvolvimento, considere o que está disponível lá.

Se você vier de outra plataforma (PIC, Atmel, etc), aceite que haverá uma curva de aprendizado justa em muitas áreas na mudança para a ARM, mas vale a pena.

Markt
fonte
Sim - as cadeias de ferramentas gratuitas são importantes para a segurança do acesso futuro / alternativo do computador / engenheiro alternativo à cadeia de ferramentas mais do que pelo custo. Para as peças do Cortex, as cadeias de ferramentas são bastante universais, portanto, é mais importante saber que você pode programá-las com um dispositivo de interface SWD fácil de trabalhar que estará disponível ou poderá ser recriado e pode ser direcionado a partir do seu SO atual (e futuro) do escolha.
22814 Chris Stratton
5

Se você não tem uma preferência forte (por exemplo, preço, tamanho, poder e mais o que os outros listados), consideraria quem o apoia. Se o fabricante não responder às suas perguntas, isso pode ser um problema. Ou eles têm um distribuidor local com um FAE (Engenheiro de Aplicação de Campo), você pode perguntar? Isso é particularmente importante para pequenas empresas e hobbists.

Algumas peças podem não estar disponíveis em pequenas quantidades. Por exemplo, aqueles que possuem DRAM no mesmo pacote destinam-se a grandes compradores (> 10 k unidades).

Brian Carlton
fonte
2

Provavelmente STM32L151VBT6 se adapte às suas necessidades. Até nós o usamos em nossa empresa, pois possui um custo moderado e bom em termos de consumo de energia. você também obterá a maioria dos recursos de design em http://www.st.com .

Os principais recursos do STM32L151VB MCU são:

Plataforma de ultra-baixa potência 1,65 V a 3,6 V

Faixa de temperatura de -40 ° C a 85 ° C / 105 ° C

0,3 μA Modo de espera (3 pinos de ativação)

0,9 μA Modo de espera + RTC

Modo de parada de 0,57 μA (16 linhas de ativação)

Modo de parada de 1,2 μA + RTC

Modo de operação de baixa potência 9 μA

Modo de execução 214 μA / MHz

10 nA de vazamento de E / S ultra baixo

<8 μs de tempo de ativação

Núcleo: CPU ARM®Cortex ™ -M3 de 32 bits

De 32 kHz até 32 MHz no máximo

33,3 pico de DMIPS (Dhrystone 2.1)

Unidade de proteção de memória

Redefinição e gerenciamento de suprimentos

BOR ultra-seguro e de baixo consumo (redefinição de brownout) com 5 limites selecionáveis

POR / PDR de potência extremamente baixa

Detector de tensão programável (PVD)

Fontes de relógio

Oscilador de cristal de 1 a 24 MHz

Oscilador de 32 kHz para RTC com calibração

RC interno aparado de fábrica em alta velocidade e 16 MHz (+/- 1%)

RC de baixa potência 37 kHz interno

Velocidade interna multispeed baixa 65 kHz a 4,2 MHz

PLL para clock da CPU e USB (48 MHz)

Carregador de inicialização pré-programado

USART suportado

Apoio ao desenvolvimento

Depuração de conexão serial suportada

JTAG e rastreamento suportados

Até 83 E / S rápidas (73 E / S 5V tolerantes), todas mapeadas em 16 vetores de interrupção externos

Recordações:

Flash de até 128 KB com ECC

Até 16 KB de RAM

Até 4 KB de EEPROM verdadeira com ECC

Registro de backup de 80 bytes

Driver de LCD para segmentos de até 8x40

Suporte ao ajuste de contraste

Suporte a modo intermitente

Conversor de passo a bordo

Periféricos analógicos ricos (até 1,8 V)

12 bits ADC 1 Msps até 24 canais

Canais DAC 2 de 12 bits com buffers de saída

2x Comparadores de potência ultra baixa (modo janela e capacidade de ativação)

Canais 7x do controlador DMA

Interface de comunicação de periféricos 8x

1x USB 2.0 (PLL interno de 48 MHz)

3x USART (ISO 7816, IrDA)

2x SPI 16 Mbits / s

2x I2C (SMBus / PMBus)

10x temporizadores: 6x 16 bits com até 4 canais IC / OC / PWM, 2x timer básico de 16 bits, 2x timer de vigia (independente e janela)

Até 20 canais de detecção capacitiva que suportam sensores de toque, sensores de toque lineares e rotativos, unidade de cálculo CRC, ID exclusivo de 96 bits

Myanju
fonte