Você já ouviu falar no microcontrolador STM32? Essa família de chips vem crescendo cada vez mais devido ao seu excelente custo benefício e capacidades de hardware, e não tem porque ficar de fora!
Hoje apresentaremos o STM32F103C8T6 em sua placa de desenvolvimento “Blue Pill”, muito popular no mundo maker e que facilita bastante a vida de quem quer começar a desenvolver aplicações para STM32 com um chip completo mas que não estoura o orçamento.
Hardware necessário
Para começar a trabalhar com a Blue Pill você precisará de:
- Placa de desenvolvimento STM32F103C8T6 Blue Pill”;
- Programador ST-LINK/V2;
- Um computador Linux, macOS ou Windows.
Visão Geral da Placa de Desenvolvimento STM32F103C8T6
Assim como em uma placa arduino, os pinos do microcontrolador STM32 estão conectados nos headers da placa.
Caso a sua placa esteja sem os pinos soldados, basta utilizar uma barra de pinos com espaçamento padrão de 2,54 mm para conseguir encaixá-la em uma protoboard.
A escrita na silkscreen corresponde à nomenclatura dada pelo fabricante para cada um dos 48 pinos do MCU, conforme pode ser visto na imagem abaixo:
A família de microcontroladores STM32 seguem a seguinte convenção de nomenclatura:
Caracter | Significado | Informações adicionais |
STM | Fabricante (STMicroelectronics) | Padrão para todos os microcontroladores da mesma família |
32 | Núcleo ARM 32 bits | Padrão para todos os microcontroladores da mesma família |
F | Linha do MCU | F: Padrão, L: Baixo consumo, H: Alta performance, W: Sem fio |
1 | Classe do Cortex | 0: M0, 1: M3, 2: M3, 3: M4, 4: M4, 7: M7 |
03 | Tipo do MCU | Os tipos incluem variações de velocidade, processos de fabricação, etc. |
C | Quantidade de pinos | F: 20, G: 28, K: 32, T: 36, S: 44, C: 48, R: 64,66, V: 100, Z: 144, I: 176 |
8 | Tamanho da memória flash | 4: 16, 6: 32, 8: 64, B: 128, C: 256, D: 384, E: 512, F: 768, G: 1024, H: 1536, I: 2048 KB |
T | Encapsulamento | P: TSOOP, H: BGA, U: VFQFPN, T: LQFP, Y: WLCSP |
6 | Faixa de temperatura | 6: -40°C a 85°C, 7: -40°C a 105°C |
Pinagem do STM32F103C8T6
Além do próprio microcontrolador STM32, a blue pill traz os seguintes circuitos adicionais:
Reset
O circuito de reset é usado para reiniciar a placa ao se apertar o push button correspondente
Boot
O conector de boot é usado para conectar um jumper no pino BOOT0 ou BOOT1. Essa configuração permite alterar a memória da qual o micro inicializa, de acordo com a tabela:
LEDs
Dois LEDs estão presentes na placa, um está sempre ligado ao VCC e indica que o circuito está alimentado, já o outro está conectado ao pino PC13 e pode ser controlado por software.
Regulador de tensão
O STM32F103C8T6 opera em 3,3 VDC, e a placa possui um regulador para garantir a correta alimentação do chip nessa tensão.
Conector USB
O conector MicroUSB é usado para a comunicação USB. No entanto, a placa não é programável diretamente por ele, e requer o uso de um programador externo.
Conector ST-Link
Conectando um programador ST-Link V2 aos 4 pinos desse header é possível programar e debugar a placa.
Cristais
Um cristal de alta frequência (8 MHz) e um de baixa frequência (32 kHz) compõem o circuito de osciladores da placa.
Características do chip
Nesta seção apresentaremos brevemente as principais características do microcontrolador.
CPU
A unidade central de processamento é um Arm Cortex M3 com um clock máximo de 72MHz. Sua arquitetura RISC de 32 bits dá ao STM32F103C8T6 uma excelente eficiência e performance, ao mesmo tempo em que mantém os requisitos de memória próximos aos encontrados em chips de 8 ou 16 bits.
Memória
Dois modelos do microcontrolador são comercializados, com 64k ou 128k bytes de memória flash para armazenar programas e dados. 20 kilobytes de memória SRAM de alta velocidade permitem ao STM32 trabalhar com grandes volumes de dados com latências baixíssimas.
Clocks
O microcontrolador é capaz de operar com o oscilador RC interno de 8 MHz, porém para alcançar frequências mais elevadas é necessário utilizar um cristal externo de 4 a 16 MHz. O módulo de RTC utiliza o cristal externo de 32,768 kHz.
GPIO
O STM32F103C8T6 tem 32 pinos configuráveis como General Purpose Input/Outputs. Quando operando como saída digital podem trabalhar em open drain ou push-pull, e quando operando como entrada digital podem ser configurados como alta impedância, pull-up ou pull-down. A velocidade máxima de chaveamento é de 18 MHz.
ADC
Os dois conversores analógico-digital de 12 bits podem trabalhar em modo single-shot ou conversão automática em até 16 canais por ADC. Uma grande vantagem do STM32 quando comparado com outros MCUs de preço similar é a capacidade de ler os valores do conversor com acesso direto à memória (DMA), reduzindo a carga da CPU.
PWM
4 timers de 16 bits podem ser configurados para gerar sinais PWM nos pinos compatíveis. A tabela abaixo relaciona as possíveis frequências de PWM com a resolução correspondente:
USART
O periférico de comunicação serial síncrona/assíncrona é capaz de operar em velocidade de até 4,5 Mbit/s, tem suporte de hardware para RTS, CTS, IrDA SIR ENDEC e também pode ser acessado por DMA.
I2C
O STM32 tem 2 interfaces I²C que podem operar de forma independente em modo multi mestre e escravo. Todas tem suporte a DMA.
SPI
O protocolo SPI pode ser usado em modo mestre e escravo e com comunicação full duplex ou simplex por até 2 interfaces simultaneamente, com suporte a DMA.
CAN
O controlador CAN tem suporte à versão 2.0A e B do protocolo e é capaz de se comunicar em até 1 Mbit/s. Mensagens com ID padrão de 11 bits ou estendido de 29 bits são suportadas.
RTC
O módulo RTC é capaz de fornecer funções de contagem de tempo e calendário mesmo quando a alimentação em Vdd não está presente.
USB
A interface USB Full-speed permite comunicar com dispositivos compatíveis na velocidade de 12 Mbit/s.
Sensor de temperatura
Um sensor de temperatura integrado ao chip pode ser usado para monitorar o componente e está ligado internamente ao canal 16 do ADC 2.
Programando o STM32 e testando o funcionamento
Conecte o seu programador STLINK no conector lateral de programação da blue pill. 4 pinos devem ser conectados: GND, SWDIO, SWCLK e alimentação de 3v3:
Temos duas sugestões de conteúdos em nosso blog para voc~e começar a programar sua Blue Pill:
STM32 com IDE Arduino: Primeiros Passos
Como programar STM32 em C
Conclusão
E aí, gostou de conhecer o microcontrolador STM32 e um pouco dos seus recursos de hardware?
No Cheetah E-Racing utilizamos os microcontroladores dessa família para construir um carro elétrico de fórmula estudantil. Falamos um pouco das suas aplicações no nosso post anterior Sistema de Telemetria de um Fórmula Elétrico .
Fique ligado nos próximos posts sobre programação embarcada em C utilizando a STM32CubeIDE!
Esse post é resultado da parceria da MakerHero com a Cheetah E-Racing. Curtiu o conteúdo? Então deixe seu comentário abaixo! E não esqueça de acompanhar a Cheetah E-Racing nas redes sociais.