SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Fábio Souza
2015
Microcontroladores ARM Cortex M0+
Aplicação em robôs autoguiados
GPIO (General Purpose I/O)
Fábio Souza 2015
Introdução aos GPIOs
Um dos grandes beneficio de um microcontrolador em relação aos
microprocessadores são os pinos de I/O de uso geral.
Estes pinos efetuam a interface entre o microcontrolador e o mundo externo. Nestes
pinos podem ser ligados os botões, LED’s, motores, etc.
Nesse módulo aprenderemos como funcionam os pinos de GPIO nos
microcontroladores Kinetis L e como fazer corretamente as configurações para uso
dos mesmos.
Fábio Souza 2015
GPIO Kinetis L25Z
O Kinetis KL25 contém 4 portas, sendo elas PORTA, PORTB, PORTC, PORTD e
PORTE, onde:
● PORTA = 8 pinos;
● PORTB = 8 pinos;
● PORTC = 16 pinos;
● PORTD = 8 pinos;
● PORTE = 13 pinos;
● TOTAL = 53 I/O’s disponíveis com multiplas funções
Fábio Souza 2015
Diagrama de blocos
Fábio Souza 2015
Conexão do GPIO a CPU
Nota-se no diagrama de blocos que os PORTs se comunicam
através de um barramento com o microcontrolador. Como os
pinos de GPIO não são de alta velocidade é possível multiplexar
os mesmos ou conectá-los em um barramento compartilhado,
reduzindo assim a quantidade de vias necessárias para interface
com a CPU.
Fábio Souza 2015
Pinos da FRDM KL25Z
Fábio Souza 2015
Registradores
Cada PORT possui um conjunto de registradores para configuração e controle dos
pinos de GPIO. No Kinetis L os seguintes registradores são utilizados:
● SIM_SCGC5 (System Clock Gating Control)
● Pin Control Register n (PORTx_PCRn)
● GPIO Port Data Direction Register (GPIOx_PDDR)
● Port Data Output Register (GPIOx_PDOR)
● Port Set Output Register (GPIOx_PSOR)
● Port Clear Output Register (GPIOx_PCOR)
● Port Toggle Output Register (GPIOx_PTOR)
● Port Data Input Register (GPIOx_PDIR)
Fábio Souza 2015
Ativando o Clock para o PORT
Antes de utilizar o pino deve-se ativar o clock para cada conjunto de porta. Isso é feito
através do registrador:
SIM_SCGC5 (System Clock Gating Control)
Fábio Souza 2015
Configurando o pino como GPIO
Os pinos geralmente possuem diversas funções que são multiplexadas ao mesmo.
Dessa forma é necessário configurar qual função vai ser utilizada. Para isso utiliza-se
o registrador : Pin Control Register n (PORTx_PCRn).
Para uso do pino como GPIO deve-se configurar o MUX como 1. Conforme tabela na
pagina 184, do KL25 Sub-Family Reference Manual.
Fábio Souza 2015
Configurando a direção do pino
Antes de utilizar o pino deve-se configurar o mesmo como uma entrada ou saída
digital. Para isso utiliza-se o registrador GPIO Port Data Direction Register
(GPIOx_PDDR), conforme a necessidade do projeto:
Fábio Souza 2015
Alterando valores nos pinos de saídas
Quando o pino for configurado como saída, existem 4 registradores que irão
determinar o estado do pino:
● Port Data Output Register (GPIOx_PDOR)
● Port Set Output Register (GPIOx_PSOR)
● Port Clear Output Register (GPIOx_PCOR)
● Port Toggle Output Register (GPIOx_PTOR)
Fábio Souza 2015
Port Data Output Register (GPIOx_PDOR)
Coloca o pino correspondente em nível lógico “1” ou “0”.
Fábio Souza 2015
Port Set Output Register (GPIOx_PSOR)
Escreve nivel lógico “1” no pino correspondente
Fábio Souza 2015
Port Clear Output Register (GPIOx_PCOR)
Escreve nivel lógico “0” no pino correspondente
Fábio Souza 2015
Port Toggle Output Register (GPIOx_PTOR)
Inverte os estado lógico presente no pino
Fábio Souza 2015
Leitura de estados de pinos de entrada
Port Data Input Register (GPIOx_PDIR) - Contêm o estado presente no pino
configurado como entrada Digital.
Fábio Souza 2015
Exemplo 1 - LEDs (GPIO_LEDS)
Acionar os leds RGB presentes na FRDM KL25Z. Cada led pode ser manipulado
separadamente com a configuração dos registradores.
Fábio Souza 2015
Exemplo 1 - Esquemático
Conforme exibido no esquemático da FRDM KL25Z os LEDs estão ligados da
seguinte forma:
Note que estão ligados em anodo comum, dessa forma para ligar o LED o pino
correspondente dever ir para nivel ‘0’.
Fábio Souza 2015
Exemplo 1 - passos
1 - Ligar o clock para o PORT dos LEDs
2 - Configurar o pino como GPIO
3 - Configurar o pino como saída
4 - ligar leds
Fábio Souza 2015
Exemplo 2 - Piscar LEDS (GPIO_BLINK)
Piscar os leds utilizando rotina de delay
Passos:
1. Ligar LED
2. Aguardar 1 seg
3. Desliagar LED
4. Aguardar 1 seg
Fábio Souza 2015
Exemplo 3 - Teclas (GPIO_TECLAS)
Fazer a leituras das teclas presentes no shield e ligar leds quando forem
pressionadas. SW1 comanda D3 e SW2 comanda D4.

