SlideShare uma empresa Scribd logo
1 de 32
Projeto de Hardware
com Microcontroladores
STM32
Prof. Dr. Marcelo Barros de Almeida
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
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
4
Anatomia de um Projeto
Microcontrolado com STM32
5
Passos
● Definição do Processador
● Escolha da fonte de alimentação
● Desacoplamento
● Clock
● Reset
● JTAG/SWD
● Periféricos
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 !
7
Controlador
8
Controlador
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
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
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
12
Capacitores de Desacoplamento
Dave Jones: https://www.youtube.com/watch?v=BcJ6UdDx1vg
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.
14
Capacitores de Desacoplamento
Exemplo do livro “Mastering STM32”
15
Clocks
● Fontes comuns de clock:
– Oscilador RC interno
– Osciladores Pierce (Cristal de quartzo + capacitores)
– Osciladores CMOS ou MEMS (Micro Electro
Mechanical Systems)
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
17
Clocks
Exemplo: HC49/US (ABLS-8.000MHZ-B2-T)
CL
= 18pF (default)
ESR = 80Ω
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
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
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
21
Debug
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
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
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
25
Reguladores Lineares
RTFM !
26
Reguladores Lineares
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
28
Esquemático Final
29
PCB Final
(*) É possível aproximar mais.
Como a montagem foi manual,
acabei deixando um pouco mais
espaçado.
(**) Essa placa não usava ADC
30
Outro Exemplo
31
PCB Final
(*) Sem usar vias abaixo do chip
ficou difícil aproximar mais. O
design é dupla face, o que dificulta
também o trabalho.
32
Perguntas ? Comentários ?
Autor: Marcelo Barros de Almeida - marcelobarrosalmeida@gmail.com
Atribuição-Não Comercial-Compartilha Igual 4.0 Internacional (CC BY-NC-SA 4.0)
https://creativecommons.org/licenses/by-nc-sa/4.0/deed.pt_BR

Mais conteúdo relacionado

Mais procurados

U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal BootloaderSatpal Parmar
 
Rs 422-rs-485-e book-graphics-embedded
Rs 422-rs-485-e book-graphics-embeddedRs 422-rs-485-e book-graphics-embedded
Rs 422-rs-485-e book-graphics-embeddedRAHUL CHATURVEDI
 
Fonte de alimentação
Fonte de alimentaçãoFonte de alimentação
Fonte de alimentaçãoCarlos Pereira
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Luis Ferreira
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoInstituto CENTEC
 
A evolução dos processadores
A evolução dos processadoresA evolução dos processadores
A evolução dos processadoresdrogapraisso
 
Placa mãe e seus componentes
Placa mãe e seus componentesPlaca mãe e seus componentes
Placa mãe e seus componentesRonaldo Mello
 
Intel Microprocessor
Intel MicroprocessorIntel Microprocessor
Intel MicroprocessorHome
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de MicroprocessadoresDiogo Silva
 

Mais procurados (20)

U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
 
Rs 422-rs-485-e book-graphics-embedded
Rs 422-rs-485-e book-graphics-embeddedRs 422-rs-485-e book-graphics-embedded
Rs 422-rs-485-e book-graphics-embedded
 
Fonte de alimentação
Fonte de alimentaçãoFonte de alimentação
Fonte de alimentação
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de Programação
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
Cablagem estruturada: CEF
Cablagem estruturada: CEFCablagem estruturada: CEF
Cablagem estruturada: CEF
 
A evolução dos processadores
A evolução dos processadoresA evolução dos processadores
A evolução dos processadores
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 
Placa mãe e seus componentes
Placa mãe e seus componentesPlaca mãe e seus componentes
Placa mãe e seus componentes
 
Processadores
ProcessadoresProcessadores
Processadores
 
Intel Microprocessor
Intel MicroprocessorIntel Microprocessor
Intel Microprocessor
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de Microprocessadores
 
As memórias
As memóriasAs memórias
As memórias
 
Aula 01 chipset
Aula 01   chipsetAula 01   chipset
Aula 01 chipset
 
LÓGICA PROGRAMÁVEL
LÓGICA PROGRAMÁVELLÓGICA PROGRAMÁVEL
LÓGICA PROGRAMÁVEL
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 

Semelhante a Projeto de Hardware com Microcontroladores STM32

Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8elliando dias
 
9537 chassis sk4.0_l-ca_manual_de_servicio
9537 chassis sk4.0_l-ca_manual_de_servicio9537 chassis sk4.0_l-ca_manual_de_servicio
9537 chassis sk4.0_l-ca_manual_de_serviciohumberto salazar
 
Relatório de Projeto - Desenvolvimento de uma memória RAM dinâmica de 1 byte
Relatório de Projeto - Desenvolvimento de uma memória RAM dinâmica de 1 byteRelatório de Projeto - Desenvolvimento de uma memória RAM dinâmica de 1 byte
Relatório de Projeto - Desenvolvimento de uma memória RAM dinâmica de 1 byteGustavo Fernandes
 
Arduino vers o_cores
Arduino vers o_coresArduino vers o_cores
Arduino vers o_coresTiago Luz
 
Manutenção & reparo de notebooks
Manutenção & reparo de notebooksManutenção & reparo de notebooks
Manutenção & reparo de notebooksFernando Mendes
 
Curso notebook
Curso notebookCurso notebook
Curso notebooksilviosl
 
Arduino vers o_cores
Arduino vers o_coresArduino vers o_cores
Arduino vers o_coresLuiz Carlos
 
Arquitetura de Computadores: Memórias - Nível lógico
Arquitetura de Computadores: Memórias - Nível lógicoArquitetura de Computadores: Memórias - Nível lógico
Arquitetura de Computadores: Memórias - Nível lógicoElaine Cecília Gatto
 
