The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by suzanobitencourt, 2015-11-23 08:00:11

Teste

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA
CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA

Tópicos Especiais Em Eletrônica Industrial - Sistemas Embarcados
Configuração e acesso aos pinos de E/S de propósito geral (GPIO)

Prof. Amauri Assef - [email protected] 1
paginapessoal.utfpr.edu.br/amauriassef

UTFPR – Campus Curitiba
Prof. Amauri Assef

Sistemas Embarcados

 Microcontroladores – MCUs

 Dispositivos digitais que agregam µP + memórias + periféricos E/S
 Programados para funções específicas e embarcados em outro dispositivo

 Geralmente, automação e controle de produtos e periféricos
 Contraste com outros µPs de propósito geral (utilizados em PC)
 Escolhidos conforme a aplicação do projeto – GPIOs, periféricos, interfaces,
memorias, etc.

uP Mem. GPIO ADC Timers SPI CAN Ethernet Ctrl. Interrupções
FLASH digital

Mem. Mem. USART DAC PWM I2C USB RTC
RAM EEPROM

UTFPR – Campus Curitiba 2
Prof. Amauri Assef

Sistemas Embarcados

 Microcontrolador MK60DN512VMD10

 Fabricante Freescale Semiconductor, Inc. (www.freescale.com)
 MCU do portfólio da família Kinetis

UTFPR – Campus Curitiba 3
Prof. Amauri Assef

Sistemas Embarcados

 Características do MCU MK60DN512VMD10

 32-bit ARM Cortex-M4 core with DSP instructions
 100MHz maximum core operating frequency
 144 MAPBGA, 13mm x 13mm, 1.0mm pitch package
 1.71V – 3.6V operating voltage input range
 512 Kbytes of program flash, 128 Kbytes of static RAM
 External bus interface
 Power management controller with 10 different power modes
 Multi-purpose clock generator with PLL and FLL operation modes
 16-bit SAR ADC, 12-bit DAC
 High-speed analog comparator with 6-bit DAC
 Programmable voltage reference

UTFPR – Campus Curitiba 4
Prof. Amauri Assef

Sistemas Embarcados

 Características do MCU MK60DN512VMD10

 USB full-speed/low-speed OTG/Host/Device controller with device charge
detect

 10/100 Mbps Ethernet MAC
 SPI, I2C (w/ SMBUS support), UART (w/ ISO7816 and IrDA), CAN, I2S
 SD Host Controller (SDHC)
 GPIO with pin interrupt support, DMA request capability, digital glitch

filtering
 Capacitive touch sensing inputs (TSI)
 Debug interfaces: JTAG, cJTAG, SWD
 Trace: TPIO, FPB, DWT, ITM, ETM, ETB

UTFPR – Campus Curitiba 5
Prof. Amauri Assef

Sistemas Embarcados

 Quadro resumo dos dispositivos da família K60

 Manual de referência: K60 Sub-Family Reference Manual
 K60P144M100SF2V2RM.pdf

UTFPR – Campus Curitiba 6
Prof. Amauri Assef

Sistemas Embarcados

 Placa TWR-K60D100M

 Tower compatible microcontroller module
 MK60N512VMD100: K60N512 in a 144 MAPBGA with 100MHz operation
 Touch Tower Plug-in Socket
 General purpose Tower Plug-in (TWRPI) socket
 On-board JTAG debug circuit (OSJTAG) with virtual serial port
 Three axis accelerometer (MMA7660)
 Four (4) user-controllable LEDs
 Four (4) capacitive touch pads
 Two (2) user pushbutton switches
 Potentiometer
 Battery Holder for 20mm lithium battery (e.g. 2032, 2025)
 SD Card slot

UTFPR – Campus Curitiba 7
Prof. Amauri Assef

Sistemas Embarcados

 Placa TWR-K60D100M

UTFPR – Campus Curitiba 8
Prof. Amauri Assef

Sistemas Embarcados

 Placa TWR-K60D100M

UTFPR – Campus Curitiba 9
Prof. Amauri Assef

Sistemas Embarcados

 Placa TWR-K60D100M

UTFPR – Campus Curitiba 10
Prof. Amauri Assef

Sistemas Embarcados

 Placa TWR-K60D100M – Conector E/S e pinagem

