Você está na página 1de 96

Universidade Federal de Santa Maria Departamento de Processamento de Energia Eltrica Engenharia de Controle e Automao

MICROCONTROLADORES
Perifricos
Prof. Carlos Henrique Barriquello barriquello@gmail.com

Objetivos
Compreender como feita a interface entre microcontrolador e o mundo externo

Microcontroladores

Tema e contedo
UNIDADE 3 MODOS DE ENTRADA E SADA
3.1 3.2 3.3 3.4 Modos de I/O. Barramento. Dispositivos perifricos. Interrupes.

Microcontroladores

Displays (mostradores)
Display de 7 segmentos
Uso em mostradores numricos e alfanumricos

Microcontroladores

Displays (mostradores)

Microcontroladores

Displays (mostradores)
Cada segmento controlado por um pino

Microcontroladores

Sinal de clock
O mdulo interno de gerao de clock (ICG) utilizado para gerar o clock do microcontrolador

Microcontroladores

Sinal de clock
Vrias possibilidades de fonte primria para o clock:
Cristal ou ressonador entre 32 kHz e 100 kHz Cristal ou ressonador entre 1 MHz e 16 MHz Clock Externo Gerador de referncia interna

A configurao padro do modulo ICG utiliza a referncia interna de clock. Possui FLL (Frequency-locked loop) para gerar clock de barramento entre 4 MHz e 25 MHz
Microcontroladores 8

Sinal de clock
Configurao

Microcontroladores

Sinal de clock

Microcontroladores

10

Temporizador (TPM)
Existem trs funes principais para o mdulo temporizador de um microcontrolador:

Estouro de Tempo Modo Captura de Entrada PWM (Modulao por largura de pulso)
Microcontroladores 11

Estouro de Tempo
Esta funo do perifrico de temporizao possibilita criar tempos determinados para um certa tarefa ser realizada.
Ex: Contagem de tempo de um relgio, atualizao de display, varredura de portas, etc

A configurao dessa funo realizada atravs dos registradores TPMxSC, TPMxMODH e TPMxMODL.
Alguns microcontroladores possuem mais de um mdulo temporizador. Neste caso, o X deve ser substitudo pelo nmero do mdulo TPM. Ex.: TPM1SC, TPM2SC,
Microcontroladores 12

Estouro de Tempo
Registradores TPMxSC, TPMxMODH e TPMxMODL.

Microcontroladores

13

Estouro de Tempo
Registrador TPMxSC

O VALOR CONTADO PELO TEMPORIZADOR FICA ARMAZENADO EM TPMxCNT (TPMxCNTH:TPMxCNTL)


Microcontroladores 14

Estouro de Tempo
Registradores TPMxMODH e TPMxMODL.
O valor contado fica armazaenado em TPMxCNT (TPMxCNTH:TPMxCNTL)

TPMxCNT comparado com TPMxMOD

Quando TPMxCNT == TPMxMOD, bit TOF = 1 TOF Timer overflow


15

Microcontroladores

Estouro de Tempo
Exemplo

Microcontroladores

16

PWM
Modulao por largura de pulso:

Razo cclica: razo entre tempo que o sinal permanece alto (lgico 1) pelo tempo total de um perodo
Microcontroladores 17

PWM assimtrico
TPWM

Perodo

Comparador Contador

Sinal de sada

Microcontroladores

18

PWM simtrico
TPWM

Perodo Comparador Contador

Sinal de sada
Interrupes

Microcontroladores

19

PWM
Exemplos de aplicaes:
Controle de intensidade (ex.: brilho de um LED) Sintetizao de sinais analgicos (ex.: um sinal senoidal) Controle de mquinas, motores, conversores, etc...

Microcontroladores

20

PWM
Princpio: Variao do valor mdio de tenso

Microcontroladores

21

PWM
Frequncia do PWM perodo de contagem

Canais de PWM

Microcontroladores

22

Canais de PWM

Cada TPM pode ter vrios canais!

Microcontroladores

