Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

Documentos relacionados
Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

Plano de Aula. 1 o semestre. Aula número 010 Interrupções Internas Timers. Uso de interrupções internas produzidas pelos timers

Grupo de Robótica Experimental do Instituto Militar de Engenharia. Microcontroladores STM32 ARM Cortex-M3 Aula 04 Periféricos II

RTC Real Time Counter e Pinos do JM60

Sistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos

DIAGRAMA DE BLOCOS PINAGEM

Revisão Linguagem C Parte 1

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial

Real Time Clock MC146818A,DS12C887

Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Electrónica e Telecomunicações e de Computadores

Sistemas Embarcados:

Sistemas Digitais e Microcontrolados

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 7

ENG-1450 Microcontroladores e Sistemas Embarcados. Lab02 Apresentação Kit PicGenios Interrupção e Timers

Sistemas Microprocessados

Programação ARM. Engenharia de Sistemas Embarcados Prof. Abel Guilhermino

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

EXPERIÊNCIA 4: IMPLEMENTAÇÃO DE UM CRONÔMETRO

Sistemas Digitais e Microcontrolados

2. A influência do tamanho da palavra

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

Aplicações para Sistemas Embebidos 2006/2007 1º Exame, 6 de Janeiro de 2007

MICROCONTROLADORES 2 EL08D - TURMA M12

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2016

Linguagem C Princípios Básicos (parte 1)

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

FCA - Editora de Informática xv

Interrupções Externas

Programação em C Aplicações de Microprocessadores 2006/2007

Transmitter MISO MOSI SCLK

Sistemas Microcontrolados

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 8

Interrupções do Interrupções Gabriel Kovalhuk. UTFPR DAELN - Tecnologia em Mecatrônica Industrial

PSI3441 Arquitetura de Sistemas Embarcados

4.3 - DMA & Chipset. CEFET-RS Curso de Eletrônica. Profs. Roberta Nobre & Sandro Silva. e

Escola Secundária de Emídio Navarro

Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs)

Escola Secundária de Emídio Navarro

LINGUAGEM C PARA O 8051

Inicialmente a IBM (1981) disponibilizou uma porta paralela para ligação a impressoras (lentas)

Sistemas Digitais e Microcontrolados

William Stallings Computer Organization and Architecture

SSC510 Arquitetura de Computadores 1ª AULA

Microprocessadores Tópicos Esp. em Eletrônica Industrial

LABORG. VHDL Projeto cronômetro

Escola Secundária de Emídio Navarro

Escola Secundária de Emídio Navarro

Aula 11. Prof. Laura Silva de Assis. Engenharia da Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29

Acetatos de apoio às aulas teóricas

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira

Organização e Arquitetura de Computadores

Unidade Central de Processamento UCP (CPU)

William Stallings Organização de computadores digitais. Capítulo 14 Operação da Unidade de Controle

AJProença, Sistemas de Computação, UMinho, 2017/ ou + Unidades (Centrais) de Processamento (CPU)

EXPERIÊNCIA 5: IMPLEMENTAÇÃO DE UM CRONÔMETRO COM INTERRUPÇÃO

Jadsonlee da Silva Sá

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

MICROCONTROLADORES NO RADIOAMADORISMO

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2016

PROJETOS DE TÓPICOS ESPECIAIS 2º SEMESTRE 2015 Professor Dr. Amauri Amorin Assef. Iniciar enviando os caracteres para escrever UTFPR na tela do PC:

Microprocessadores Tópicos Esp. em Eletrônica Industrial

Memórias. EL68E Sistemas Embarcados. Tecnologias de Memórias. Conceitos. Profs. Douglas Renaux e Hugo Vieira Neto

Tutoriais PET-Tele. Introdução à Amostragem de Sinais com o kit Arduino (Versão: A2016M06D21)

SISTEMAS EMBARCADOS. Programação Concorrente e CMSIS RTOS. Prof. André Schneider de Oliveira

Circuitos sequenciais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture

HardFlex 4VFI e 2 VFO

Universidade Federal do ABC

SISTEMAS DIGITAIS II Enunciado do Projecto

Microcontroladores. Contadores e Temporizadores. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Curso de Microcontroladores PIC 16F84A

EL68E Sistemas Embarcados Prof. Douglas RENAUX

Sistemas Microcontrolados

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

EPUSP PCS 2011/2305/2355 Laboratório Digital. Freqüencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Sistemas de Entrada e Saídas III

Interrupções e Timers

Desenvolvimento de uma Interface de Aquisição e Controle de Dados

FEI PROVA P1 SISTEMAS DIGITAIS II - NE /04/ TURMA A - Duração 80 min Sem Consulta Interpretação faz parte da prova. N.

EPAC Microcontroladores Organização do curso 30/8/2007

Trabalho Prático Nº8 Aplicação USB

CONTADORES DIGITAIS (Unidade 6)

Sistemas Operacionais de Tempo Real - Teclados Matriciais

