SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
COBEC-SEB 2017
Introdução ao
Microcontrolador STM32F767
(Parte II)
Prof. Dr. Marcelo Barros de Almeida
Prof. Dr. Márcio José da Cunha
Principais Periféricos
● Abordar todos os periféricos: missão impossível !
– Timers, SPI, I2C, CAN, ADC, DMA, RTC, DAC, FEMC, LCD-TFT, USB,
USART, SAI, I2C, HDMI-CEC, DCMI, ...
● Vamos fazer uma aplicação conjunta com foco em sinais analógicos,
usando timer, DAC, ADC e DMA com processamento de sinais via CMSIS
Esquema Básico
frequencia=
CLKINT
( preescalar+1)( periodo+1)
periodo=
CLKINT
( preescalar+1)frequencia
−1
Ex: clock de 108MHz (APB1), preescalar = 0
Período = 65535 → frequência = 1647,95Hz
Frequência = 1MHz → Período = 107 (1us)
Frequência = 1kHz → Período = 107999 (1ms)
Diagrama Completo
frequencia=
CLKINT
( preescalar+1)( periodo+1)(repetition+1)(divisor+1)
Geração de Pulsos
Ex: clock de 108MHz (APB1), preescalar = 107, divisor = 0,
gerando frequência de entrada de 1MHz
Período base (ARR) = 999 → frequência = 1kHz (1ms)
CC1 = 249 → CC1 = 25% duty cycle
CC2 = 749 → CC2 = 75% duty cycle
Usos diversos dos Timers
● Contagem de pulsos de entrada
● Medição de período e frequência
● Medição de comprimento de pulso
● Encoders em quadratura
● PWM para usos diversos, como acionamento de
motores ou controle
● Geração de pulsos únicos
● Sequenciamento na geração de pulsos
● ...
Timers na Família STM32
● A ST divide seus timers em grupos:
– Básicos
– Uso geral
– Avançados
– Alta resolução
– Low power
● Os timers podem ser encadeados para a geração de
eventos complexos, pode temporizar operações de DMA,
acionar periféricos como um ADC, etc.
● Em geral, os nomes são mantidos entre controladores
diferentes, isto é, um “TIM2” não deve mudar ao se trocar de
família.
● Os timers podem parar na hora do debug/breakpoint.
Timers no STM32F767
ADC no STM32F767
● Características gerais:
– 3 ADCs que compartilham até 16 canais externos, com ordem
arbitrária de amostragem
– Resolução configurável (6, 8, 10 ou 12 bits)
– Tempo de conversão configurável
– Suporte a interrupção e DMA
– Suporte a trigger externo
– Suporte a watchdog analógico
– Alimentação independente (VREF), tensão mínima de 2,4V
– Vários modos de operação (conversão contínua, conversão única,
alternada, canais injetados, etc)
– Clock máximo de 36MHz (2.4MSamples modo single ou
7,2MSamples modo triple interleave)
Modo de Operação
Conversão Simples
● Converte um ou mais canais, em qualquer
ordem, com tempos de conversão
individualizados.
● Pode operar por polling, interrupção ou
DMA
● Pode gerar interrupção apenas no final da
conversão de todos os canais ou um a um
Modo de Operação
Conversão Contínua
● Converte um ou mais canais, em qualquer ordem,
com tempos de conversão individualizados.
● O periférico é reprogramado automaticamente ao
final do ciclo
● Pode operar por interrupção ou DMA
(preferencial)
● Permite um mapeamento em memória direto na
área das variáveis
Modo de Operação
Conversão Dual ou Tripla
● Converte alternadamente ou simultaneamente usando ADCs
diferentes
● Existem vários modos possíveis de estratégias de uso dos
canais e ADCs
● Use DMA, é a forma preferencial para esses casos
Modo de Operação
Conversão Injetada
● Este modo é para uso quando a conversão é disparada por
um evento externo ou por software.
● O grupo injetado tem prioridade sobre o grupo de canais
regular.
● Ele interrompe a conversão do canal atual no grupo canal
regular.
Recomendações Finais
● Existem mais detalhes sobre a operação dos ADCs, foi apresentado apenas um resumo
● Outras famílias, como a STM32L433x (Cortex M4F) possuem canais que podem ser
usados de forma diferencial
● Faça uso por DMA, é a forma natural para trabalhar com ADC para a família STM32, com
baixo custo para o processador
● Associe o ADC com timers e DMA para obter taxas precisas de amostragem
● Fique atento a impedância máxima de saída do seu circuito !
k = número de períodos de amostragem
N = número de bits
fADC
= frequência do ADC (máx. 36MHz)
RAIN
= Máximo de 50kΩ
RADC
= Máximo de 6kΩ
CADC
= Máximo de 7pF
DAC
● O STM32F767 possui um DAC com dois canais
independentes de 12 bits
● Suporta geração de ondas triangulares e de pseudo-ruído
● Pode ser sincronizado por timers e aceita o uso via DMA
● Possui um buffer para reduzir a impedância de saída (5kΩ)
DMA (Direct Memory Access)
● Permite que periféricos acessem a memória
diretamente, não passando pela CPU
● Libera a CPU para outras atividades
● Tipicamente:
– Uma operação de DMA é programada entre
periférico e memória
– A operação é executada e uma interrupção
ocorre para avisar a CPU
● Operações comuns:
– Memória → memória
– Device → memória
– Memória → device
Imagem: http://is.gd/ylS6DG
DMA no STM32F4
● Dois DMAs (1 e 2), independentes, divididos em:
– Streams (canais de comunicação), total de 8 por DMA
– Requisições (dispositivos), até 16 possibilidades por
stream (canais, na notação do manual)
● Priorização do stream
– 4 níveis de prioridade (baixa, média, alta, muito alta)
– Mesma prioridade: vence o de menor número
● Transferências:
– Memória → Memória
– Periférico → Memória
– Memória → Periférico
DMA no STM32F767
Consulte antes a tabela de canais x streams x DMA !
DMA no STM32F767
Consulte antes a tabela de canais x streams x DMA !
DMA no STM32F767
● Transferências:
– Modos:
● Modo DMA direto
● Modo FIFO (first in first out) com até 4 words (16B), marcas d'água
configuráveis, dois por canal
– Tamanho dos dados:
● Byte, half word (2B) e word (4B) individualizadas para periférico e memória
(se diferentes, apenas em FIFO mode)
– O tamanho a transferir pode ser controlado:
● Pela programação do DMA (1 a 65536)
● Pelo periférico, através de sinalização
– Incremento automático dos ponteiros
– Reprogramação automática (circular mode)
– Double buffer mode !!!