UTFPR – Campus Curitiba 11
Prof. Amauri Assef

Sistemas Embarcados

 GPIOs (General-Purpose Input/Output) – cap. 55

 Representam os módulos para leitura e escrita de dados para
interfaceamento com demais dispositivos e periféricos

 Nos MCUs Kinetis cada porta possui 32 pinos [31:0]
 Cada porta é conectada ao MCU através de uma bridge periférica

(barramento), possibilitando a comunicação do MCU com módulos mais
lentos

UTFPR – Campus Curitiba 12
Prof. Amauri Assef

Sistemas Embarcados

 Diagram em blocos do módulo GPIO do MCU Kinetis

1 Bridge periférica
ARM Cortex
PORTA M4 CPU

32 13

1

PORTB

32

1

PORTC

32

1

PORTD

32

1

PORTE

32

UTFPR – Campus Curitiba
Prof. Amauri Assef

Sistemas Embarcados

 Registradores do GPIO

 Cada porta possui um conjunto de registradores para controle dos pinos
 Port Data Direction Register (GPIOx_PDDR) – configura entrada ou saída
 Port Data Output Register (GPIOx_PDOR) – configura o nível lógico do pino
 Port Set Output Register (GPIOx_PSOR) – nível lógico 1 para setar o pino
 Port Clear Output Register(GPIOx_PCOR) – nível lógico 1 para zerar o pino

UTFPR – Campus Curitiba 14
Prof. Amauri Assef

Sistemas Embarcados

 Port Toggle Output Register (GPIOx_PTOR) – nível lógico 1 para inverter o
nível lógico presente no pino

 Port Data Input Register (GPIOx_PDIR) – registro para leitura da porta

UTFPR – Campus Curitiba 15
Prof. Amauri Assef

Sistemas Embarcados

 Mapa de memória do GPIOA (PORTA)

UTFPR – Campus Curitiba 16
Prof. Amauri Assef

Sistemas Embarcados

 Diagrama em blocos das operações do GPIO

Data Output Register

Output MUX Set Output Register
Buffer Clear Output Register

Pin Inv Toggle Output Register
Pad

Data Direction Register

Input Data Input Register
Buffer

UTFPR – Campus Curitiba 17
Prof. Amauri Assef

Sistemas Embarcados

 Exemplos:

 PTA11, PTA28, PTA29, PTA10 como saídas em nível alto:

 // Configuração da direção dos pinos
 GPIOA_PDDR = (1 << 11) | (1<<28) | (1<<29) | (1<<10);
 // Instrução para setar os pinos em nível alto
 GPIOA_PSOR = (1 << 11) | (1<<28) | (1<<29) | (1<<10);

 PTA19, PTE26 como entradas:

 GPIOA_PDDR &= ~(1 << 19); // Configuração da chave SW1
 GPIOE_PDDR &= ~(1 << 26); // Configuração da chave SW2

UTFPR – Campus Curitiba 18
Prof. Amauri Assef

Sistemas Embarcados

 Exemplos:

 Teste das chaves SW1 (PTA19) e SW2 (PTE26) :

If ((GPIOA_PDIR & (1 << 19) == 0) || (GPIOE_PDIR & (1 << 26) == 0))
{
Escrever a função para chave pressionada
}

else
{
Escrever a função para chave aberta
}

UTFPR – Campus Curitiba 19
Prof. Amauri Assef

Sistemas Embarcados

 Registradores do GPIO – ativação do clock

 Na configuração padrão os clocks de áreas específicas que não estão em
uso são desativados, reduzindo o consumo dinâmico necessário.

 Para utilizar um periférico particular ou recurso o usuário precisa ativar
esse relógio para cada item individualmente através do registro:

System Clock Gating Control Register 5 (SIM_SCGC5)

UTFPR – Campus Curitiba 20
Prof. Amauri Assef

Sistemas Embarcados

 Registradores do GPIO – seleção do MUX

 Cada pino do MCU é ligado a um multiplexador. Isso permite que cada
pino possa executar diversas funções, bem como otimizar a
funcionalidade em encapsulamentos menores.

 O multiplexador de sinais e outras opções de pinos podem ser
configurados no:

Pin Control Register n (PORTx_PCRn)

UTFPR – Campus Curitiba 21
Prof. Amauri Assef