23

Configurao de PWM

Microcontroladores

24

Configurao de PWM

Microcontroladores

25

Registradores de PWM
Registradores do temporizador:
Controle : TPMxSC Contador : TPMxCNT Perodo (mdulo) : TPMxMOD

Mais registradores de configurao dos canais:


Controle: TPMxCnSC Comparador: TPMxCnV Pino de sada: TPMxCHn

Microcontroladores

26

Captura de entrada
Neste modo, quando ocorre uma borda de descida, borda de subida ou ambas (dependendo da configurao), o microcontrolador copia o contedo do registrador de contagem TPMxCNTH:TPMxCNTL para os registradores do canal, TPMxCnVH:TPMxCnVL Exemplos de aplicao: Decodificao de tempos em controles RF, determinao de velocidade atravs de sensores na roda, etc.
Microcontroladores 27

Captura de entrada

Um evento de captura de entrada seta o bit CHnF e pode, opcionalmente, gerar uma interrupo.

Microcontroladores

28

Teclado

As chaves mecnicas normalmente apresentam a configurao demonstrada ao serem conectadas ao pino de um microcontrolador
Microcontroladores 29

Teclado

O resistor de pull-up fora um nvel lgico alto no pino do microcontrolador configurado como entrada. Caso este resistor no seja utilizado, o pino do microcontrolador fica sujeito a rudos.
Microcontroladores 30

Teclado

Microcontroladores

31

Teclado

Pinos de teclado so identificados por KBIxPn


Microcontroladores 32

Teclado

Microcontroladores

33

Teclado

Microcontroladores

34

Teclado

Microcontroladores

35

Teclado

Pode dar vrias interrupes falsas !!!!

Microcontroladores

36

Teclado

As chaves mecnicas esto sujeitas a vibraes que podem resultar em mltiplos sinais de acionamento falsos.
Microcontroladores 37

Teclado
Usando um temporizador possvel filtrar as falsas interrupes !!!! (deboucing)

Microcontroladores

38

Teclado

Microcontroladores

39

Teclado matricial

Microcontroladores

40

Teclado matricial

Microcontroladores

41

Teclado matricial

Microcontroladores

42

Teclado matricial

Microcontroladores

43

Teclado matricial

Microcontroladores

44

Conversor analgico-digital (A/D)


Os sinais encontrados no mundo real so contnuos (ou analgicos, pois variam no tempo de forma contnua), como, por exemplo: a intensidade luminosa de um ambiente que se modifica com a distncia, a acelerao de um carro de corrida, a temperatura em um ambiente, etc.

Microcontroladores

45

Conversor analgico-digital (A/D)


Entretanto, os processadores manipulam dados no formato digital (numrico), os quais devem ser representados por um nmero finito de bits.

Microcontroladores

46

Conversor analgico-digital (A/D)


A converso analgico-digital (A/D) o processo que possibilita a representao de sinais analgicos no mundo digital. Desta forma possvel utilizar os dados extrados do mundo real para clculos ou operar seus valores.

Microcontroladores

47

Conversor analgico-digital (A/D)

Em um conversor A/D, entra um sinal analgico e sai um sinal digital, a cada intervalo fixo de tempo.
Microcontroladores 48

Conversor analgico-digital (A/D)


A informao digital diferente de sua forma original contnua em dois aspectos fundamentais:
amostrada porque baseada em amostragens, ou seja, so realizadas leituras em um intervalo fixo de tempo no sinal contnuo; quantizada porque atribudo um valor proporcional a cada amostra.
Microcontroladores 49

Conversor analgico-digital (A/D)

Para cada faixa de valores do sinal analgico corresponde um valor digital


Microcontroladores 50

Conversor analgico-digital (A/D)

A um intervalo fixo mede-se o valor do sinal analgico.


Microcontroladores 51

Conversor analgico-digital (A/D)


Caractersticas importantes de um conversor A/D:
Freqncia de amostragem (Hertz - Hz)
Define o intervalo de tempo entre amostras consecutivas

