SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
COBEC-SEB 2017
Introdução ao
Microcontrolador STM32F767
(Parte I)
Prof. Dr. Marcelo Barros de Almeida
Prof. Dr. Márcio José da Cunha
STM32 Family
High performance
STM32F7xx
● 462 DMIPS / 1082 CoreMark
● Cache I/D de 16KB cada
● TFT LCD
STM32F767
STM32F767
Diferenciais:
● Pipeline de 6 estágios
● Cache de dados e instrução de 16kB
● Barramentos AXI (desacopla processador de periféricos ou memórias)
● Suporte a Quad-SPI (108MHz)
● Ponto flutuante de dupla precisão em hardware
● Clock de 216MHz
● Suporte a TFT LCD e HDMI-CEC
● Suporte a encoder/decoder de JPEG
● Acelerador gráfico 2D (Chrom-ART)
● UART síncrona de 27 Mbit/s
● Suporte áudio, vídeo e câmeras
Principais Periféricos do
STM32F767
● Conversor analógico digital (ADC)
● Controller Area Network (CAN)
● Criptografia (AES, DES, TDES, ECB,
CBC, CTR, CCM, GCM)
● Hash (SHA-1, SHA-224, SHA-256,
MD5)
● Random Number Generator (RNG)
● Conversor digital analógico (DAC)
● Digital Camera Interface (DCMI)
● ID único
● TFT LCT
● Codec JPEG
● Suporte avançado de áudio e vídeo
● HDMI-CEC
● Cyclic Redundancy Check (CRC)
● Barramento AXI-AHB
● Direct Memory Access (DMA)
● Ethernet (ETH)
● Flash
● GPIO
● I2C, I2S
● SPI (suporte a Quase-SPI)
● USART
● SD/SDIO/MMC
● USB (OTG, device)
● Controlador de memória externa
(NOR, NAND, SDRAM, SRAM,
FLASH)
● Acelerador gráfico 2D
● Acelerador de acesso a Flash
STM32F767
STM32F767
Pinout STM32F767 (144)
Flexibilidade de IO no
STM32F767
Clocks
● Clocks rápidos (High Speed, HSI/HSE, CPU)
– Oscilador RC interno de 16MHz
– Cristal/Oscilador externo de 4 a 26MHz
● Clocks lentos (Low Speed, LSI/LSE, RTC)
– Oscilador RC interno de 32kHz
– Cristal/Oscilador externo (0 a 1000kHz, tipicamente 32,768kHz)
Clock
● Inicialmente é usado o interno e depois a
aplicação pode mudar para o externo, se existir
um e for adequadamente configurado.
● Em caso de falha de clock, volta para o interno
● Existe uma PLL interna, configurável
● Certos dispositivos podem exigir um oscilador
dedicado como ethernet (25 MHz ou 50 MHz) e
USB (48 MHz ±0.25%)
● Existem PLLs adicionais no F767 para SAI
(Serial Audio Interface) e DSI (Display Serial
Interface)
Interno Externo
/M
PLL
/P
*N /Q
/R
HSEHSI
HSI
HSE AHB
PRESC
APBx
PRESC
AHB CLK (HCLK)
APB CLK
HS Clock Path
CRISTAL = 8MHz
M = 4 → PLL recebe 2 MHz
N = 216 e P = 2 → 216MHz
AHB PRESC = 1 → 216 MHz para HCLK
APB1 PRESC = 4 → 54MHz
APB2 PRESC = 2 → 108MHz
SYSTICK = 27MHz (*)
/8
SYSTICK
(*) Base de tempo do SYSTICK = HCLK/8:
HAL_Init() → HAL_InitTick(TICK_INT_PRIORITY) → HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000)
PLL
SYSCLOCK
Configuração de Clock
STMF767 no Cube
STM32F767 - Memórias
● Flash: 2MB
– AXI Flash: acessa todos os
2MB
– ITCM Flash: acessa apenas
128kB
● SRAM: 512kB + 16kB + 4kB
– SRAM1: 16kB
– SRAM2: 368kB
– DTCM: 128kB
– ITCM RAM: 16kB
– Backup RAM: 4kB
Boot Modes
● O endereço de partida é programável através de bytes de opção
(option bytes).
● Existe um bootloader no controlador para atualização de firmware
● Pino BOOT0 decide se o boot é para código do usuário ou para o
bootloader
– 0: flash, via ITCM 0x00200000 (default), ou de acordo com o programado pelo
usuário (BOOT_ADDR0)
– 1: bootloader, no endereço 0x00100000 (default), ou de acordo com o
programado pelo usuário (BOOT_ADDR1)
● Ordem de procura de atualização do bootloader
● USART1, USART3, CAN2, I2C1, I2C2, ISC3, SPI1, SP2, SP4, USB
Interrupções no STM32F767
● 110 interrupções mascaráveis (16 em diante)
sendo 25 para linhas externas
● 16 níveis de prioridade (4 bits) dividido em
prioridade e sub-prioridade
● As 16 exceções do core, são tratadas à parte
Interrupções Externas no
STM32F767
● GPIOs podem ser configurados para gerar interrupções nas diferentes bordas
● O limite são 25 requisições de interrupção externas, através do EXTI (External
Interrupt/Event controller)
Interrupções Externas no
STM32F767
●
Mapeamento dos GPIOs em interrupções é feito da seguinte forma:
– 16 linhas (EXTI0 a EXTI15) que agrupam as entradas PAx a PKx
– EXTI16: PVD output
– EXTI17: RTC Alarm event
– EXTI18: USB OTG FS Wakeup event
– EXTI19: Ethernet Wakeup event
– EXTI20: USB OTG HS
– EXTI21: RTC Tamper and TimeStamp events
– EXTI22: RTC Wakeup event
– EXTI23: LPTIM1 event
– EXTI24: MDIO interrupt
Tratamento pode ou não
ser multiplexado:
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
EXTI9_5_IRQHandler
EXTI15_10_IRQHandler
21
Exemplo de Projeto
STM32F030
Sistema mínimo com
Cortex M0 STM32F030F4x
● 48 MHz
● 16kB Flash
● 8kB RAM
● Cristal interno
● ADC de 12 bits
● DMA
● Timers, UART, SPI, I2C,
● CRC
● -40 to 125 °C
● TSSOP 20, pitch 0,65mm
● $1,36@1 $0,9@100
22
Exemplo de Projeto
STM32L052
Sistema mínimo com
Cortex M0+ STM32L052K8T6
● 32 MHz
● 64kB Flash
● 8kB RAM
● 2kB E2P
● 2,49 CoreMips/MHz
● Cristal interno
● USB 2.0 sem passivos
● 88uA/MHz de consumo
● ADC de 12 bits
● DMA
● Timers, UART, SPI, I2C,
● CRC, RNG,
● -40 to 125 °C
● LQFP 32, pitch 0,8mm
● ID de 96 bits
● Ampla capacidade de depuração
● $3,62@1 $2,67@100
Depende um pouco do fabricante. Em geral, não !
23
Exemplo de Projeto
STM32L433
Sistema mínimo com
Cortex M4F STM32L433RC
● 80 MHz
● 256kB Flash
● 64kB RAM
● 3.42 CoreMark/MHz
● ADC de 12 bits
● DMA, Timers, UART, SPI, I2C,
● CRC, ...
● -40 to 125 °C
● TQFP de 64, pitch 0,5mm
● $6,24@1 $4,60@100
24
Exemplo de Projeto
STM32F767
● Similar ao projeto anterior, exceto
em:
– Fontes:
●
Além do ADC, SD e USB podem ter
fontes separadas
●
O VDD do processador/IO pode
ficar totalmente independente, de
1V8 a 3V6
– Layout:
●
Recomendado quatro layers
mínimo (LQFP)
● 216 MHz
● 1MB Flash
● 512kB RAM
● 5,01 CoreMark/MHz
● ADC de 12 bits
● DMA, Timers, UART, SPI, I2C,
● CRC, SD, TFT, CAN ...
● -40 to 125 °C
● LQFP de 144, pitch 0,5mm
● $15,98@1 $12,41@100