Contenu connexe

Tendances

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
 
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
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores picCesar Prim
 
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
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoFabio Souza
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timerMayara Mônica
 
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
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 
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
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladoresAlyson Cavalcante
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducaoedgluc2001
 
Firewall em Linux
Firewall em LinuxFirewall em Linux
Firewall em Linuxguest4e5ab
 

Tendances (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
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Zilog
ZilogZilog
Zilog
 
Apresentação pic
Apresentação picApresentação pic
Apresentação pic
 
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
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
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
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timer
 
O menor Rastreador do Mercado
O menor Rastreador do MercadoO menor Rastreador do Mercado
O menor Rastreador do Mercado
 
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
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 
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
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Administração de Redes Linux - III
Administração de Redes Linux - IIIAdministração de Redes Linux - III
Administração de Redes Linux - III
 
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
 
Exercicios 06
Exercicios 06Exercicios 06
Exercicios 06
 
Firewall em Linux
Firewall em LinuxFirewall em Linux
Firewall em Linux
 

Similaire à [7/9] Sistemas embarcados de alto desempenho para tratamento e processamento de sinais biomédicos - Plataformas ARM Cortex M e CMSIS-DSP

Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicialTiago
 
Manutenção
ManutençãoManutenção
ManutençãoTiago
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
Tipos de ram ddr1, 2 & 3
Tipos de ram   ddr1, 2 & 3Tipos de ram   ddr1, 2 & 3
Tipos de ram ddr1, 2 & 3Danilo Lima
 
Aula 02 introudção a computação
Aula 02 introudção a computaçãoAula 02 introudção a computação
Aula 02 introudção a computaçãoMatheus Brito
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelosdetectfelix
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelosdetectfelix
 
Julio Silvello - Tms320 C55 X
Julio Silvello -  Tms320 C55 XJulio Silvello -  Tms320 C55 X
Julio Silvello - Tms320 C55 Xjsilvello
 
Sistema Operacional - Aula002
Sistema Operacional - Aula002Sistema Operacional - Aula002
Sistema Operacional - Aula002Cláudio Amaral
 
Placa mãe e barramentos
Placa mãe e barramentosPlaca mãe e barramentos
Placa mãe e barramentosNeil Azevedo
 
Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfApostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfSilvanildoManoeldaSi
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadoresmiroslayer
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfssuser56423c1
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 

Similaire à [7/9] Sistemas embarcados de alto desempenho para tratamento e processamento de sinais biomédicos - Plataformas ARM Cortex M e CMSIS-DSP (20)

ARM
ARMARM
ARM
 
Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicial
 
Microprocessadores/Microcontroladores para OBC.
Microprocessadores/Microcontroladores para OBC. Microprocessadores/Microcontroladores para OBC.
Microprocessadores/Microcontroladores para OBC.
 
Manutenção
ManutençãoManutenção
Manutenção
 
Conhecendo O Computador
Conhecendo O ComputadorConhecendo O Computador
Conhecendo O Computador
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Tipos de ram ddr1, 2 & 3
Tipos de ram   ddr1, 2 & 3Tipos de ram   ddr1, 2 & 3
Tipos de ram ddr1, 2 & 3
 
Aula 02 introudção a computação
Aula 02 introudção a computaçãoAula 02 introudção a computação
Aula 02 introudção a computação
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelos
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelos
 
Hardware
HardwareHardware
Hardware
 
Julio Silvello - Tms320 C55 X
Julio Silvello -  Tms320 C55 XJulio Silvello -  Tms320 C55 X
Julio Silvello - Tms320 C55 X
 
Memoria primária
Memoria primáriaMemoria primária
Memoria primária
 
Sistema Operacional - Aula002
Sistema Operacional - Aula002Sistema Operacional - Aula002
Sistema Operacional - Aula002
 
Placa mãe e barramentos
Placa mãe e barramentosPlaca mãe e barramentos
Placa mãe e barramentos
 
Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdfApostila Apresentacao_PWM_PIC16F877A_2015.pdf
Apostila Apresentacao_PWM_PIC16F877A_2015.pdf
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 

Plus de Marcelo Barros de Almeida

Plus 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
 

[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento de sinais biomédicos - Plataformas ARM Cortex M e CMSIS-DSP

  • 1. COBEC-SEB 2017 Introdução ao Microcontrolador STM32F767 (Parte II) Prof. Dr. Marcelo Barros de Almeida Prof. Dr. Márcio José da Cunha
  • 2. Principais Periféricos ● Abordar todos os periféricos: missão impossível ! – Timers, SPI, I2C, CAN, ADC, DMA, RTC, DAC, FEMC, LCD-TFT, USB, USART, SAI, I2C, HDMI-CEC, DCMI, ... ● Vamos fazer uma aplicação conjunta com foco em sinais analógicos, usando timer, DAC, ADC e DMA com processamento de sinais via CMSIS
  • 3. Esquema Básico frequencia= CLKINT ( preescalar+1)( periodo+1) periodo= CLKINT ( preescalar+1)frequencia −1 Ex: clock de 108MHz (APB1), preescalar = 0 Período = 65535 → frequência = 1647,95Hz Frequência = 1MHz → Período = 107 (1us) Frequência = 1kHz → Período = 107999 (1ms)
  • 4. Diagrama Completo frequencia= CLKINT ( preescalar+1)( periodo+1)(repetition+1)(divisor+1)
  • 5. Geração de Pulsos Ex: clock de 108MHz (APB1), preescalar = 107, divisor = 0, gerando frequência de entrada de 1MHz Período base (ARR) = 999 → frequência = 1kHz (1ms) CC1 = 249 → CC1 = 25% duty cycle CC2 = 749 → CC2 = 75% duty cycle
  • 6. Usos diversos dos Timers ● Contagem de pulsos de entrada ● Medição de período e frequência ● Medição de comprimento de pulso ● Encoders em quadratura ● PWM para usos diversos, como acionamento de motores ou controle ● Geração de pulsos únicos ● Sequenciamento na geração de pulsos ● ...
  • 7. Timers na Família STM32 ● A ST divide seus timers em grupos: – Básicos – Uso geral – Avançados – Alta resolução – Low power ● Os timers podem ser encadeados para a geração de eventos complexos, pode temporizar operações de DMA, acionar periféricos como um ADC, etc. ● Em geral, os nomes são mantidos entre controladores diferentes, isto é, um “TIM2” não deve mudar ao se trocar de família. ● Os timers podem parar na hora do debug/breakpoint.
  • 9. ADC no STM32F767 ● Características gerais: – 3 ADCs que compartilham até 16 canais externos, com ordem arbitrária de amostragem – Resolução configurável (6, 8, 10 ou 12 bits) – Tempo de conversão configurável – Suporte a interrupção e DMA – Suporte a trigger externo – Suporte a watchdog analógico – Alimentação independente (VREF), tensão mínima de 2,4V – Vários modos de operação (conversão contínua, conversão única, alternada, canais injetados, etc) – Clock máximo de 36MHz (2.4MSamples modo single ou 7,2MSamples modo triple interleave)
  • 10. Modo de Operação Conversão Simples ● Converte um ou mais canais, em qualquer ordem, com tempos de conversão individualizados. ● Pode operar por polling, interrupção ou DMA ● Pode gerar interrupção apenas no final da conversão de todos os canais ou um a um
  • 11. Modo de Operação Conversão Contínua ● Converte um ou mais canais, em qualquer ordem, com tempos de conversão individualizados. ● O periférico é reprogramado automaticamente ao final do ciclo ● Pode operar por interrupção ou DMA (preferencial) ● Permite um mapeamento em memória direto na área das variáveis
  • 12. Modo de Operação Conversão Dual ou Tripla ● Converte alternadamente ou simultaneamente usando ADCs diferentes ● Existem vários modos possíveis de estratégias de uso dos canais e ADCs ● Use DMA, é a forma preferencial para esses casos
  • 13. Modo de Operação Conversão Injetada ● Este modo é para uso quando a conversão é disparada por um evento externo ou por software. ● O grupo injetado tem prioridade sobre o grupo de canais regular. ● Ele interrompe a conversão do canal atual no grupo canal regular.
  • 14. Recomendações Finais ● Existem mais detalhes sobre a operação dos ADCs, foi apresentado apenas um resumo ● Outras famílias, como a STM32L433x (Cortex M4F) possuem canais que podem ser usados de forma diferencial ● Faça uso por DMA, é a forma natural para trabalhar com ADC para a família STM32, com baixo custo para o processador ● Associe o ADC com timers e DMA para obter taxas precisas de amostragem ● Fique atento a impedância máxima de saída do seu circuito ! k = número de períodos de amostragem N = número de bits fADC = frequência do ADC (máx. 36MHz) RAIN = Máximo de 50kΩ RADC = Máximo de 6kΩ CADC = Máximo de 7pF
  • 15. DAC ● O STM32F767 possui um DAC com dois canais independentes de 12 bits ● Suporta geração de ondas triangulares e de pseudo-ruído ● Pode ser sincronizado por timers e aceita o uso via DMA ● Possui um buffer para reduzir a impedância de saída (5kΩ)
  • 16. DMA (Direct Memory Access) ● Permite que periféricos acessem a memória diretamente, não passando pela CPU ● Libera a CPU para outras atividades ● Tipicamente: – Uma operação de DMA é programada entre periférico e memória – A operação é executada e uma interrupção ocorre para avisar a CPU ● Operações comuns: – Memória → memória – Device → memória – Memória → device Imagem: http://is.gd/ylS6DG
  • 17. DMA no STM32F4 ● Dois DMAs (1 e 2), independentes, divididos em: – Streams (canais de comunicação), total de 8 por DMA – Requisições (dispositivos), até 16 possibilidades por stream (canais, na notação do manual) ● Priorização do stream – 4 níveis de prioridade (baixa, média, alta, muito alta) – Mesma prioridade: vence o de menor número ● Transferências: – Memória → Memória – Periférico → Memória – Memória → Periférico
  • 18. DMA no STM32F767 Consulte antes a tabela de canais x streams x DMA !
  • 19. DMA no STM32F767 Consulte antes a tabela de canais x streams x DMA !
  • 20. DMA no STM32F767 ● Transferências: – Modos: ● Modo DMA direto ● Modo FIFO (first in first out) com até 4 words (16B), marcas d'água configuráveis, dois por canal – Tamanho dos dados: ● Byte, half word (2B) e word (4B) individualizadas para periférico e memória (se diferentes, apenas em FIFO mode) – O tamanho a transferir pode ser controlado: ● Pela programação do DMA (1 a 65536) ● Pelo periférico, através de sinalização – Incremento automático dos ponteiros – Reprogramação automática (circular mode) – Double buffer mode !!!