Algoritmos Computacionais

LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS II. Filtros FIR utilizando matlab e arduino duo LAB 1 (LPF)

18/10/2010. Unidade de Controle Controle. UC Microprogramada

Organização e Arquitetura de Computadores I

INTRODUÇÃO: MICROCONTROLADORES

Plano de Aula. 1 o semestre. Cronômetro Interrupções, Timers. Utilizar interrupções para criar um cronômetro com parciais

Ex.: Rotinas de tempo

NOTAS DE AULA NE7720 SISTEMAS DIGITAIS - II AULA

Transcrição:

Sistemas Embebidos I Licenciatura em Eng. de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores Mestrado em Engenharia de Electrónica e Telecomunicações

1. Conceito e utilizações mais comuns To be completed 2

3

Características principais Disponibiliza a funcionalidade de relógio Informação de hora, minutos e segundos Disponibiliza a funcionalidade de calendário Informação de ano, mês, dia do mês, dia da semana e dia do ano Possibilidade de definição de alarmes para todos os campos Possibilidade de sinalização de eventos ao processador recorrendo a interrupção Funcionamento baseado em sinal de relógio com frequência de 32,768 khz Utiliza PCLK como sinal de relógio de referência Definição da frequência do sinal de relógio interno recorrendo a um prescaler fracionário Pode usar sinais de relógio com frequências no intervalo 65,536kHz PCLK 160 MHz Não permite funcionamento autónomo Perda total de informação no corte de energia Erros na medição do tempo aquando da alteração do sinal PCLK 4

Diagrama de blocos 5

Frequência do sinal de relógio interno A contagem de tempo realizada pelo RTC é baseado num sinal de relógio de frequência 1Hz, obtido a partir de um sinal de relógio de referência com frequência 32,768Khz. Este sinal de referência é gerado pelo módulo prescaler a partir do sinal PCLK, o que permite o correto funcionamento do RTC independentemente da frequência escolhida para CCLK. O prescaler implementa um processo de divisão fracionário, em que as partes inteira (PREINT) e fracionária (PREFRAC) do divisor são definidas como: PREINT = (PCLK / 32768) - 1; PREFRAC = PCLK ( (PREINT + 1) 32768 ). 6

Interface de programação/utilização 7

Interface de programação/utilização :: Grupo de Registos Genéricos Interrupt Location Register (ILR) Permite definir os módulos que geram notificações por interrupção ao processador. É acedido a partir do endereço 0xE0024000 para leitura e escrita de valores. Após o reset do microcontrolador, mantém os valores anteriormente definidos.. 8

Interface de programação/utilização :: Grupo de Registos Genéricos Clock Tick Counter Register (CTCR) Disponibiliza o valor do contador divisor do sinal de relógio, cuja saída serve de base à atualização do valor dos segundos do relógio implementado pelo RTC. É acedido a partir do endereço 0xE0024004 apenas para consulta do seu valor. Pode ser reiniciado com o valor 0x0 por alteração do estado do registo CCR. Após o reset do microcontrolador, mantém os valores anteriormente definidos.. 9

Interface de programação/utilização :: Grupo de Registos Genéricos Clock Control Register (CCR) Permite controlar a operação do divisor do sinal de relógio e, consequentemente, do RTC. É acedido a partir do endereço 0xE0024008 para leitura e escrita de valores. Após o reset do microcontrolador, mantém os valores anteriormente definidos.. Nota: O campo Test deve tomar o valor 0x0 para que o RTC funcione no modo Normal. 10

Interface de programação/utilização :: Grupo de Registos Genéricos Counter Increment Interrupt Register (CIIR) Permite habilitar/inibir os pedidos de interrupção ao processador, aquando da atualização de um dos contadores do RTC. Os pedidos de interrupção mantêm-se ativos até a sua deteção ser sinalizada, o que corresponde a escrever o valor lógico 1 no bit associado ao módulo correspondente do registo ILR. É acedido a partir do endereço 0xE002400C para leitura e escrita de valores. Após o reset do microcontrolador, mantém os valores anteriormente definidos. 11

Interface de programação/utilização :: Grupo de Registos Genéricos Alarm Mask register (AMR) Permite habilitar/inibir os pedidos de interrupção ao processador associados a alarmes. Os pedidos de interrupção são gerados aquando da ativação do alarme e desde que estejam habilitados, i.e. o valor lógico do bit correspondente ao alarme seja 0. Os pedidos de interrupção mantêm-se ativos até a sua deteção ser sinalizada, o que corresponde a escrever o valor lógico 1 no bit associado ao módulo correspondente do registo ILR. É acedido a partir do endereço 0xE0024010 para leitura e escrita de valores. Após o reset do microcontrolador, mantém os valores anteriormente definidos. 12