Mais conteúdo relacionado

Mais procurados

Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosMarcelo Barros de Almeida
 
Apresentação pic
Apresentação picApresentação pic
Apresentação picSaddam Lande
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores picCesar Prim
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoFabio Souza
 
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniTendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8elliando dias
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timerMayara Mônica
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Disponibilização de Serviços em IPv6 na UCS - Um Caso Prático
Disponibilização de Serviços em IPv6 na UCS - Um Caso PráticoDisponibilização de Serviços em IPv6 na UCS - Um Caso Prático
Disponibilização de Serviços em IPv6 na UCS - Um Caso PráticoJeronimo Zucco
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos OrsoniCPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladoresAlyson Cavalcante
 
Redes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetRedes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetMatheus Lincoln
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducaoedgluc2001
 

Mais procurados (20)

Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
 
Zilog
ZilogZilog
Zilog
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Apresentação pic
Apresentação picApresentação pic
Apresentação pic
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniTendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timer
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
 
O menor Rastreador do Mercado
O menor Rastreador do MercadoO menor Rastreador do Mercado
O menor Rastreador do Mercado
 
Disponibilização de Serviços em IPv6 na UCS - Um Caso Prático
Disponibilização de Serviços em IPv6 na UCS - Um Caso PráticoDisponibilização de Serviços em IPv6 na UCS - Um Caso Prático
Disponibilização de Serviços em IPv6 na UCS - Um Caso Prático
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos OrsoniCPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
CPUMF: O que é, como implementar, o que inferir por Luiz Carlos Orsoni
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Redes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetRedes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internet
 
