Uso de microcontroladores escaláveis para obter flexibilidade de projeto
Contributed By DigiKey's North American Editors
2024-05-15
À medida que recursos avançados, como inteligência artificial (IA) e interfaces homem-máquina (IHMs) complexas e ricas em gráficos, tornam-se mais comuns nas aplicações, os projetistas de produtos estão procurando unidades de microcontroladores (MCUs) mais potentes. No entanto, os projetistas também são solicitados a criar produtos com custo otimizado que dispensem esses recursos chamativos. Essas pressões concorrentes tornam imperativa a escolha de uma MCU que possa ser prontamente dimensionada para atender aos diferentes requisitos do mercado.
A velocidade crescente da inovação está aumentando essa pressão. Os requisitos das aplicações podem mudar inesperadamente, por isso é essencial ter acesso fácil a MCUs alternativas. A proteção e a reutilização no futuro também devem ser consideradas. É possível obter uma economia significativa de tempo e custo quando os elementos do projeto podem ser reutilizados em outros projetos.
Uma maneira de enfrentar esses desafios é escolher uma família de MCUs com uma ampla gama de opções. O STM32H7 da STMicroelectronics é um bom exemplo. Ele varia de MCUs de 32 bits de nível básico com custo-benefício otimizado a MCUs de núcleo duplo com conjuntos de recursos avançados.
Este artigo destaca os critérios a serem considerados ao selecionar uma família de MCUs, usando os recursos da família STM32H7 como exemplos. Também apresenta as placas de desenvolvimento e as ferramentas disponíveis para as MCUs STM32H7 e explica como iniciar projetos usando essa infraestrutura.
Fatores que tornam uma família de MCUs flexível e escalável
Muitos fatores devem ser considerados na busca por uma família de MCUs flexíveis. Ter opções em uma ampla gama de níveis de desempenho e potência é particularmente importante. A família de MCUs preferida deve incluir opções com uma ampla gama de velocidades de clock e núcleos otimizados para diferentes destinos. Por exemplo, o Arm® Cortex®-M4 para baixa potência e o Arm Cortex-M7 para alto desempenho.
A família deve incluir MCUs com recursos básicos de processamento e opções com recursos estendidos. Muitas aplicações exigem proteção de dados e comunicações seguras. Recursos como criptografia baseada em hardware, inicialização segura e aceleradores criptográficos são essenciais para esses casos de uso. Da mesma forma, um processador de sinal digital (DSP) e instruções de ponto flutuante são essenciais para aplicações com uso intensivo de dados.
A família MCU também deve oferecer uma ampla variedade de tamanhos de memória RAM e flash para acomodar tudo, desde aplicações simples até aquelas que exigem estruturas de software ou armazenamento de dados extensos. As MCUs devem ter interfaces de memória externa para aplicações que excedam os recursos de memória interna a fim de proporcionar a escalabilidade necessária.
Por fim, as famílias de MCUs com mais opções de periféricos podem lidar com uma variedade maior de aplicações. É essencial garantir que a família de MCUs inclua opções com E/S avançadas, como USB, Ethernet, Bluetooth e Wi-Fi, pois essas interfaces podem ser difíceis de acrescentar como modernizações em projetos posteriores. O ideal é que a família selecionada ofereça compatibilidade de pinos em toda a sua linha de produtos para dar suporte a hardwares modernos ou antigos sem grandes reformulações da placa de circuito impresso (PCI).
As ferramentas de desenvolvimento devem oferecer suporte a toda a família MCU do ponto de vista do software. Para acelerar o desenvolvimento, deve haver uma interface de programação de aplicativos (API) de software consistente e um conjunto robusto de bibliotecas, middleware, e um sistema operacional em tempo real (RTOS).
STM32H7: um estudo de caso em versatilidade
A série STM32H7 da STMicroelectronics é um exemplo de uma família de MCUs que atende a esses critérios. Conforme ilustrado na Tabela 1, ele é altamente escalável com uma linha construída em torno do Arm Cortex-M7 que abrange MCUs básicas e avançadas. A série tem quatro linhas, cada uma otimizada para diferentes aplicações.
|
Tabela 1: Principais destaques das quatro linhas da série STM32H7. (Fonte da tabela: Autor, usando material de origem da STMicroelectronics)
A linha de custo-benefício está disponível em velocidades de 280 a 550 megahertz (MHz) e apresenta 128 quilobytes (Kbytes) de memória flash incorporada e 1 megabyte (Mbyte) de RAM. É compatível com várias interfaces de comunicação e extensões de memória externa, oferecendo uma solução econômica para sistemas destinados ao desempenho. O STM32H750VBT6 é um dessas MCUs e vem em um 100-LQFP de 14 x 14 milímetros (mm).
A linha de núcleo único também é executada em velocidades de 280 a 550 MHz. Oferece até 2 Mbytes de memória flash e até 1,4 Mbytes de RAM, atendendo a aplicações que exigem interfaces de usuário avançadas e controle em tempo real. Um exemplo é o STM32H743IIK6, que vem em um invólucro 201-UFBGA de 10 x 10 mm.
A linha de núcleo duplo apresenta um núcleo secundário Arm Cortex-M4 otimizado para eficiência. Uma fonte de alimentação chaveada (SMPS) incorporada aumenta a eficiência energética. Outros periféricos avançados incluem TFT-LCD, MIPI-DSI e um codec JPEG de hardware. Um exemplo típico é o STM32H747AII6, que vem em um invólucro 169-UFBGA de 7 x 7 mm.
A linha com flash de inicialização se destaca por seu alto desempenho, atingindo velocidades de até 600 MHz. Concebida para facilitar as aplicações XiP (execução direta) em tempo real e é equipada com 64 Kbytes de flash de inicialização e 620 Kbytes de RAM. Além disso, alguns modelos dessa linha apresentam uma GPU NeoChrom opcional para aceleração gráfica aprimorada. Essa linha é caracterizada pelo STM32H7R3Z8J6 com seu invólucro 144-UFBGA de 10 x 10 mm.
Os benefícios da compatibilidade com as famílias STM32F4 e STM32F7
O STM32H7 faz parte de uma linha mais ampla de MCUs da STMicroelectronics e é compatível com os pinos de suas parentes STM32F4 e STM32F7 nos invólucros mais comuns. Essas MCUs são todas baseadas nos núcleos Arm Cortex-M e compartilham periféricos e layouts de pinos GPIO semelhantes. Os pontos em comum facilitam a migração dos projetistas entre as MCUs sem alterações significativas em seu hardware. Essa compatibilidade pode reduzir o tempo e o custo de desenvolvimento ao modernizar um produto ou projetar novos produtos com base nos diferentes recursos de cada família.
Além disso, todas as MCUs são compatíveis com o mesmo ecossistema de desenvolvimento de software, incluindo o STM32CubeMX para configuração e geração de código de inicialização, e o STM32CubeIDE para desenvolvimento e depuração. Essa compatibilidade garante que os componentes de software, middleware e código de aplicativo possam ser reutilizados em projetos voltados para qualquer uma das famílias, acelerando ainda mais os ciclos de desenvolvimento.
Primeiros passos com as MCUs da série STM32H7
A introdução aos MCUs STM32H7 envolve algumas etapas importantes e o uso eficaz de placas e ferramentas de desenvolvimento. O guia passo a passo a seguir mostrará como iniciar o desenvolvimento com esses microcontroladores poderosos.
1. Escolha uma placa de desenvolvimento
Ideais para a exploração inicial, os kits Discovery vêm com um depurador/gravador de memória integrado e geralmente apresentam vários LEDs de usuário, teclas, sensores e opções de conectividade na placa. As placas Nucleo, como a NUCLEO-F767ZI (Figura 1), são um bom equilíbrio entre flexibilidade e preço acessível. São compatíveis com o Arduino Uno para facilitar a expansão e têm uma interface STLINK para uso com depuradores/gravadores de memória.
Figura 1: A placa de desenvolvimento NUCLEO-F767ZI é um ponto de partida simples, mas flexível, para experimentos. (Fonte da imagem: STMicroelectronics)
As placas de testes oferecem o conjunto mais abrangente de periféricos e opções de conectividade para a exploração de todos os recursos. Por exemplo, os kits Discovery, como o STM32H745I-DISCO (Figura 2) e o STM32H750B-DK, permitem a avaliação rápida de várias interfaces com recursos como:
- Cerca de 11 cm de LCD com interface RGB e painel tátil
- Conformidade Ethernet com a IEEE-802.3-2002
- Alimentação via Ethernet (PoE)
- USB OTG FS
- Codec de áudio SAI
- Um microfone digital ST-MEMS
- 2 × memórias flash NOR Quad-SPI de 512 Mbits
- SDRAM de 128 Mbits
- 4 gigabytes (Gbytes) de eMMC na placa
- 2 × CAN FDs
- Compatível com shields Arduino
- Depurador/gravador de memória na placa STLINK-V3E com capacidade de renumeração do USB: armazenamento em massa, porta COM virtual e porta de depuração
Figura 2: A placa de teste STM32H745I-DISCO oferece um rico conjunto de recursos de hardware. (Fonte da imagem: STMicroelectronics)
2. Configuração das ferramentas de software
A STMicroelectronics oferece um ambiente de desenvolvimento integrado (IDE) para suas MCUs (Figura 3). Inclui um compilador, um depurador e um configurador para geração de código de inicialização e configuração de periféricos.
Figura 3: É mostrada uma captura de tela do IDE do STM32H7. (Fonte da imagem: STMicroelectronics)
3. Aprenda e experimente
Em seguida, é recomendável ler a documentação. Um excelente ponto de partida é o manual do usuário da placa de desenvolvimento e o respectivo manual de referência do STM32H7. Esses documentos fornecem informações vitais sobre arquiteturas de MCU, configuração de periféricos, multiplexação de pinos e características de hardware.
Experimentar com exemplos de projetos é uma maneira eficaz de aprender a lidar com as ferramentas. A STMicroelectronics oferece uma série de exemplos de projetos para várias MCUs STM32. Esses exemplos podem servir como um ótimo ponto de partida para entender como usar diferentes recursos da MCU.
Por fim, a comunidade de desenvolvedores pode oferecer suporte adicional. O envolvimento com recursos como a ST Community, tutoriais e vídeos pode fornecer soluções para problemas comuns e inspiração para possíveis projetos.
4. Desenvolvimento e depuração
O IDE fornece tudo o que é necessário para começar a escrever, compilar e depurar códigos. O configurador no IDE pode ser aproveitado para inicialização de periféricos e configuração de middleware. A interface integrada de depurador/gravador de memória STLINK da placa de desenvolvimento permite a depuração em tempo real. Os problemas podem ser identificados usando pontos de interrupção, observando variáveis e percorrendo o código.
5. Expansão de um projeto
As placas de expansão podem adicionar funcionalidades, como conectividade ou sensores, às placas Discovery e Nucleo. Uma vez que a funcionalidade desejada tenha sido estabelecida por meio de placas de desenvolvimento, uma placa de circuito impresso personalizada pode ser projetada usando os esquemas da placa de desenvolvimento como referência. Um exemplo de placa personalizada é a plataforma de câmera OpenMV4 CAM H7 (Figura 4) da Seeed Technology Co., Ltd. Ela usa o STM32H743 de núcleo único.
Figura 4: O OpenMV4 CAM H7 é destinado a sistemas de visão. (Fonte da imagem: Seeed Technology Co. Ltd.)
Outro exemplo é o ABX00051 Nicla Vision (Figura 5) da Arduino, que usa o STM32H747 de dois núcleos.
Figura 5: O ABX00051 Nicla Vision ajuda os desenvolvedores a avaliar diferentes sensores de imagem. (Fonte da imagem: Arduino)
Conclusão
A seleção da MCU em um projeto de produto é fundamental, dadas as demandas concorrentes por recursos avançados e otimização de custos. A série STM32H7 da STMicroelectronics é um exemplo potente de como a escolha da família certa de MCUs pode fornecer uma solução escalável e flexível que atenda às necessidades atuais e futuras.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




