AULA3 – Introdução a Microcontrolador Disciplina: Aplicações Avançadas de Microprocessadores...
Transcript of AULA3 – Introdução a Microcontrolador Disciplina: Aplicações Avançadas de Microprocessadores...
AULA3 – AULA3 – Introdução a MicrocontroladorIntrodução a Microcontrolador
Disciplina: Aplicações Avançadas de Disciplina: Aplicações Avançadas de Microprocessadores (AAM)Microprocessadores (AAM)
Profa. Ana T. Y. WatanabeProfa. Ana T. Y. [email protected]
“Bem-aventurado o homem que acha sabedoria, e o homem que adquire conhecimento;” Provérbios 3:13
Tópicos da aula:• Microcontroladores Contínuo• Descrição do HCS08/JM60• MC9S08QG e MC9S08JM60 (Mapa de
memória) • MC9S08JM60 e JM128 (Mapa de Memória)• Tabela Flexis JM60/128 • Perguntas
Família de Microcontroladores32-bit ColdFire ® V1
ColdFire: Microprocessador que deriva da arquitetura da família Motorola 68000.
Descrição do HCS08/JM60 MODELO DE PROGRAMAÇÃO:
Compatível com as famílias anteriores de 8 bits;
O modelo de programação conserva a estrutura das primeiras famílias de microcontroladores de 8 bits.
O núcleo da CPU possui possui 5 registradores especiais:
1. Acumulador (A) de 8 bits;2. Contador de programa (PC) de 16 bits;3. Registrador de Índice(H:X) de 16 bits;4. Apontador de Pilha(SP) de 16 bits;5. Registrador de Condição do processador(CCR) de 8 bits.
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
1) Modo Implícito: Não há operandos na instrução (operandos em registradores internos);
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
2) Modo Relativo: Range de 8 bits com sinal;
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
3) Modo Imediato: Os operandos imediatos devem ser precedidos do caracter #.
Obs.: Em operando de 16 bits, a parte alta do operando é localizado na parte inferior da memória e a parte inferior situa-se na parte superior da memória (método big endian).
LDHX #$1234 ;$00B0 12 STHX $00B0 ;$00B1 34
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO: 4) Modo Direto: Operando na faixa de endereço:
0x0000–0x00FF, são mais eficientes e rápidos.
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
5) Modo Estendido: Operando na faixa até 0x00100 – 0xFFFF (64 Kbytes).
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
6) Modo Indexado a H:X (16 bits) com 5 variações e 2 indexado ao SP como referência de base. A indexação pelo SP facilita o acesso indexado aos valores armazenados na pilha e melhora dramaticamente a eficiência em linguagem C.
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
Descrição do HCS08/JM60 MODOS DE ENDEREÇAMENTO:
Descrição do JM60 Mapa de Memória
A memória On-chip na série MC9S08JM60 consiste de:RAM, flash, os registradores de controle/status e E/S.
Os registradores estão divididos em 3 grupos:
• Direct-page registers (0x0000 through 0x00AF)• High-page registers (0x1800 through 0x185F)• Nonvolatile registers (0xFFB0 through 0xFFBF)
Descrição do JM60 Mapas de Memória • Direct-page registers (0x0000 through 0x00AF)
Estes registradores estão localizados nas primeiras 176 posições do mapa de memória, portanto são acessados com instruções de modo direto.
• High-page registers (0x1800 through 0x185F)Os registradores de alta de página são usados com muito menos frequência (estão localizados acima 0x1800 no mapa de memória).Os registradores e variáveis mais usados ficam no espaço da página direta.
• Nonvolatile registers (0xFFB0 through 0xFFBF)A área de registradores não voláteis consiste de um bloco de 16 posições em memória flash para controle de segurança e opções de proteção bloco.
Descrição do JM60
Distribuição de módulos do microcontrolador HCS família JM60
Conceito Flexis A Freescale se tornou a primeira empresa
que desenvolveu máquinas de 8bits que podem migrar para máquinas de 32 bits.
Tem a filosofia de consumir a menor quantidade de tempo, energia e desenvolvimento mais curto.
Tudo emoldurado na estratégia denominada Controller Continuum.
A estratégia Controller Continuum visa a gradual migração da 8 bits para arquiteturas mais poderosas ColdFire ®, assim versões do V2 a V4.
A V1 versão pode ser chamado de "elo perdido", o que não é tão poderoso quanto versões posteriores, mas permite a migração gradual para máquinas mais complexas.
Conceito Flexis As aplicações nesta família podem migrar, com algumas
modificações da família ColdFire V1 ® de 32 bits para HCS08 e vice-versa.
A coisa interessante da migração, é o poder de expansão que podem ter projetos em 8 bits para arquiteturas de 32 bits num custo muito reduzido.
Nas migrações são considerados três aspectos: o esquema de utilização dos módulos, o mecanismo de interrupção, a distribuição de E/S, o mecanismo do relógio, entre outros.
Conceito Flexis Pela figura abaixo pode-se concluir como periféricos Freescale
são comuns num único pino para depuração e, tanto quanto possível as atribuições do mesmo pino para Máquinas de 8 e 32 bits. A diferença reside no acoplamento de núcleos diferentes.
Conceito Flexis O consumo é outro aspecto crucial para a tecnologia ao migrar 8-32 bits. Neste aspecto a Freescale foi bastante
cuidadosa e tem surpreendido com o mínimo diferencial de consumo entre máquinas FLEXIS .
Embora a arquitetura de 8 bits, em média, consome 22mA, arquiteturas de 32 bits consumirá em média 60,9 mA. Estes dados foram retirados na máxima performance um funcionamento do relógio de 48MHz.
CUIDADOS na MIGRAÇÃO O usuário deve tomar certas precauções ao migrar projetos com
tecnologia FLEXIS . Como já visto, a arquitetura do núcleo das máquinas são muito diferentes, embora tenham mantido muitas das características de periféricos do microcontrolador.
Algumas destas precauções estão listadas abaixo:1) Incompatibilidade de instruções de baixo nível: Devido à grande
diferença entre seus núcleos, não é aconselhável inserir como instruções de linhas de código de programa assembly.Se um programa exige a inclusão de instruções de baixo nível, o usuário deve fazer a conversão para a nova montadora. Mas na medida do possível,recomendamos eliminar código de baixo nível e substituí-lo com as instruções em C / C + +. Por exemplo:Ao invés de usar a instrução do HCS08:
Asm: BSET 0 , PTADDMelhor usar:PTADD0 = 1;
CUIDADOS na MIGRAÇÃO2) Processos de exceções e vetorização de interrupções de periféricos: Os vetores de interrupções de ambas as máquinas não são diretamente compatíveis, porque o número de interrupções não são iguais.Outra alternativa é consultar o arquivo que está redefinindo o nome, e o número do microcontrolador a ser utilizado (PEJ: MCF51JM128.h), o qual está localizado na pasta Include do projeto. Por exemplo, o vetor da interrupção do módulo RTC na máquina MC9S08JM60 é 29, cujo equivalente em MCF51JM128 é de 91.
CUIDADOS na MIGRAÇÃO3) Mapas de memória compatíveis: Observar que ao compartilhar os endereços da memória, as declarações absolutas não funcionam. Os locais e tamanhos diferentes tipos de memória são controlados pelo LINKER.Um exemplo de uma declaração inadequada para uma variável na memória é:
int var @ 0x400 = 1;
Neste caso, ambas as arquiteturas iriam interpretá-los diferentes por ser do tipo absoluto.Uma solução seria usar uma declaração como: int var = 1;
CUIDADOS na MIGRAÇÃO Mas há uma relação entre a localização dos registros de
configuração de memória de periféricos controlada pela seguinte relação:Registo periférica endereço de 8 bits = Endereço do registrador de 32 bits periféricos + 0xFFFF8000
Por exemplo:Para S08JM60: TPM1SC = 0x0020Para 51JM128: TPM1SC = 0xFFFF8000 + 0x0020 =0xFFFF8020
CUIDADOS na MIGRAÇÃO O compilador CodeWarrior permite diretiva:
# pragma : seleciona uma opção do compilador.
Por exemplo:# Pragma warn_absolute on / / gerar um relatório de todos os / / declarações absolutos
/ / encontrados;
# Pragma relatório check_asm / / gerar um relatório de todas
/ / as instruções em formato de
/ / assembly;
CUIDADOS na MIGRAÇÃO4) Tempo de Execução diferente:
Por motivos óbvios, a máquina de 32 bits é mais veloz que a máquina de 8 bits.
Portanto, é necessário ter em conta as definições de velocidade, devido a atrasos e temporizações no interior dos programas.
MC9S08QG e MC9S08JM60 Mapa de memória
JM60/JM128 Mapa de Memória
Tabela Flexis JM60/128
Tabela Flexis JM60/128
Tabela Flexis JM60/128
Família de Microcontroladores32-bit ColdFire ® V1
Devido à saturação das capacidades e desempenho das máquinas e 816 bits, para algumas aplicações, as empresas Atmel, Freescale, Renesas, a STMicroelectronics, a Oki, incluindooutros estão desenvolvendo soluções em 32-bit de baixo custo e baixo consumo.
Família de Microcontroladores32-bit ColdFire ® V1
Perguntas:
1)O que são modos de endereçamento? Cite algumas.2) O que é Controller Continuum?3) Por que não é possível escrever em Assembly para o JM60 e usar também no JM128? O que se deve fazer?4) Por que os fabricantes estão desenvolvendo soluções em 32-bit de baixo custo e baixo consumo?5) Quais os cuidados que devem ser tomados ao migrar de 8 para 32 bits na familia JM?6) O JM128 é mais veloz que o JM60? Teste isto através de um programa.