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.
microcontroller
arm
JDS
fonte
fonte
Respostas:
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.
fonte
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.
fonte
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).
fonte
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
fonte