Programando microcontroladores pic março
Programando microcontroladores pic marçoProgramando microcontroladores pic março
Programando microcontroladores pic março
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducao
 
Administração de Redes Linux - III
Administração de Redes Linux - IIIAdministração de Redes Linux - III
Administração de Redes Linux - III
 
Exercicios 06
Exercicios 06Exercicios 06
Exercicios 06
 

Semelhante a Introdução ao Microcontrolador STM32F767

O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014Fabio Souza
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
Webinar: Projeto de Hardware: ASIC e FPGA
Webinar: Projeto de Hardware: ASIC e FPGAWebinar: Projeto de Hardware: ASIC e FPGA
Webinar: Projeto de Hardware: ASIC e FPGAEmbarcados
 
Manutenção
ManutençãoManutenção
ManutençãoTiago
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelosdetectfelix
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelosdetectfelix
 
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
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de HardwareMiguel Correia
 
Existe um mundo lá fora esperando para ser controlado: Delphi Mobile + Arduino
Existe um mundo lá fora esperando para ser controlado: Delphi Mobile + ArduinoExiste um mundo lá fora esperando para ser controlado: Delphi Mobile + Arduino
Existe um mundo lá fora esperando para ser controlado: Delphi Mobile + ArduinoVic Fernandes
 
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...fesaab
 
Open Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGAOpen Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGACampus Party Brasil
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREFIBRE Testbed
 
apresentacao_nexto_xpress-2.pdf
apresentacao_nexto_xpress-2.pdfapresentacao_nexto_xpress-2.pdf
apresentacao_nexto_xpress-2.pdfmixep2
 

Semelhante a Introdução ao Microcontrolador STM32F767 (20)

O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
 
Microprocessadores/Microcontroladores para OBC.
Microprocessadores/Microcontroladores para OBC. Microprocessadores/Microcontroladores para OBC.
Microprocessadores/Microcontroladores para OBC.
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Webinar: Projeto de Hardware: ASIC e FPGA
Webinar: Projeto de Hardware: ASIC e FPGAWebinar: Projeto de Hardware: ASIC e FPGA
Webinar: Projeto de Hardware: ASIC e FPGA
 
Manutenção
ManutençãoManutenção
Manutenção
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelos
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelos
 
Comunicação serial
Comunicação serialComunicação serial
Comunicação serial
 
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
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de Hardware
 
Existe um mundo lá fora esperando para ser controlado: Delphi Mobile + Arduino
Existe um mundo lá fora esperando para ser controlado: Delphi Mobile + ArduinoExiste um mundo lá fora esperando para ser controlado: Delphi Mobile + Arduino
Existe um mundo lá fora esperando para ser controlado: Delphi Mobile + Arduino
 
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
 
Open Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGAOpen Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGA
 
Ficha de trabalho 1
Ficha de trabalho 1Ficha de trabalho 1
Ficha de trabalho 1
 
ARM
ARMARM
ARM
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBRE
 
apresentacao_nexto_xpress-2.pdf
apresentacao_nexto_xpress-2.pdfapresentacao_nexto_xpress-2.pdf
apresentacao_nexto_xpress-2.pdf
 