Contenu connexe

Tendances

Acessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorAcessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorRodrigo Almeida
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores picCesar Prim
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônicaFabio Souza
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelosdetectfelix
 
Apresentação pic
Apresentação picApresentação pic
Apresentação picSaddam Lande
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCFabio Souza
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladoresAlyson Cavalcante
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducaoedgluc2001
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Thiago Oliveira
 
Linguagens de programação para controladores lógicos programáveis copia - c...
Linguagens de programação para controladores lógicos programáveis   copia - c...Linguagens de programação para controladores lógicos programáveis   copia - c...
Linguagens de programação para controladores lógicos programáveis copia - c...Juremir Almeida
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 

Tendances (20)

Acessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorAcessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontrolador
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
 
HC11
HC11HC11
HC11
 
Aula 4 conversor ad e pwm
Aula 4   conversor ad e pwmAula 4   conversor ad e pwm
Aula 4 conversor ad e pwm
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelos
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
8085 3
8085 38085 3
8085 3
 
Apresentação pic
Apresentação picApresentação pic
Apresentação pic
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
 
Zilog
ZilogZilog
Zilog
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
8085 2
8085 28085 2
8085 2
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducao
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051
 
Exercicios+de+ladder+2009
Exercicios+de+ladder+2009Exercicios+de+ladder+2009
Exercicios+de+ladder+2009
 
Linguagens de programação para controladores lógicos programáveis copia - c...
Linguagens de programação para controladores lógicos programáveis   copia - c...Linguagens de programação para controladores lógicos programáveis   copia - c...
Linguagens de programação para controladores lógicos programáveis copia - c...
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 
Clp
ClpClp
Clp
 

En vedette

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Fabio Souza
 
Construindo sua placa baseada em Arduino
Construindo sua placa baseada em ArduinoConstruindo sua placa baseada em Arduino
Construindo sua placa baseada em ArduinoFabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresFabio Souza
 
Microcontroladores PIC - Display LCD Alfanumérico
Microcontroladores PIC - Display LCD AlfanuméricoMicrocontroladores PIC - Display LCD Alfanumérico
Microcontroladores PIC - Display LCD AlfanuméricoFabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Criando um...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Criando um...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Criando um...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Criando um...Fabio Souza
 
Arduino Day 2015 - Introdução ao Arduino:
Arduino Day 2015 - Introdução ao Arduino: Arduino Day 2015 - Introdução ao Arduino:
Arduino Day 2015 - Introdução ao Arduino: Fabio Souza
 
Curso mbed na KL25Z
Curso mbed na KL25ZCurso mbed na KL25Z
Curso mbed na KL25ZFabio Souza
 
Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PICFabio Souza
 
Embarcados - Ao arduino e além
Embarcados - Ao arduino e alémEmbarcados - Ao arduino e além
Embarcados - Ao arduino e alémFabio Souza
 
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
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesFabio Souza
 
Forss: Seksuaalinen häirintä ja väkivalta netissä
Forss: Seksuaalinen häirintä ja väkivalta netissäForss: Seksuaalinen häirintä ja väkivalta netissä
Forss: Seksuaalinen häirintä ja väkivalta netissäKouluterveyskysely
 