Resoluo (nmero de bits)


Define a capacidade de representao do valor quantizado em um valor numrico.

Microcontroladores

52

Conversor analgico-digital (A/D)

Microcontroladores

53

Conversor analgico-digital (A/D)

Microcontroladores

54

Conversor analgico-digital (A/D)

Microcontroladores

55

Conversor analgico-digital (A/D)

Mtodo de aproximao sucessiva


Microcontroladores 56

Conversor A/D HCS08


Cada microcontrolador normalmente possui um conversor A/D (pode ter mais). Este conversor compartilhado por diversas entradas analgicas (canais) Porm apenas um canal pode ser convertido de cada vez (usa-se um MUX).

Microcontroladores

57

Conversor A/D HCS08

Microcontroladores

58

Conversor A/D HCS08


Caractersticas do mdulo A/D:
Algoritmo de aproximao linear sucessiva com resoluo de 12 bits at 28 entradas analgicas Sada formatada em 12, 10 ou 8 bits com formao justificado a direita

Microcontroladores

59

Conversor A/D HCS08


Caractersticas do mdulo A/D:
Converso simples ou contnua Tempo de amostragem configurvel Configurao para velocidade ou baixo consumo de energia

Microcontroladores

60

Conversor A/D HCS08


Caractersticas do mdulo A/D:
Interrupo associada ao final de uma converso Fonte de clock assncrono para operao com baixo nvel de rudo Registrador de comparao com interrupo associada
Microcontroladores 61

Conversor A/D HCS08

Microcontroladores

62

Conversor A/D HCS08

Microcontroladores

63

Registradores
Status and control register, ADCSC1 Status and control register, ADCSC2 Data result registers, ADCRH and ADCRL Compare value registers, ADCCVH and ADCCVL Configuration register, ADCCFG Pin enable registers, APCTL1, APCTL2, APCTL3
Microcontroladores 64

Conversor A/D HCS08

COCO (Conversion Complete Flag) AIEN (Interrupt Enable) ADCO (Continuos Conversion Enable) ADCH (Input Channel Select)
Microcontroladores 65

Microcontroladores

66

Conversor A/D HCS08

Microcontroladores

67

Conversor A/D HCS08

Microcontroladores

68

Programando o Conversor A/D

Microcontroladores

69

Comunicao serial (SCI)


Comunicaes de dados seriais so muito empregadas em sistemas com microcontroladores, pois permitem usar um nmero menor de pinos do que as comunicaes paralelas.

Microcontroladores

70

Comunicao serial (SCI)


Comunicaes seriais podem ser:
Assncronas (ex.: UART) Sncronas (ex.: SPI e I2C)

A diferena est no uso de um sinal adicional de sincronizao (clock)

Microcontroladores

71

Comunicao serial assncrona


Comunicaes serial assncrona:
Tambm chamada UART: Transmissor / Receptor Universal Assncrono (Universal Asynchronous Receiver/Transmitters) Tipicamente, so utilizados para conectar portas de entrada / sada RS232 de um computador (PC), mas tambm podem ser utilizados para comunicar com outros dispositivos embarcados.

Microcontroladores

72

Comunicao serial RS-232

Microcontroladores

73

Comunicao de dados seriais


Dados binrios (0s e 1s) so transmitidos e recebidos serialmente (isto , um de cada vez, seqencialmente)

Geralmente, a informao transmitida/recebida byte a byte


Microcontroladores 74

Comunicao serial UART


As UARTs se entendem por seguir um protocolo.

O protocolo das UARTs define que cada mensagem (quadro) inicia um bit de incio (start bit) e termina com um bit de fim (stop bit)
Microcontroladores 75

Comunicao serial UART


O start bit tem sempre o valor lgico zero (0) e o stop bit tem valor lgico um (1) Aps o start bit so transmitidos os bits de dados (que formam o byte) Opcionalmente, pode-se transmitir um bit de verificao (bit de paridade)

Microcontroladores

76

