RTC Real Time Counter e Pinos do JM60 Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Profa. Eduardo Henrique Couto
Tópicos da aula: Modos de baixo consumo; RTC; Pinos do JM60; Pinos I/O de propósito geral; Configuração e prioridade de pinos; Perguntas
RTC Real Time Counter Modos de Baixo Consumo:
RTC Real Time Counter
RTC Real Time Counter O RTC consiste em: Um contador de 8-bit (RTCCNT); Um módulo de 8-bit (RTCMOD); Um comparador 8-bit; Divisor de prescaler; Três fontes de clocks: 1) 1 khz internal low-power oscillator (LPO) 2) External clock (ERCLK) 3) 32 khz internal clock (IRCLK); Período de Interrupção programável.
RTC Real Time Counter
RTC Real Time Counter Aplicação: Relógio, calendário, ou função de scheduling de tarefas, acordar (wake up) de um modo de baixo consumo sem necessidade de componentes externos).
RTC Real Time Counter - RTCSC RTCPS: Real-Time Clock Prescaler Select. Estes 4 bits selecionam o fator de divisão do clock da fonte; Um Reset limpa RTCPS. RTIE: Real-Time Interrupt Enable. Habilita interrupção de RTC. Se RTIE está setado, então uma interrupção é gerado quando RTIF é setado. Um Reset limpa RTIE. 0 Solicitação de interrupção por RTC desabilitado; 1 Solicitação de interrupção por RTC habilitado;
RTC Real Time Counter - RTCSC RTCLKS: Real-Time Clock Source Select. Estes 2 bits seleciona a fonte do clock; Ao trocar a fonte reseta o contador RTCCNT; Um Reset limpa RTCLKS. 00 - Real-time clock source is the 1-kHz low power oscillator (LPO) 01 - Real-time clock source is the external clock (ERCLK) 1x - Real-time clock source is the internal clock (IRCLK) RTIF:Real-Time Interrupt Flag Este bit indica que o contador RTCCNT atingiu o valor do módulo RTCMOD. Escrever 0 neste bit não tem efeito, mas ao escrever 1 limpa o bit e a solicitação de interrupção; Um Reset limpa RTIF. 0 O Contador RTCCNT não atingiu o RTCMOD; 1 O Contador RTCCNT atingiu o RTCMOD;
RTC Real Time Counter Período do prescaler:
RTC Real Time Counter Exemplo de Aplicação:
RTC Real Time Counter REGISTRADORES PARA SEREM CONFIGURADOS: 1) RTCSC 2) RTCMOD
RTC Real Time Counter #include <hidef.h> /* for EnableInterrupts macro */ #include "derivative.h" /* include peripheral declarations */ // macros e definições #define Desabilita_COP() SOPT1 &= 0x3F // desabilita COP void main(void) { Desabilita_COP(); PTED = 0xFF; // desliga leds PTEDD = 0xFF; // configura para saidas // configura a Interrução de timer RTC RTCSC = 0x1F; // 1 seg Interrupção habilitada EnableInterrupts; /* enable interrupts */ for(;;) { } /* loop forever */ /* please make sure that you never leave main */ }
RTC Real Time Counter interrupt VectorNumber_Vrtc void ISR_RTC(void) { RTCSC_RTIF = 1; // reseta flag do RTC PTED = ~PTED; }
Pinos do JM60 Observações: 1) São 7 Portas (Porta A, Porta B, Porta C...); 2) 51 pinos de propósito geral; 3) Muitos pinos são compartilhados com funções periféricas;
Pinos do JM60
Pinos do JM60 Observações: 1) O circuito do cristal externo não é necessário se é utilizado o clock interno do MCG. (Exceto para operação do USB que o cristal externo é obrigatório!). 2) XTAL e EXTAL são os mesmos pinos do PTG4 e PTG5. 3) OS filtros RC no RESET e IRQ são recomendados para aplicações sensíveis à IEM.
Pinos I/O de Propósito geral Pode-se utilizar os pinos como pinos I/O ou como funções periféricas; Quando se configura um pino como periférico, o função I/O é desativada; Depois do reset, todos os pinos são reconfigurados como funções I/O. (Funções periféricas desabilitadas). Pinos I/O por padrão são considerados como entrada (sujeito à influência EM e pino flutuante).
Pinos I/O de Propósito geral Pode-se utilizar os pinos como pinos I/O ou como funções periféricas; Quando se configura um pino como periférico, o função I/O é desativada; Depois do reset, todos os pinos são reconfigurados como funções I/O. (Funções periféricas desabilitadas). Pinos I/O por padrão são considerados como entrada (sujeito à influência EM e pino flutuante).
Configuração dos pinos GP I/O Registradores de I/O: PTxD PTxDD Leitura/Escrita de dados; Direção dos dados (Entrada ou saída); Registradores de controle: PTxPE Habilitação do resistor de Pullup (Input) PTxSE Habilitação do controle de slew rate (output) PTxDS Habilitação de máxima corrente drenada. (desabilitado por padrão).
Configuração dos pinos GP I/O PTADD 0 Entrada. 1 Saída.
Configuração dos pinos GP I/O PTAD Se a porta é selecionada como entrada (PTADDx = 0), um valor é recebido pelo pino correndente x. Se a porta é selecionada como saída (PTADDx = 1), o pino recebe a ultima informação escrita no registrador e disponibiliza no pino correpondente.
Configuração dos pinos GP I/O PTAPE 0 Pullup desabilitado; 1 Pullup habilitado; Nota: Se pino marcado como saída, registrado PTxPE não tem influência.
Configuração dos pinos GP I/O PTASE 0 Controle de slew rate desabilitado; 1 Controle de slew rate habilitado; Nota: Se Pino marcado como entrada, registrado PTxSE não tem influência.
Configuração dos pinos GP I/O Para as demais portas o processo é o mesmo, entretanto deve-se ficar atento ao fato que algumas portas contêm mais de 6 pinos. Ex. Porta B: PTBD
Perguntas 1. Quais são os principais modos de baixo consumo do JM60. Explique sucintamente cada um deles. 2. Explique o funcionamento do módulo RTC. 3. Suponha que se queira uma interrupção a cada 16ms utilizando-se o clock interno de 32kHz. Qual deve ser o valor do registro RTCPS e RTCLKS do registrador RTCSC, para que essa escala de tempo seja possível? 4. Quantos pinos de propósito geral (I/O) há no JM60 com 64 pinos? Quais os principais cuidados devem ser levados em conta na inicialização dos pinos? 5. Defina os registradores PTxSE e PTxPE.