Configurando um Microcontrolador LPC21XX (ARM7 de 32bits)

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

Olá pessoal, no artigo anterior aprendemos como realizar a configuração básica da IDE uVision da Keil. Agora, neste segundo artigo, vamos aprender a como configurar corretamente os recursos de controle do core ARM7da família de microcontroladores ARM. Para isso, iremos demonstrar de forma prática com uma abordagem na família LPC21XX e criaremos nosso primeiro programa em C. 

Para isso, vamos detalhar o funcionamento dos seguintes módulos contidos no microcontrolador LPC21xx: PLL, MAM e Divisor VPB.

PLL 

O PLL (Phase Locked Loop) trata-se de ummultiplicador da frequência do cristal ligado externamente. Em geral, esse cristal externo, ligado ao microcontrolador, é da faixa de8 MHza25 MHz. E com o PLL, podemos elevar essa frequência a até60 MHzno núcleo do processador. O que pode ser valioso para rotinas de aquisições de dados. 

O PLL possui 4 registradores especiais para configuração e é com essa configuração que podemos elevar o CCLK (Clock que chega ao núcleo do Processador) a até 60 MHz. São eles:PLLCFG, PLLCON, PLLSTAT, PLLFEED. 

Tabela de Registradores ARM7
Figura 1 – Tabela de Registradores ARM7.

PLLCFG 

O PLL é composto por dois CONTROLES:M (que é o multiplicador do PLL) e o P (que é o divisor do PLL). Devemos ajustar valores para estas duas variáveis a fim de obtermos o valor final da frequência de trabalho (limitada em 60 MHz). 

A relação da fórmula que devemos equacionar para trabalhar os valores de M eP é a seguinte: 

1 – CCLK = M x Osc

Sendo: CCLK = CPU Clock; Osc = frequência do cristal ligado externamente ao Microcontrolador; 

*Ou seja, para Osc = 12MHz e M = 2, temos CCLK = 24MHz

2 – FCCO = CCLK x 2 x P

Sendo: FCCO = Frequency Current-conrolled Oscillator) 

*Sendo que:          156MHz <  FCCO  < 320MHZ

Uma vez definidos os valores de M e P, que satisfaçam as equações acima, utilizamos estes valores para formar o Byte do Registrador PLLCFG, da seguinte forma: 

Formação do byte PLLCFG.
Figura 2 – Formação do byte PLLCFG.

Onde MSEL representa os possíveis valores de M e PSEL representa os possíveis valores de P. Estes possíveis valores de M e P são dados de acordo com a tabela abaixo: 

Tabela de valores para M e P. 
Figura 3 – Tabela de valores para M e P.

Abaixo uma planilha com alguns possíveis valores para M e P. Apenas como exemplo: 

Tabela exemplo de valores de M e P. 
Figura 4 – Tabela exemplo de valores de M e P.

PLLCON 

Esse registrador habilita o modulo PLL.

Registrador PLL. 
Figura 5 – Registrador PLL.

PLLFEED 

Após a configuração de todos os registradores citados acima, devemos carregar o Registrador PLLFEED para que todas essas configurações no módulo PLL se iniciem. 

A sequência deve ser (SEMPRE!): 

  1. Carregar o valor 0xAA; 
  2. Em seguida carregar o valor 0x55; 

Pronto. Todas as configurações definidas para o módulo PLL são carregadas e passam a estar ativadas. 

MAM 

MAM (Memory Acceralator Module) coloca parte da memória Flash em uma área da RAM para acesso rápido já que o acesso à memória Flash é um barramento de no máximo 20 MHz e o núcleo ARM pode chegar a 60 MHz. 

Divisor VPB 

O Divisor VPB atua realizando uma divisão do sinal de Clock após o PLL. Mas não altera a frequência que chega ao núcleo do processador. Só atua sobre a frequência que chega ao barramento VPB  (VLSI Peripheral Bus). Dessa forma podemos ter um processador rodando a uma alta frequência, mas com periféricos que podem rodar a uma baixa frequência caso seja solicitado. A divisão pode ser feita por12 ou4

Costumo utilizar a função abaixo para a configuração inicial de um microcontrolador ARM. 

Junto com as seguintes definições: 

Abaixo, um exemplo de código completo. O programa executa um simples pisca Led onde já podemos ver a configuração básica do microcontrolador junto com uma simples rotina de temporização:

DOWNLOAD

No próximo artigo, estaremos abordando alguns recursos extras dos periféricos e dando maiores detalhes do uso do GPIO (General Purpose Input Output). Até lá!

Outros artigos da série

Configuração e Acionamento de IO na Família LPC21XX >>
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 » Configurando um Microcontrolador LPC21XX (ARM7 de 32bits)
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries



Outros da Série

Menu