Comunicao serial UART


Na comunicao UART cada bit tem uma durao pr-estabelecida. Contando-se o tempo de bit, pode-se determinar o valor de cada bit (0 ou 1)

Microcontroladores

77

Comunicao serial UART


Em sistemas de comunicao de dados, smbolos (bauds) representam um ou mais bits. O tempo de durao do smbolo define a taxa de smbolos (baudrate) E o tempo de cada bit define a taxa de bits (bitrate)
Microcontroladores

78

Comunicao serial UART


Smbolo (baud) o sinal fsico (p. ex.: sinal eltrico com tenso igual a 5V) Bit o dado lgico (p.ex.: smbolo de 5V de tenso representa o bit lgico 1) Nas UARTs cada 10 (ou 11) smbolos comunicam 8 bits (geralmente, um byte)

Microcontroladores

79

Comunicao serial UART


O tempo de smbolo (baudrate) controlado pelo perifrico de comunicao SCI do microcontrolador.
A SCI possui um gerador de baud rate flexvel de 13 bits, que suporta baudrates de at 115,2 kbps. A transmisso (Tx) e a recepco (Rx) dentro de um mesmo mdulo SCI utilizam o mesmo baudrate. Cada mdulo SCI possui um gerador de Microcontroladores baudrate separado.
80

Comunicao de dados seriais

Microcontroladores

81

Comunicao serial SCI

Microcontroladores

82

Programando a SCI
Os mdulos SCI do HCS08 possuem 8 registradores.
2 reg. para configurar baudrate (SCIxBDH, SCIxBDL) 3 reg. de configurao de opes (ex.: interrupes, erros, ...) (SCIxC1, SCIxC2) 2 reg. de estado (ex.: flags) (SCIxS1, SCIxS2) 1 reg. de dados (SCIxD) (escrita p/ TX e leitura p/ RX)

Microcontroladores

83

Programando a SCI
Para configurar baudrate (SCIxBDH, SCIxBDL)

Microcontroladores

84

Programando a SCI
Para configurar o baudrate, 13 bits (SCIxBDH[12:8], SCIxBDL[7:0]) definem o valor de BR que ser usado como divisor do clock de barramento.

Microcontroladores

85

Programando a SCI
Dicas:
BR = 0, desabilita o mdulo SCI Dificilmente iremos conseguir baudrates exatos. Porm, existe uma tolerncia de at 3,5% no baudrate gerado. Com o intuito de minimizar os erros de TX/RX interessante evitar erros maiores que 2% no baudrate.
Microcontroladores 86

Exemplo de programao da SCI


Parmetros:
Clock de barramento igual a 20MHz Paridade par 9 bits de tamanho de caractere (devido paridade) Interrupo de recepo Interrupo de erros ativa Baudrate 57600 bps.
Microcontroladores 87

Exemplo de programao da SCI


Configurao da SCI

Microcontroladores

88

Exemplo de programao da SCI


Configurao da SCI

Microcontroladores

89

Exemplo de programao da SCI

Microcontroladores

90

Exemplo de programao da SCI

Microcontroladores

91

Exemplo de programao da SCI

Microcontroladores

92

Exemplo de programao da SCI

Microcontroladores

93

Exemplo de programao da SCI

Microcontroladores

94

Tabela ASCII

Usada para codificar smbolos em nmeros de 8 bits Microcontroladores

95

Bibliografia e sugestes de leitura


Tutoriais para aplicaes prticas com microcontrolador de 8 bits HCS08 (fabricado pela empresa Freescale):
Apostilas do prof. Gustavo Denardin. Disponvel em:

http://pessoal.utfpr.edu.br/gustavo/
Tutorial para programao de microcontroladores Freescale HCS08 baseado no MC9S08AW60.

http://pessoal.utfpr.edu.br/gustavo/tutorial_MC9S08A W60.pdf Apostila de Microcontroladores. http://pessoal.utfpr.edu.br/gustavo/apostila_micro.pdf


Microcontroladores 96