O documento discute o processo de criação de hardware com microcontroladores STM32, abordando os principais componentes necessários como o processador, fontes de alimentação, relógios, debug e layout do PCB. É apresentado um exemplo de projeto com um controlador STM32F030K6Tx e detalhes sobre sua implementação.
2. 2
Objetivos
● Explorar o processo de criação de hardware
com processadores STM32F0.
● Discutir os elementos de hardware
necessários.
● Discutir os principais problemas de layout.
● Apresentar uma visão crítica no processo de
escolha de componentes.
3. 3
Guias Iniciais de Hardware
● A ST possui guias de hardware para cada família de processadores,
sempre com o nome “Getting started with STM32xx hardware
development”, onde xx é o nome da família
● Leia atentamente o guia, ele vai reunir os principais pontos de projeto:
– Alimentação e desacoplamento
– Relógios externos
– Configuração de boot
– Reset
– Depuração
– Recomendações para o PCB
– Encapsulamentos
5. 5
Passos
● Definição do Processador
● Escolha da fonte de alimentação
● Desacoplamento
● Clock
● Reset
● JTAG/SWD
● Periféricos
6. 6
Controlador
● Defina o seu controlador e use o CubeMX para
o setup dos periféricos
● Vamos usar o STM32F030K6Tx:
– Cortex M0, 48MHz, 32kB de flash, 4kB de RAM,
ADC, GPIO, DMA, I2C, USART, SPI, Timers,
Watchdog, CRC, RTC
– LQFP32 com pitch de 0,80mm, fácil de soldar
– Menos de um dólar, em volume
– Tem no AliExpress !
9. 9
Alimentação do Controlador
● Normalmente, existem 3 caminhos:
– VDD
/VSS
: Alimentação da parte digital
– VDDA
/VSSA
: Alimentação da parte analógica
● VREF+
/VREF-
– VBAT
: Alimentação do RTC e BKRAM
● Depende da disponibilidade de pinos no
encapsulamento ! Na falta, são
conectados internamente:
– VBAT
=> VDD
– VREF+
=> VDDA
– VREF-
=> VSSA
– VSSA
=> GND/VSS
10. 10
Alimentação do Controlador
STM32F030
● Sem pinos para VREF+/-
● Sem pinos para VSSA
● VDDA
pode ou não estar conectado ao VDD
:
– Juntos: use um indutor entre eles
– Separados: um chip para referência de tensão
● Meça o resultado final, avalie a qualidade da alimentação !
11. 11
Capacitores de Desacoplamento
● Devem ser colocados próximos dos pinos de
alimentação para que tenham efeito
● Use capacitores cerâmicos e menores possível (ESR
mais baixo)
● Em casos de consumo elevado dos periféricos, pense
num capacitor de tântalo de 10uF adicional
● Ruídos de alta frequência ainda ? Talvez adicionar um
capacitor cerâmico de 10nF em cada desacoplamento
13. 13
Ainda sobre o VDDA
...
● Em circuitos com VDD
estável, não tem
problema interligá-lo ao VDDA
● O indutor tem o papel de filtro e o valor
depende do circuito e precisa ter:
– Baixa impedância em nível DC
– Alta impedância em frequências
elevadas
● Se precisão é necessária em ampla
faixa de temperatura, use um CI para
referência de tensão.
● Existem vários chips pra isso. Por
exemplo, o MAX610x (~1 dólar, 0,4%
de precisão). Quanto mais preciso,
mais caro.
15. 15
Clocks
● Fontes comuns de clock:
– Oscilador RC interno
– Osciladores Pierce (Cristal de quartzo + capacitores)
– Osciladores CMOS ou MEMS (Micro Electro
Mechanical Systems)
16. 16
Clocks
● Fatores importantes para osciladores à cristal:
– Casamento adequado da capacitância
– Ganho mínimo
– Faixa de temperatura de operação e estabilidade nessa faixa
– Estabilidade (medido em ppm, partes por milhão, 1% = 10000
ppm)
● 8 MHz com 1ppm = 8 MHz ± 8 Hz
● O fabricante é a melhor referência:
– AN2867 - Oscillator design guide for STM8AF/AL/S and STM32
microcontrollers
18. 18
Clocks
● No layout existem cuidados:
– Coloque o circuito de clock próximo do processador, com trilhas
curtas e, se possível, simétricas
– Disponha os capacitores também simetricamente
– Não roteie sinais de alta frequência próximos da linha de clock
– Preveja um bom aterramento para o relógio, de preferência
dedicado e bem próximo (abaixo)
19. 19
Reset do Processador
● Basta adicionar um capacitor externo para evitar resets
espúrios.
● Se usar essa linha em outros pontos do circuito, atente-se
ao que está ligando e como.
● RPU
= 40kΩ
20. 20
Debug
● Preveja a ligação de um SWD (Serial Wire Debug) no
seu circuito como alternativa barata de depuração
através de um STLink de 2 dólares
● O controlador possui já os pull ups internos
necessários nas linhas
● Se quiser, pode implementar a interface de JTAG
completa, com maior capacidade de depuração (e
interfaces bem mais caras)
● Você pode usar uma placa discovery ou nucleo como
SWD
22. 22
Fontes de Alimentação
● Existem dois grandes tipos de reguladores:
– Reguladores lineares (sempre abaixam a tensão de
entrada para o valor desejado)
– Reguladores chaveados:
● Step down (buck): abaixam a tensão
● Step up (boost): elevam a tensão
● Step down and up (buck/boost): podem tanto abaixar
quando elevar a tensão de entrada
23. 23
Fontes de Alimentação
● Lineares:
– Baixo nível de ruído (ripple)
– Baixo custo, poucos componentes externos
– Baixa eficiência (~65 a 75%, aproximadamente)
– Maiores problemas com dissipação
● Chaveados:
– Nível de ruído mais alto
– Custo elevado e maior número de componentes externos
– Alta eficiência (tipicamente acima de 90%)
– Baixa dissipação
24. 24
Reguladores Lineares
● Fatores de escolha:
– Baixo drop out
– Capacidade de corrente
– Encapsulamento
– Capacidade de dissipação
– Valores dos capacitores e seus ESRs
● Os capacitores recomendados no manual
podem não ser suficientes. Mais uma vez,
isso depende do seu circuito.
● Não se iluda com capacitores eletrolíticos
baratos com ESR baixo, pense em usar
capacitores de tântalo (baixo ESR,
volume menor, alta capacitância, preço
médio)
N
C
P
1
1
1
7
L
M
3
1
7
27. 27
Boot Modes
● Dependendo da configuração de alguns pinos, o controlador pode executar
código de regiões de memória diferentes. Isso deve ser previsto no projeto.
● O processador desse projeto só possui BOOT0 e não tem suporte a DFU
(Device Firmware Update)
● AN2606 - STM32 microcontroller system memory boot mode
● AN3156 - USB DFU protocol used in the STM32 bootloader