Adaptador para-medir-indutancias
Adaptador para-medir-indutanciasAdaptador para-medir-indutancias
Adaptador para-medir-indutanciasWalter Mendes
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfCliverRaimundo2
 
Robótica com Arduino para projetos em ronótica
Robótica com Arduino para projetos em ronóticaRobótica com Arduino para projetos em ronótica
Robótica com Arduino para projetos em ronóticaprofandersrodri
 
Construindo um arduino em um breadboard
Construindo um arduino em um breadboardConstruindo um arduino em um breadboard
Construindo um arduino em um breadboardLuciano Souza
 
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CWebinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CEmbarcados
 

Semelhante a Projeto de Hardware com Microcontroladores STM32 (20)

Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
9537 chassis sk4.0_l-ca_manual_de_servicio
9537 chassis sk4.0_l-ca_manual_de_servicio9537 chassis sk4.0_l-ca_manual_de_servicio
9537 chassis sk4.0_l-ca_manual_de_servicio
 
Relatório de Projeto - Desenvolvimento de uma memória RAM dinâmica de 1 byte
Relatório de Projeto - Desenvolvimento de uma memória RAM dinâmica de 1 byteRelatório de Projeto - Desenvolvimento de uma memória RAM dinâmica de 1 byte
Relatório de Projeto - Desenvolvimento de uma memória RAM dinâmica de 1 byte
 
Mini curso arduino
Mini curso arduinoMini curso arduino
Mini curso arduino
 
21 pt6456 (1)
21 pt6456 (1)21 pt6456 (1)
21 pt6456 (1)
 
Arduino vers o_cores
Arduino vers o_coresArduino vers o_cores
Arduino vers o_cores
 
Arduino vers o_cores
Arduino vers o_coresArduino vers o_cores
Arduino vers o_cores
 
Mini curso Arduíno
Mini curso ArduínoMini curso Arduíno
Mini curso Arduíno
 
Manutenção & reparo de notebooks
Manutenção & reparo de notebooksManutenção & reparo de notebooks
Manutenção & reparo de notebooks
 
Curso notebook
Curso notebookCurso notebook
Curso notebook
 
Arduino vers o_cores
Arduino vers o_coresArduino vers o_cores
Arduino vers o_cores
 
Arduino iad
Arduino iadArduino iad
Arduino iad
 
Arduino vers o_cores
Arduino vers o_coresArduino vers o_cores
Arduino vers o_cores
 
Arquitetura de Computadores: Memórias - Nível lógico
Arquitetura de Computadores: Memórias - Nível lógicoArquitetura de Computadores: Memórias - Nível lógico
Arquitetura de Computadores: Memórias - Nível lógico
 
Adaptador para-medir-indutancias
Adaptador para-medir-indutanciasAdaptador para-medir-indutancias
Adaptador para-medir-indutancias
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdf
 
Aulavoxnotebooks
AulavoxnotebooksAulavoxnotebooks
Aulavoxnotebooks
 
Robótica com Arduino para projetos em ronótica
Robótica com Arduino para projetos em ronóticaRobótica com Arduino para projetos em ronótica
Robótica com Arduino para projetos em ronótica
 
Construindo um arduino em um breadboard
Construindo um arduino em um breadboardConstruindo um arduino em um breadboard
Construindo um arduino em um breadboard
 
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CWebinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
 

Mais de Marcelo Barros de Almeida

[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Marcelo Barros de Almeida
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 

Mais de Marcelo Barros de Almeida (20)

[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
 
Agenda em bash e dialog
Agenda em bash e dialogAgenda em bash e dialog
Agenda em bash e dialog
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Administração de Redes Linux - III
Administração de Redes Linux - IIIAdministração de Redes Linux - III
Administração de Redes Linux - III
 
Administração de Redes Linux - II
Administração de Redes Linux - IIAdministração de Redes Linux - II
Administração de Redes Linux - II
 
Administração de Redes Linux - I
Administração de Redes Linux - IAdministração de Redes Linux - I
Administração de Redes Linux - I
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Treinamento Qt básico - aula III
Treinamento Qt básico - aula IIITreinamento Qt básico - aula III
Treinamento Qt básico - aula III
 
Treinamento Qt básico - aula II
Treinamento Qt básico - aula IITreinamento Qt básico - aula II
Treinamento Qt básico - aula II
 
Treinamento Qt básico - aula I
Treinamento Qt básico - aula ITreinamento Qt básico - aula I
Treinamento Qt básico - aula I
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 

Projeto de Hardware com Microcontroladores STM32

  • 1. Projeto de Hardware com Microcontroladores STM32 Prof. Dr. Marcelo Barros de Almeida
  • 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
  • 4. 4 Anatomia de um Projeto Microcontrolado com STM32
  • 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
  • 12. 12 Capacitores de Desacoplamento Dave Jones: https://www.youtube.com/watch?v=BcJ6UdDx1vg
  • 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.
  • 14. 14 Capacitores de Desacoplamento Exemplo do livro “Mastering STM32”
  • 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
  • 29. 29 PCB Final (*) É possível aproximar mais. Como a montagem foi manual, acabei deixando um pouco mais espaçado. (**) Essa placa não usava ADC
  • 31. 31 PCB Final (*) Sem usar vias abaixo do chip ficou difícil aproximar mais. O design é dupla face, o que dificulta também o trabalho.
  • 32. 32 Perguntas ? Comentários ? Autor: Marcelo Barros de Almeida - marcelobarrosalmeida@gmail.com Atribuição-Não Comercial-Compartilha Igual 4.0 Internacional (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/deed.pt_BR