Configurando um Microcontrolador LPC21XX (ARM7 de 32bits)

Confira como configurar corretamente os recursos de controle do core ARM7. Para isso iremos abordar, de forma prática, a família LPC21XX.
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 >>

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