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

Confira como realizar a configuração e acionamento de IO na Família LPC21XX de microcontroladores, com foco no periférico de GPIO
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 >>

Sou formado em técnico em eletrônica pela E.T.E Júlio de Mesquita. Fiz graduação no Centro Universitário da FEI em engenharia elétrica com ênfase eletrônica. Posteriormente, fiz uma Pós graduação no Instituto Mauá de tecnologia na área de eletrônica embarcada e sistemas Mobile. Atualmente atuo na indústria automobilística buscando implementação de sistemas de controle e otimização de processos e sua rastreabilidade. Busco levar características enxutas e eficazes dos sistemas embarcados para automação industrial.

Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H