Бумеранг за ЗОЖ
Бумеранг за ЗОЖБумеранг за ЗОЖ
Бумеранг за ЗОЖdementer80
 
Session 3 week 2 central tendency & dispersion
Session 3 week 2   central tendency & dispersionSession 3 week 2   central tendency & dispersion
Session 3 week 2 central tendency & dispersionRachel Chung
 
Centro de desarrollo_infantil_kamelot_original
Centro de desarrollo_infantil_kamelot_originalCentro de desarrollo_infantil_kamelot_original
Centro de desarrollo_infantil_kamelot_originalfermontalvo
 

En vedette (20)

Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
 
Construindo sua placa baseada em Arduino
Construindo sua placa baseada em ArduinoConstruindo sua placa baseada em Arduino
Construindo sua placa baseada em Arduino
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
 
Microcontroladores PIC - Display LCD Alfanumérico
Microcontroladores PIC - Display LCD AlfanuméricoMicrocontroladores PIC - Display LCD Alfanumérico
Microcontroladores PIC - Display LCD Alfanumérico
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Criando um...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Criando um...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Criando um...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Criando um...
 
Arduino Day 2015 - Introdução ao Arduino:
Arduino Day 2015 - Introdução ao Arduino: Arduino Day 2015 - Introdução ao Arduino:
Arduino Day 2015 - Introdução ao Arduino:
 
Curso mbed na KL25Z
Curso mbed na KL25ZCurso mbed na KL25Z
Curso mbed na KL25Z
 
Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PIC
 
Embarcados - Ao arduino e além
Embarcados - Ao arduino e alémEmbarcados - Ao arduino e além
Embarcados - Ao arduino e além
 
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
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicações
 
Entreprenuership & Startup for Young Graduates
Entreprenuership & Startup for Young GraduatesEntreprenuership & Startup for Young Graduates
Entreprenuership & Startup for Young Graduates
 
Forss: Seksuaalinen häirintä ja väkivalta netissä
Forss: Seksuaalinen häirintä ja väkivalta netissäForss: Seksuaalinen häirintä ja väkivalta netissä
Forss: Seksuaalinen häirintä ja väkivalta netissä
 
Бумеранг за ЗОЖ
Бумеранг за ЗОЖБумеранг за ЗОЖ
Бумеранг за ЗОЖ
 
Field name
Field nameField name
Field name
 
Session 3 week 2 central tendency & dispersion
Session 3 week 2   central tendency & dispersionSession 3 week 2   central tendency & dispersion
Session 3 week 2 central tendency & dispersion
 
M robby f_mi2b_tugas 2
M robby f_mi2b_tugas 2M robby f_mi2b_tugas 2
M robby f_mi2b_tugas 2
 
mi familia
mi familiami familia
mi familia
 
Centro de desarrollo_infantil_kamelot_original
Centro de desarrollo_infantil_kamelot_originalCentro de desarrollo_infantil_kamelot_original
Centro de desarrollo_infantil_kamelot_original
 
Materi Dasar PHP
Materi Dasar PHPMateri Dasar PHP
Materi Dasar PHP
 

Similaire à GPIO ARM Cortex M0

UFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxUFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxcentroclinicosalus
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98Texas Instruments
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardFabio Souza
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoSamir Siqueira
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- Freedom boa...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- Freedom boa...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- Freedom boa...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- Freedom boa...Fabio Souza
 
201728 22259 manual_picgenios
201728 22259 manual_picgenios201728 22259 manual_picgenios
201728 22259 manual_picgeniosBárbara Gama
 
Manual n2000 v30x_h_portuguese
Manual n2000 v30x_h_portugueseManual n2000 v30x_h_portuguese
Manual n2000 v30x_h_portugueseCharles Santos
 
03 - Intel Galileo: Controle de GPIO e Entrada Analógica
03 - Intel Galileo: Controle de GPIO e Entrada Analógica 03 - Intel Galileo: Controle de GPIO e Entrada Analógica
03 - Intel Galileo: Controle de GPIO e Entrada Analógica marcochella
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Desafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleDesafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleNatã Barbosa
 

Similaire à GPIO ARM Cortex M0 (20)

UFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxUFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptx
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity Board
 
Pic16f628a
Pic16f628aPic16f628a
Pic16f628a
 
Pisca 2 leds
Pisca 2  ledsPisca 2  leds
Pisca 2 leds
 