2 manual - clp pic40-v3
2 manual - clp pic40-v32 manual - clp pic40-v3
2 manual - clp pic40-v3
 

Mais de Marcelo Barros de Almeida

Mais de Marcelo Barros de Almeida (12)

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 - 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)
 
Tutorial sobre iptables
Tutorial sobre iptablesTutorial sobre iptables
Tutorial sobre iptables
 

Introdução ao Microcontrolador STM32F767

  • 1. COBEC-SEB 2017 Introdução ao Microcontrolador STM32F767 (Parte I) Prof. Dr. Marcelo Barros de Almeida Prof. Dr. Márcio José da Cunha
  • 4. STM32F7xx ● 462 DMIPS / 1082 CoreMark ● Cache I/D de 16KB cada ● TFT LCD
  • 6. STM32F767 Diferenciais: ● Pipeline de 6 estágios ● Cache de dados e instrução de 16kB ● Barramentos AXI (desacopla processador de periféricos ou memórias) ● Suporte a Quad-SPI (108MHz) ● Ponto flutuante de dupla precisão em hardware ● Clock de 216MHz ● Suporte a TFT LCD e HDMI-CEC ● Suporte a encoder/decoder de JPEG ● Acelerador gráfico 2D (Chrom-ART) ● UART síncrona de 27 Mbit/s ● Suporte áudio, vídeo e câmeras
  • 7. Principais Periféricos do STM32F767 ● Conversor analógico digital (ADC) ● Controller Area Network (CAN) ● Criptografia (AES, DES, TDES, ECB, CBC, CTR, CCM, GCM) ● Hash (SHA-1, SHA-224, SHA-256, MD5) ● Random Number Generator (RNG) ● Conversor digital analógico (DAC) ● Digital Camera Interface (DCMI) ● ID único ● TFT LCT ● Codec JPEG ● Suporte avançado de áudio e vídeo ● HDMI-CEC ● Cyclic Redundancy Check (CRC) ● Barramento AXI-AHB ● Direct Memory Access (DMA) ● Ethernet (ETH) ● Flash ● GPIO ● I2C, I2S ● SPI (suporte a Quase-SPI) ● USART ● SD/SDIO/MMC ● USB (OTG, device) ● Controlador de memória externa (NOR, NAND, SDRAM, SRAM, FLASH) ● Acelerador gráfico 2D ● Acelerador de acesso a Flash
  • 11. Flexibilidade de IO no STM32F767
  • 12. Clocks ● Clocks rápidos (High Speed, HSI/HSE, CPU) – Oscilador RC interno de 16MHz – Cristal/Oscilador externo de 4 a 26MHz ● Clocks lentos (Low Speed, LSI/LSE, RTC) – Oscilador RC interno de 32kHz – Cristal/Oscilador externo (0 a 1000kHz, tipicamente 32,768kHz)
  • 13. Clock ● Inicialmente é usado o interno e depois a aplicação pode mudar para o externo, se existir um e for adequadamente configurado. ● Em caso de falha de clock, volta para o interno ● Existe uma PLL interna, configurável ● Certos dispositivos podem exigir um oscilador dedicado como ethernet (25 MHz ou 50 MHz) e USB (48 MHz ±0.25%) ● Existem PLLs adicionais no F767 para SAI (Serial Audio Interface) e DSI (Display Serial Interface)
  • 14. Interno Externo /M PLL /P *N /Q /R HSEHSI HSI HSE AHB PRESC APBx PRESC AHB CLK (HCLK) APB CLK HS Clock Path CRISTAL = 8MHz M = 4 → PLL recebe 2 MHz N = 216 e P = 2 → 216MHz AHB PRESC = 1 → 216 MHz para HCLK APB1 PRESC = 4 → 54MHz APB2 PRESC = 2 → 108MHz SYSTICK = 27MHz (*) /8 SYSTICK (*) Base de tempo do SYSTICK = HCLK/8: HAL_Init() → HAL_InitTick(TICK_INT_PRIORITY) → HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000) PLL SYSCLOCK
  • 16. STM32F767 - Memórias ● Flash: 2MB – AXI Flash: acessa todos os 2MB – ITCM Flash: acessa apenas 128kB ● SRAM: 512kB + 16kB + 4kB – SRAM1: 16kB – SRAM2: 368kB – DTCM: 128kB – ITCM RAM: 16kB – Backup RAM: 4kB
  • 17. Boot Modes ● O endereço de partida é programável através de bytes de opção (option bytes). ● Existe um bootloader no controlador para atualização de firmware ● Pino BOOT0 decide se o boot é para código do usuário ou para o bootloader – 0: flash, via ITCM 0x00200000 (default), ou de acordo com o programado pelo usuário (BOOT_ADDR0) – 1: bootloader, no endereço 0x00100000 (default), ou de acordo com o programado pelo usuário (BOOT_ADDR1) ● Ordem de procura de atualização do bootloader ● USART1, USART3, CAN2, I2C1, I2C2, ISC3, SPI1, SP2, SP4, USB
  • 18. Interrupções no STM32F767 ● 110 interrupções mascaráveis (16 em diante) sendo 25 para linhas externas ● 16 níveis de prioridade (4 bits) dividido em prioridade e sub-prioridade ● As 16 exceções do core, são tratadas à parte
  • 19. Interrupções Externas no STM32F767 ● GPIOs podem ser configurados para gerar interrupções nas diferentes bordas ● O limite são 25 requisições de interrupção externas, através do EXTI (External Interrupt/Event controller)
  • 20. Interrupções Externas no STM32F767 ● Mapeamento dos GPIOs em interrupções é feito da seguinte forma: – 16 linhas (EXTI0 a EXTI15) que agrupam as entradas PAx a PKx – EXTI16: PVD output – EXTI17: RTC Alarm event – EXTI18: USB OTG FS Wakeup event – EXTI19: Ethernet Wakeup event – EXTI20: USB OTG HS – EXTI21: RTC Tamper and TimeStamp events – EXTI22: RTC Wakeup event – EXTI23: LPTIM1 event – EXTI24: MDIO interrupt Tratamento pode ou não ser multiplexado: EXTI0_IRQHandler EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI4_IRQHandler EXTI9_5_IRQHandler EXTI15_10_IRQHandler
  • 21. 21 Exemplo de Projeto STM32F030 Sistema mínimo com Cortex M0 STM32F030F4x ● 48 MHz ● 16kB Flash ● 8kB RAM ● Cristal interno ● ADC de 12 bits ● DMA ● Timers, UART, SPI, I2C, ● CRC ● -40 to 125 °C ● TSSOP 20, pitch 0,65mm ● $1,36@1 $0,9@100
  • 22. 22 Exemplo de Projeto STM32L052 Sistema mínimo com Cortex M0+ STM32L052K8T6 ● 32 MHz ● 64kB Flash ● 8kB RAM ● 2kB E2P ● 2,49 CoreMips/MHz ● Cristal interno ● USB 2.0 sem passivos ● 88uA/MHz de consumo ● ADC de 12 bits ● DMA ● Timers, UART, SPI, I2C, ● CRC, RNG, ● -40 to 125 °C ● LQFP 32, pitch 0,8mm ● ID de 96 bits ● Ampla capacidade de depuração ● $3,62@1 $2,67@100 Depende um pouco do fabricante. Em geral, não !
  • 23. 23 Exemplo de Projeto STM32L433 Sistema mínimo com Cortex M4F STM32L433RC ● 80 MHz ● 256kB Flash ● 64kB RAM ● 3.42 CoreMark/MHz ● ADC de 12 bits ● DMA, Timers, UART, SPI, I2C, ● CRC, ... ● -40 to 125 °C ● TQFP de 64, pitch 0,5mm ● $6,24@1 $4,60@100
  • 24. 24 Exemplo de Projeto STM32F767 ● Similar ao projeto anterior, exceto em: – Fontes: ● Além do ADC, SD e USB podem ter fontes separadas ● O VDD do processador/IO pode ficar totalmente independente, de 1V8 a 3V6 – Layout: ● Recomendado quatro layers mínimo (LQFP) ● 216 MHz ● 1MB Flash ● 512kB RAM ● 5,01 CoreMark/MHz ● ADC de 12 bits ● DMA, Timers, UART, SPI, I2C, ● CRC, SD, TFT, CAN ... ● -40 to 125 °C ● LQFP de 144, pitch 0,5mm ● $15,98@1 $12,41@100