Sistemas Embarcados

 Pin Control Register n (PORTx_PCRn)

 Configurações: interrupção, DMA, multiplexador dos pinos, capacidade de
corrente (Drive Strength Enable), saída com dreno aberto (Open Drain
Enable), filtro dos pinos de entrada, valocidade (Slew Rate Enable), pull
up, pull down, etc.

 Verificar Reference Manual para maiores detalhes

UTFPR – Campus Curitiba 22
Prof. Amauri Assef

Sistemas Embarcados

 Exemplos:

 PTA11, PTA28, PTA29, PTA10 como I/O digital:

 PORTA_PCR11 = 0X0100;
 PORTA_PCR28 = 0X0100;
 PORTA_PCR29 = 0X0100;
 PORTA_PCR10 = 0X0100;

 PTA19, PTE26 como entradas como I/O digital e pull-up:

 PORTA_PCR19 = 0X0100 | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK;
 PORTE_PCR26 = 0X0100 | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK;

UTFPR – Campus Curitiba 23
Prof. Amauri Assef

Sistemas Embarcados

 Código exemplo para configuração do GPIO

Teste para configuração de LED (PTA11) no pino e chave SW1 (PTA19):
1. Habilitar o respectivo clock para cada PORT – registro SIM_SCGC5
2. Configurar o registro PORTx_PCRn (x= A,B,C..E , n = 0..31) para GPIO

UTFPR – Campus Curitiba 24
Prof. Amauri Assef

Sistemas Embarcados

int main(void) // HABILITAÇÃO DO CLOCK DO PORTA;
{
int counter = 0; // LED LARANJA
// SW1
SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK; // LED LARANJA
// SW1
//HABILITA MUX COMO I/O DIGITAL // SAÍDA PARA LED
PORTA_PCR11 = 0X100; // CHAVE SW1
PORTA_PCR19 = 0X100 | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK;
// ATRASO POR SOFWARE
// PORTA_PCR11 = PORT_PCR_MUX(1); // INVERTE O ESTADO DO LED
// PORTA_PCR19 = PORT_PCR_MUX(1) | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK;

GPIOA_PDDR = (1<<11);
GPIOA_PDDR &= ~(1<<19);

//LAÇO INFINITO
for(;;) {

counter++;
if (counter == 100000){

counter = 0;
GPIOA_PTOR = (1<<11);
}
}
return 0;
}

UTFPR – Campus Curitiba 25
Prof. Amauri Assef

Sistemas Embarcados

 Processor Expert

 É um plug in do CodeWarrior (Eclipse)
 Utiliza como conceito um grau de abstração maior
 Possibilita criação de aplicações com pouco conhecimento prévio do MCU
 Permite inserção de objetos/componentes, chamados de Beans, que se

relacionam com os recursos de hardware e periféricos internos do MCU
 O acesso dos recursos de hardware não é direto e sim por meio de

bibliotecas de funções (métodos )

 Embedded Component

 Configuração completa do dispositivo

 Configuração do CPU selecionado
 Configuração dos componentes selecionados pelo usuário conforme a aplicação

 Gerador de código

 Códigos de drivers / arquivos de configuração necessários

UTFPR – Campus Curitiba 26
Prof. Amauri Assef

Sistemas Embarcados

 Conceitos do Processor Expert (PE)

Aplicação do usuário com Microkernel Device Drivers
acesso ao hardware via
Camada do Processor Expert
Processor Expert
DAC USB GPIO I2C
Camada do Processor Expert CPU ADC Timer UART

Microcontrolador
Periféricos Internos

Núcleo

UTFPR – Campus Curitiba 27
Prof. Amauri Assef

Sistemas Embarcados

 Componentes (Beans) e Camadas

 High Level Components
 Logical Device Drivers (LDD Components)
 Low Level Components
 Peripheral Initialization Components

 PDD Physical Device Drivers:
 Apenas disponível para Kinetis e Coldfire+
 Camada de software para acessar os registradores dos periféricos
 Necessita de inclusão de arquivo de cabeçário (.h), estes arquivos se
 encontram em: {CodeWarrior}\Processor Expert\lib\{MCU}\pdd
 Implementados com “macros”

UTFPR – Campus Curitiba 28
Prof. Amauri Assef

Sistemas Embarcados

Árvore do
projeto