2 manual - clp pic40-v3
2 manual - clp pic40-v32 manual - clp pic40-v3
2 manual - clp pic40-v3
 
2 gravação
2 gravação2 gravação
2 gravação
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduino
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- Freedom boa...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- Freedom boa...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- Freedom boa...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- Freedom boa...
 
Pro2 01p
Pro2 01pPro2 01p
Pro2 01p
 
201728 22259 manual_picgenios
201728 22259 manual_picgenios201728 22259 manual_picgenios
201728 22259 manual_picgenios
 
Manual n2000 v30x_h_portuguese
Manual n2000 v30x_h_portugueseManual n2000 v30x_h_portuguese
Manual n2000 v30x_h_portuguese
 
03 - Intel Galileo: Controle de GPIO e Entrada Analógica
03 - Intel Galileo: Controle de GPIO e Entrada Analógica 03 - Intel Galileo: Controle de GPIO e Entrada Analógica
03 - Intel Galileo: Controle de GPIO e Entrada Analógica
 
Treinamento arduino (1).pptx
Treinamento arduino (1).pptxTreinamento arduino (1).pptx
Treinamento arduino (1).pptx
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Arduino
ArduinoArduino
Arduino
 
Clp
ClpClp
Clp
 
ARDUINO.pptx
ARDUINO.pptxARDUINO.pptx
ARDUINO.pptx
 
Desafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleDesafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - Joinville
 

Plus de Fabio Souza

RISC-V Design Challenge
RISC-V Design ChallengeRISC-V Design Challenge
RISC-V Design ChallengeFabio Souza
 
Palestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísPalestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísFabio Souza
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedFabio Souza
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladoresFabio Souza
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetFabio Souza
 
Open Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoOpen Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoFabio Souza
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?Fabio Souza
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?Fabio Souza
 
Como o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoComo o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoFabio Souza
 
Montando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareMontando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareFabio Souza
 
Monte sua franzininho, uma placa arduino compatível
 Monte sua franzininho, uma placa arduino compatível Monte sua franzininho, uma placa arduino compatível
Monte sua franzininho, uma placa arduino compatívelFabio Souza
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareFabio Souza
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareFabio Souza
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPFabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Microcontr...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Microcontr...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Microcontr...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Microcontr...Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - introduçã...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  introduçã...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  introduçã...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - introduçã...Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Introdução
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - IntroduçãoMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Introdução
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - IntroduçãoFabio Souza
 

Plus de Fabio Souza (17)

RISC-V Design Challenge
RISC-V Design ChallengeRISC-V Design Challenge
RISC-V Design Challenge
 
Palestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísPalestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso país
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbed
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da Internet
 
Open Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoOpen Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundo
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Como o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoComo o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundo
 
Montando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareMontando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardware
 
Monte sua franzininho, uma placa arduino compatível
 Monte sua franzininho, uma placa arduino compatível Monte sua franzininho, uma placa arduino compatível
Monte sua franzininho, uma placa arduino compatível
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXP
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Microcontr...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Microcontr...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Microcontr...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Microcontr...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - introduçã...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  introduçã...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  introduçã...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - introduçã...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Introdução
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - IntroduçãoMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Introdução
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Introdução
 