Interface de programação/utilização :: Grupo de Registos Genéricos Consolidated Time Registers (CTIMEx) Possibilitam a leitura de todos os registos com a informação horária e de calendário de forma compactada e recorrendo apenas a 3 operações de acesso à memória. Vantajosos para a obtenção dos dados de forma consistente. São acedidos na gama de endereços 0xE0024014-0xE002401C e apenas para leitura de valores. Após o reset do microcontrolador, mantém os valores anteriormente definidos. 13

Interface de programação/utilização :: Grupo de Registos de Contagem de Tempo SEC, MIN, HOUR, DOM, DOW, DOY, MONTH e YEAR Estes registos disponibilizam a informação horária e de calendário de forma isolada. São acedidos na gama de endereços 0xE0024020-0xE002403C para leitura e escrita de valores. Após o reset do microcontrolador, mantém os valores anteriormente definidos. 14

Interface de programação/utilização :: Grupo de Registos de Alarme ALSEC, ALMIN, ALHOUR, ALDOM, ALDOW, ALDOY, ALMONTH e ALYEAR Estes registos definem o valor a informação horária e de calendário de forma isolada. São acedidos na gama de endereços 0xE0024060-0xE002407C para leitura e escrita de valores. Após o reset do microcontrolador, mantém os valores anteriormente definidos. 15

Interface de programação/utilização :: Divisão do Sinal de Relógio Prescaler Integer Register (PREINT) Permite definir a parte inteira do divisor utilizado pelo prescaler para gerar o sinal de relógio interno do RTC. É acedido a partir do endereço 0xE0024080 para leitura e escrita de valores. Após o reset do microcontrolador, apresenta o valor 0x0. 16

Interface de programação/utilização :: Divisão do Sinal de Relógio Prescaler Fraction Register (PREFRAC) Permite definir a parte fracionária do divisor utilizado pelo prescaler para gerar o sinal de relógio interno do RTC. É acedido a partir do endereço 0xE0024084 para leitura e escrita de valores. Após o reset do microcontrolador, apresenta o valor 0x0. 17

Implementação de um gestor de periférico Modelo da interface do módulo RTC typedef struct { /* Miscellaneous Register Group */ LPC210X_REG ILR, CTC, CCR, CIIR, AMR; LPC210X_REG CTIME0, CTIME1, CTIME2; /* Time Counter Group */ LPC210X_REG SEC, MIN, HOUR; LPC210X_REG DOM, DOW, DOY, MONTH, YEAR; LPC210X_REG RESERVED[8]; /* Dummy */ /* Alarm Register Group */ LPC210X_REG ALSEC, ALMIN, ALHOUR, ALDOM, ALDOW, ALDOY, ALMON, ALYEAR; /* Reference Clock Divider */ LPC210X_REG PREINT, PREFRAC; } LPC210X_TC; #ifndef _LPC210X_H_ #define _LPC210X_H_ /*********************************************\ HARDWARE REGISTER DEFINITIONS \*********************************************/ typedef volatile unsigned int LPC210X_REG;... #endif /* _LPC210X_H_ */ 18

Implementação de um gestor de periférico Modelo da interface do módulo RTC #ifndef _LPC2106_H_ #define _LPC2106_H_ #include "lpc210x.h" /****************************************************************************\ CLOCK DEFINITIONS FOR LPC2106 \****************************************************************************/ #define LPC2106_MAIN_OSC 14745600 // Main Oscillator #define LPC2106_CCLK LPC2106_MAIN_OSC // Output PLL Clock #define LPC2106_PCLK LPC2106_CCLK/4 // Peripheral Clock /****************************************************************************\ BASE ADDRESS DEFINITIONS FOR LPC2106 \****************************************************************************/ #define LPC2106_BASE_TC0 ( *( (LPC210X_TC *) 0xE0004000) ) #define LPC2106_BASE_TC1 ( *( (LPC210X_TC *) 0xE0008000) ) #define LPC2106_BASE_RTC ( *( (LPC210X_RTC *) 0xE0024000) ) #define LPC2106_BASE_GPIO0 ( *( (LPC210X_GPIO *) 0xE0028000) ) #define LPC2106_BASE_PCB ( *( (LPC210X_PCB *) 0xE002C000) ) #endif /* _LPC2106_H_ */ 19

Implementação de um gestor de periférico API para utilização do módulo RTC #ifndef _RTC_H_ #define _RTC_H_ #include lpc210x.h #include lpc2106.h #include <time.h> /* Faz a iniciação do sistema para permitir o acesso ao periférico RTC, que é iniciado com os valores do parâmetro datetime. Nota: A struct tm está definida na biblioteca standard da linguagem C. */ void RTC_Init(struct tm *datetime); /* Devolve em datetime o valor corrente do RTC preenche a estrutura. */ void RTC_GetValue(struct tm *datetime); /* Atualiza os registos do RTC com os valores do parâmetro datetime. */ void RTC_SetValue(struct tm *datetime); #endif /* _RTC_H_ */ 20

Exemplo de utilização? #include rtc.h #include <time.h> void main() {? } /* main */ 21