Component Component Perspectivas
Inspector Library

UTFPR – Campus Curitiba Dica: Pressionar o botão direito
Prof. Amauri Assef sobre a Cpu e visualizar o
encapsulamento do alvo
(Target CPU View)

29

Sistemas Embarcados

Select Different
Package

Unused Peripherals

CPU Pins

UTFPR – Campus Curitiba 30
Prof. Amauri Assef

Sistemas Embarcados

 Componentes
 São blocos de construção de uma aplicação
 Cada funcionalidade é separada em pequenos blocos
 Cada componente possui a sua interface de configuração (similar às classes de
programação orientada a objeto)

 Propriedades
 Modificar/customizar o comportamento de objetos
 Configuração durante o desenvolvimento do projeto

 Métodos
 Processo que podem ser executados
 Chamada de funções

 Eventos
 Indicação de mudanção de estado
 Geralmente implementada como serviço de requisição de interrupções (ISRs)

UTFPR – Campus Curitiba 31
Prof. Amauri Assef

Sistemas Embarcados

 Component Inspector

 Propriedades
 Métodos
 Eventos

UTFPR – Campus Curitiba 32
Prof. Amauri Assef

Sistemas Embarcados

 Components Library

 Bibliotecas de periféricos, módulos e funções pré-elaboradas

UTFPR – Campus Curitiba 33
Prof. Amauri Assef

Sistemas Embarcados

 Componente:
 Bits_IO
 8 pinos - GPIOE
 Saídas
 Valor inicial = 0

UTFPR – Campus Curitiba 34
Prof. Amauri Assef

Sistemas Embarcados

Métodos 35
disponíveis

UTFPR – Campus Curitiba
Prof. Amauri Assef

Sistemas Embarcados

 Componente:
 Timer_Int
 1ms

UTFPR – Campus Curitiba 36
Prof. Amauri Assef

Sistemas Embarcados

 Escrever 1 (ms) e
pressionar ok

UTFPR – Campus Curitiba 37
Prof. Amauri Assef

Sistemas Embarcados

 Propriedades do
TI1

 Nome do evento 38
(interrupção do
TI1)

UTFPR – Campus Curitiba
Prof. Amauri Assef

Sistemas Embarcados

 Pressionar o botão Generate Processor Expert Code

 Os arquivos de inicialização do PE e dos eventos serão atualizados

UTFPR – Campus Curitiba 39
Prof. Amauri Assef

Sistemas Embarcados

 No arquivo Events.c incluir a variável global contador e inverter o estados
dos pinos do GPIOE a cada 1s (1000 interrupções de 1 ms).

Clicar no método
e arrastá-lo para o

arquivo

UTFPR – Campus Curitiba 40
Prof. Amauri Assef

Sistemas Embarcados 41

 Selecionar a conexão alvo
e compilar o projeto:

– Project → Build Project

– Obs 1: Pressionar o botão
direito do mouse sobre o
nome do projeto e
escolher a opção Build
Project

– Obs 2: Selecionar a opção
Clean Project após
alterações significativas

UTFPR – Campus Curitiba
Prof. Amauri Assef

Sistemas Embarcados

UTFPR – Campus Curitiba DEPURAÇÃO
Prof. Amauri Assef
42

Sistemas Embarcados

Debug Control Data/Register Views

Source Code TELA DE DEPURAÇÃO

UTFPR – Campus Curitiba Disassembler
Prof. Amauri Assef
Console, Tasks, Problems Views

43

Sistemas Embarcados

 Referências:

1) www.freescale.com/TWR-K60N512
2) www.freescale.com/kinetis
3) TWR-K60N512-QSG: Quick Start Guide
4) TWR-K60N512-SCH: Schematics
5) TWR-K60N512-PWA: Design Package
6) TWRPI-SLCD-SCH: Schematics
7) TWRPI-SLCD-PWA: Design Package
8) K60 Family Product Brief
9) K60 Family Reference Manual
10) Kinetis Quick Reference User Guide (QRUG)
11) Tower Configuration Tool

 Agradecimento:

 Freescale Semiconductor, Inc
 Sra. Damaris Ochoa, Coordenadora do Programa Universitário da Freescale na América

Latina

UTFPR – Campus Curitiba 44
Prof. Amauri Assef


Click to View FlipBook Version