GPIO ARM Cortex M0

  • 1. Fábio Souza 2015 Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados GPIO (General Purpose I/O)
  • 2. Fábio Souza 2015 Introdução aos GPIOs Um dos grandes beneficio de um microcontrolador em relação aos microprocessadores são os pinos de I/O de uso geral. Estes pinos efetuam a interface entre o microcontrolador e o mundo externo. Nestes pinos podem ser ligados os botões, LED’s, motores, etc. Nesse módulo aprenderemos como funcionam os pinos de GPIO nos microcontroladores Kinetis L e como fazer corretamente as configurações para uso dos mesmos.
  • 3. Fábio Souza 2015 GPIO Kinetis L25Z O Kinetis KL25 contém 4 portas, sendo elas PORTA, PORTB, PORTC, PORTD e PORTE, onde: ● PORTA = 8 pinos; ● PORTB = 8 pinos; ● PORTC = 16 pinos; ● PORTD = 8 pinos; ● PORTE = 13 pinos; ● TOTAL = 53 I/O’s disponíveis com multiplas funções
  • 5. Fábio Souza 2015 Conexão do GPIO a CPU Nota-se no diagrama de blocos que os PORTs se comunicam através de um barramento com o microcontrolador. Como os pinos de GPIO não são de alta velocidade é possível multiplexar os mesmos ou conectá-los em um barramento compartilhado, reduzindo assim a quantidade de vias necessárias para interface com a CPU.
  • 6. Fábio Souza 2015 Pinos da FRDM KL25Z
  • 7. Fábio Souza 2015 Registradores Cada PORT possui um conjunto de registradores para configuração e controle dos pinos de GPIO. No Kinetis L os seguintes registradores são utilizados: ● SIM_SCGC5 (System Clock Gating Control) ● Pin Control Register n (PORTx_PCRn) ● GPIO Port Data Direction Register (GPIOx_PDDR) ● Port Data Output Register (GPIOx_PDOR) ● Port Set Output Register (GPIOx_PSOR) ● Port Clear Output Register (GPIOx_PCOR) ● Port Toggle Output Register (GPIOx_PTOR) ● Port Data Input Register (GPIOx_PDIR)
  • 8. Fábio Souza 2015 Ativando o Clock para o PORT Antes de utilizar o pino deve-se ativar o clock para cada conjunto de porta. Isso é feito através do registrador: SIM_SCGC5 (System Clock Gating Control)
  • 9. Fábio Souza 2015 Configurando o pino como GPIO Os pinos geralmente possuem diversas funções que são multiplexadas ao mesmo. Dessa forma é necessário configurar qual função vai ser utilizada. Para isso utiliza-se o registrador : Pin Control Register n (PORTx_PCRn). Para uso do pino como GPIO deve-se configurar o MUX como 1. Conforme tabela na pagina 184, do KL25 Sub-Family Reference Manual.
  • 10. Fábio Souza 2015 Configurando a direção do pino Antes de utilizar o pino deve-se configurar o mesmo como uma entrada ou saída digital. Para isso utiliza-se o registrador GPIO Port Data Direction Register (GPIOx_PDDR), conforme a necessidade do projeto:
  • 11. Fábio Souza 2015 Alterando valores nos pinos de saídas Quando o pino for configurado como saída, existem 4 registradores que irão determinar o estado do pino: ● Port Data Output Register (GPIOx_PDOR) ● Port Set Output Register (GPIOx_PSOR) ● Port Clear Output Register (GPIOx_PCOR) ● Port Toggle Output Register (GPIOx_PTOR)
  • 12. Fábio Souza 2015 Port Data Output Register (GPIOx_PDOR) Coloca o pino correspondente em nível lógico “1” ou “0”.
  • 13. Fábio Souza 2015 Port Set Output Register (GPIOx_PSOR) Escreve nivel lógico “1” no pino correspondente
  • 14. Fábio Souza 2015 Port Clear Output Register (GPIOx_PCOR) Escreve nivel lógico “0” no pino correspondente
  • 15. Fábio Souza 2015 Port Toggle Output Register (GPIOx_PTOR) Inverte os estado lógico presente no pino
  • 16. Fábio Souza 2015 Leitura de estados de pinos de entrada Port Data Input Register (GPIOx_PDIR) - Contêm o estado presente no pino configurado como entrada Digital.
  • 17. Fábio Souza 2015 Exemplo 1 - LEDs (GPIO_LEDS) Acionar os leds RGB presentes na FRDM KL25Z. Cada led pode ser manipulado separadamente com a configuração dos registradores.
  • 18. Fábio Souza 2015 Exemplo 1 - Esquemático Conforme exibido no esquemático da FRDM KL25Z os LEDs estão ligados da seguinte forma: Note que estão ligados em anodo comum, dessa forma para ligar o LED o pino correspondente dever ir para nivel ‘0’.
  • 19. Fábio Souza 2015 Exemplo 1 - passos 1 - Ligar o clock para o PORT dos LEDs 2 - Configurar o pino como GPIO 3 - Configurar o pino como saída 4 - ligar leds
  • 20. Fábio Souza 2015 Exemplo 2 - Piscar LEDS (GPIO_BLINK) Piscar os leds utilizando rotina de delay Passos: 1. Ligar LED 2. Aguardar 1 seg 3. Desliagar LED 4. Aguardar 1 seg
  • 21. Fábio Souza 2015 Exemplo 3 - Teclas (GPIO_TECLAS) Fazer a leituras das teclas presentes no shield e ligar leds quando forem pressionadas. SW1 comanda D3 e SW2 comanda D4.