Configuração e Acionamento de IO na Família LPC21XX

Este post faz parte da série Projeto ARM com Keil uVision4. Leia também os outros posts da série:

Olá pessoal, nos artigos anteriores realizamos toda a configuração da IDE e da CPU do processador. Agora iremos focar no principal e mais básico de todos os periféricos que a arquitetura ARM nos oferece: GPIO (General Purpose Input Output).

Este periférico é responsável pelas entradas e saídas a serem definidas para cada IO.

Para isso, vou utiliza como base a família LPC21XX, na NXP.

Veja abaixo a disposição do mapa de periféricos presentes nesta plataforma ARM7 (Exemplo: LPC2142).

Periféricos LPC2142. 
Figura 1 – Periféricos LPC2142.

O GPIO é composto por 4 registradores específicos. Cada qual com uma função de controle ou varredura. São os registradores: IODIR, IOPIN, IOSET,  IOCLR;  

Cada registrador possui seu endereçamento em 32 bits para representação de todos os IO´s do PORT.

Na figura abaixo, segue um resumo da definição e respectiva função de cada um: 

Definição dos Registradores do GPIO. 
Figura 2 – Definição dos Registradores do GPIO.

Como plataforma de teste, irei utilizar um Kit ARM 7 desenvolvido pela empresa Eng-House. Este Kit pode ser usado para este estudo bem como para os demais que estarei demonstrando. Mas fiquem livre para testar e aplicar este código em outras plataformas. Só é importante alterar o Device utilizado.  

Placa Didática ARM 7 TITAN. 
Figura 3 – Placa Didática ARM 7 TITAN.

Esta disponibilizado o Download completo do programa no final do Post para servir como referência de estudo. 

Abaixo alguns trechos importantes a serem observados: 

O trecho acima mostra uma operação bit a bit para “habilitar/modificar” um bit especifico de um byte que neste caso representa o byte que controla o IO.

Um exemplo de como esta operação ocorre: 

Operador deslocamento. 
Figura 4 – Operador deslocamento.

O deslocamento à esquerda ocorre a partir do bit 0 em “direção” ao bit 31. 

Notem que eu não preciso seguir sequencialmente os bits do PORT. Eu realizo o acionamento dos mesmos conforme desejo e necessidade. Aleatoriamente. 

Muitos podem achar curioso a utilização da expressão: 

O “|=” é uma abreviação da operação bit a bit: 

Dessa forma realizamos o “SET” para nível Alto do bit P1.9 sem afetar o estado anterior dos demais bits (IO´s) deste PORT. 

Abaixo o exemplo completo deste programa para um estudo completo:

DOWNLOAD

Abraços e até a próxima!

Outros artigos da série

<< Configurando um Microcontrolador LPC21XX (ARM7 de 32bits)Exemplo de utilização do uVision4-Keil para criar um projeto ARM >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Software » Configuração e Acionamento de IO na Família LPC21XX
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries



Outros da Série

Menu