Você está na página 1de 34

Microcontroladores

1. Introduo
Atualmente um grande nmero de microcontroladores, integrados em diversos equipamentos, exercem um papel importante no dia a dia das pessoas. Despertar ao som de um CD Player programvel, tomar caf da manh preparado por um microondas digital, e ir ao trabalho de carro, cuja injeo de combustvel microcontrolada, so apenas alguns exemplos. O mercado de microcontroladores apresenta-se em franca expanso, ampliando seu alcance principalmente em aplicaes residenciais, industriais, automotivas e de telecomunicaes. Segundo dados da National Semiconductor (1997), uma residncia tpica americana possui 35 produtos baseados em microcontrolador. Estima-se que, em 2010, em mdia uma pessoa interagir com 250 dispositivos com microcontroladores diariamente. Em um passado recente, o alto custo dos dispositivos eletrnicos limitou o uso dos microcontroladores apenas aos produtos domsticos considerados de alta tecnologia (televiso, vdeo e som). Porm, com a constante queda nos preos dos circuitos integrados, os microcontroladores passaram a ser utilizados em produtos menos sofisticados do ponto de vista da tecnologia, como mquinas de lavar, microondas, foges e refrigeradores. Assim, a introduo do microcontrolador nestes produtos cria uma diferenciao e permite a incluso de melhorias de segurana e de funcionalidade. Alguns mercados chegaram ao ponto de tornar obrigatrio o uso de microcontroladores em determinados tipos de equipamentos, impondo um pr-requisito tecnolgico. Muitos produtos que temos disponveis hoje em dia, simplesmente no existiriam, ou no teriam as mesmas funcionalidades sem um microcontrolador. o caso, por exemplo, de vrios instrumentos biomdicos, instrumentos de navegao por satlites, detetores de radar, equipamentos de udio e vdeo, eletrodomsticos, entre outros. Entretanto, o alcance dos microcontroladores vai alm de oferecer algumas facilidades. Uma aplicao crucial, onde os microcontroladores so utilizados, na reduo de consumo de recursos naturais. Existem sistemas de aquecimento modernos que captam a luz solar e, de acordo com a demanda dos usurios, controlam a temperatura de forma a minimizar perdas. Um outro exemplo, de maior impacto, o uso 1 Prof. Gustavo Weber Denardin

de microcontroladores na reduo do consumo de energia em motores eltricos, que so responsveis pelo consumo de, aproximadamente, 50% de toda eletricidade produzida no planeta. Portanto, o alcance dessa tecnologia tem influncia muito mais importante em nossas vidas, do que se possa imaginar. O universo de aplicaes dos microcontroladores, como j mencionado, est em grande expanso, sendo que a maior parcela dessas aplicaes em sistemas embarcados. A expresso sistema embarcado (do ingls embedded system) se refere ao fato do microcontrolador ser inserido nas aplicaes (produtos) e usado de forma exclusiva por elas. Como a complexidade desses sistemas cresce vertiginosamente, o software tem sido fundamental para oferecer as respostas s necessidades desse mercado. Tanto , que o software para microcontroladores representa uma fatia considervel do mercado de software mundial. Segundo Edward Yourdon (consultor na rea de computao, pioneiro nas metodologias de engenharia do software e programao estruturada) a proliferao dos sistemas embarcados, juntamente com o advento da Microsoft, so os responsveis pela retomada do crescimento da indstria de software nos Estados Unidos da Amrica.

2. Definio de Microcontrolador
Um microcontrolador um sistema computacional completo, no qual esto includos uma CPU (Central Processor Unit), memria de dados e programa, um sistema de clock, portas de I/O (Input/Output), alm de outros possveis perifricos, tais como, mdulos de temporizao e conversores A/D entre outros, integrados em um mesmo componente. As partes integrantes de qualquer computador, e que tambm esto presentes, em menor escala, nos microcontroladores so:

Unidade Central de Processamento (CPU) Sistema de clock para dar seqncia s atividades da CPU Memria para armazenamento de instrues e para manipulao de dados Entradas para interiorizar na CPU informaes do mundo externo Sadas para exteriorizar informaes processadas pela CPU para o mundo externo Programa (firmware) para definir um objetivo ao sistema

Prof. Gustavo Weber Denardin

2.1 Unidade Central de Processamento (CPU) A unidade central de processamento composta por uma unidade lgica aritmtica (ULA), por uma unidade de controle e por unidades de memria especiais conhecidas por registradores. Para que a CPU possa realizar tarefas necessrio que se agregue outros componentes, como unidades de memria, unidades de entrada e unidades de sada. A figura a seguir apresenta um diagrama de blocos com uma possvel interface entre a CPU e outros dispositivos.

A unidade de memria permite armazenar grupos de dgitos binrios que podem representar instrues que o processador ir executar ou dados que sero manipulados pelo processador. A unidade de entrada consiste em todos os dispositivos utilizados para obter informaes e dados externos ao processador. A unidade de sada consiste em dispositivos capazes de transferir dados e informaes do processador para o exterior. A ULA a rea de uma CPU na qual as operaes lgicas e aritmticas so realizadas sobre os dados. O tipo de operao realizada determinada pelos sinais da unidade de controle. Os dados a serem operados pela ULA podem ser oriundos de uma memria ou de uma unidade de entrada. Os resultados das operaes realizadas na ULA podem ser transferidos tanto para uma memria de dados como para uma unidade de sada. 3 Prof. Gustavo Weber Denardin

A funo da unidade de controle comandar as operaes da ULA e de todas as outras unidades conectadas a CPU, fornecendo sinais de controle e temporizao. De certa maneira, a unidade de controle como um maestro que responsvel por manter cada um dos membros da orquestra em sincronismo. Essa unidade contm circuitos lgicos e de temporizao que geram os sinais apropriados necessrios para executar cada instruo de um programa. A unidade de controle busca uma instruo na memria enviando um endereo e um comando de leitura para a unidade de memria. A palavra da instruo armazenada na posio de memria transferida para um registrador conhecido por registrador de instrues (RI) da unidade de controle. Essa palavra de instruo, que est de alguma forma de cdigo binrio, ento decodificada pelos circuitos lgicos na unidade de controle para determinar a instruo que est sendo invocada. A unidade de controle usa essa informao para enviar os sinais apropriados para as unidades restantes a fim de executar a operao especfica. Essa seqncia de busca de um cdigo de instruo e de execuo da operao indicada repetida indefinidamente pela unidade de controle. Essa seqncia repetitiva de busca/execuo continua at que a CPU seja desligada ou at que o RESET seja ativado. O RESET sempre faz a CPU buscar sua primeira instruo no programa. Uma CPU, tambm conhecida por processador, repete indefinidamente as mesmas operaes bsicas de busca e execuo. Naturalmente, os diversos ciclos de execuo sero diferentes para cada tipo de instruo medida que a unidade de controle envia sinais diferentes para as outras unidades de execuo de uma instruo em particular. Um registrador um tipo de memria de pequena capacidade porm muito rpida, contida na CPU, utilizado no armazenamento temporrio de dados durante o processamento. Os registradores esto no topo da hierarquia de memria, sendo desta forma o meio mais rpido e de maior custo para armazenar um dado. Cada registrador de um processador possui uma funo especial. Um dos mais importantes o contador de programa (program counter PC), que armazena os endereos dos cdigos das instrues medida que so buscadas da memria. Outros registradores so utilizados para realizar funes como: armazenamento de cdigos de instruo (RI), manuteno dos dados operados pela ULA (acumulador), armazenamento de endereos de dados a serem lidos na memria (ponteiro de dados), alm de outras funes de armazenamento e contagem. Todos os processadores possuem um registrador em especial muito utilizado chamado de acumulador ou registrador A. Ele 4 Prof. Gustavo Weber Denardin

armazena um operando para quaisquer instrues, lgica ou matemtica. O resultado da operao armazenado no acumulador aps a instruo ser executada. Para que exista comunicao entre as unidades que formam um processador devemos definir uma forma de conexo entre estas unidades. Em um processador tradicional com arquitetura Von Neuman este meio o barramento de dados. A largura do barramento de dados em bits o que determina o nmero de bits para um dado processador. A figura a seguir apresenta a interface dos principais dispositivos que compem um sistema microprocessado atravs de um barramento de dados.

A CPU o centro de todo sistema computacional, e no diferente quando se trata de microcontroladores. O trabalho da CPU executar rigorosamente as instrues de um programa, na seqncia programada, para uma aplicao especfica. Um programa computacional (software) instrui a CPU a ler informaes de entradas, ler e escrever informaes na memria de dados, e escrever informaes nas sadas. O diagrama de blocos simplificado da CPU presente nos microcontroladores da famlia HC08, tambm denominado de CPU08, apresentado na figura a seguir. Esta arquitetura de processador ser utilizada como modelo neste documento.

Prof. Gustavo Weber Denardin

As principais funes de cada um dos componentes da CPU08 sero apresentadas a seguir. Unidade Lgica/Aritmtica (ULA): A ULA utilizada para realizar operaes lgicas e aritmticas definidas no conjunto de instrues da CPU. Vrios circuitos implementam as operaes aritmticas binrias decodificas pelas instrues e fornecem dados para a execuo da operao na ULA. A maioria das operaes aritmticas binrias so baseadas em algoritmos de adio e subtrao (adio com o valor negativo). A multiplicao realizada atravs de uma srie de adies e deslocamentos com a ULA sob controle lgico da CPU. Controle da CPU: O circuito de controle da CPU implementa o sequeciamento de elementos lgicos necessrios para a ULA realizar as operaes requisitadas durante a execuo do programa. O elemento central da seo de controle da CPU o decodificador de instrues. Cada opcode (cdigo de instruo) decodificado para determinar quantos operandos so necessrios e qual seqncia de passos ser necessria para completar a instruo em curso. Quando uma instruo executada completamente, o prximo opcode lido e decodificado. 6 Prof. Gustavo Weber Denardin

Registradores da CPU: A CPU08 contm 5 registradores como apresentado na figura anterior. Os registradores da CPU so memrias especiais que no fazem parte do mapa de memria. O conjunto de registradores da CPU freqentemente chamado de modelo de programao. O acumulador, tambm chamado de registrador A, freqentemente utilizado para armazenar um dos operandos ou o resultado de operaes.

O registrador H:X um registrador de 16 bits de ndice que possibilita ao usurio enderear indiretamente o espao de memria de 64Kbytes. O byte mais significativo do registrador de ndice denominado H, e o byte menos significativo denominado X. Sua principal funo servir de apontador para uma rea na memria onde a CPU ir carregar (ler) ou armazenar (escrever) informao. Quando no estiver sendo utilizado para apontar um endereo na memria, ele pode ser utilizado como registrador genrico.

O registrador Program Counter (PC) usado pela CPU para controlar e conduzir ordenadamente a busca do endereo da prxima instruo a ser executada. Quando a CPU energizada ou passa por um processo de reset, o PC carregado com o contedo de um par de endereos especficos denominados vetor de reset (reset vector). O vetor de reset contm o endereo da primeira instruo a ser executada pela CPU. Assim que as instrues so executadas, uma lgica interna a CPU incrementa o PC, de tal forma que ele sempre aponte para o prximo pedao de informao que a CPU vai precisar. O nmero de bits do PC coincide exatamente com o nmero de linhas do barramento de endereos, que por sua vez determina o espao total disponvel de memria que pode ser acessada pela CPU. 7 Prof. Gustavo Weber Denardin

O registrador Condition Code (CCR) um registrador de 8 bits que armazena os bits de estado (flags) que refletem o resultado de algumas operaes da CPU. A instrues de desvio usam estes bits de estado para tomar suas decises.

A descrio dos bits do registrador de condio apresentada abaixo: V (Bit de Overflow) - A CPU leva o bit de overflow para nvel lgico alto quando houver estouro no resultado de uma operao em complemento de 2. O bit V utilizado pelas instrues de desvios condicionais BGT, BGE, BLE, e BLT. H (Bit de Half-carry) - A CPU leva o bit de half-carry para nvel lgico alto quando ocorrer estouro entre os bits 3 e 4 do acumulador durante as operaes ADD e ADC. O bit H importante nas operaes aritmticas codificadas em binrio (BCD). A instruo DAA utiliza o estado dos bits H e C para determinar o fator de correo apropriado. I (Mscara de Interrupes) - Quando o bit I est em nvel lgico alto, todas as interrupes so mascaradas (desabilitadas). As interrupes so habitadas quando o bit I levado a nvel lgico baixo. Quando ocorre uma interrupo, o bit que mascara as interrupes automaticamente levado a nvel lgico alto. Depois que os registradores da CPU so armazenados na pilha este bit volta ao nvel lgico baixo. Se uma interrupo ocorrer enquanto o bit I estiver setado, seu estado ser guardado. As interrupes so atendidas, em ordem de prioridade, assim que o bit I for a nvel lgico 0. A instruo retorno da interrupo (RTI) retorna os registradores da CPU da pilha, e restaura o bit I no seu estado de nvel lgico 0. Aps qualquer reset, o bit I colocado em nvel lgico alto e s pode ser limpo por uma instruo de software (CLI). N (Bit Negativo) - A CPU coloca o bit N em nvel lgico alto quando uma operao aritmtica, lgica ou de manipulao de dados produzir um resultado negativo. Corresponde ao 8o bit do registrador que contm o resultado. Z (Bit Zero) - A CPU leva o bit Z para nvel lgico alto quando uma operao aritmtica, lgica ou de manipulao de dados produzir um resultado igual a 0. C (Bit Carry/Borrow) - A CPU coloca o bit C em nvel lgico alto quando uma operao de adio produzir um valor superior a 8 bits ou quando uma subtrao 8 Prof. Gustavo Weber Denardin

necessitar um emprstimo. Algumas operaes lgicas e as instrues de manipulao de dados tambm podem modificar o estado do bit C. O Stack Pointer (SP) um registrador cuja funo apontar para a prxima localizao disponvel (endereo livre) de uma pilha (lista de endereos contguos). A pilha pode ser vista como um monte de cartas empilhadas, onde cada carta armazena um byte de informao. A qualquer hora, a CPU pode colocar uma carta nova no topo da pilha ou retirar uma carta do topo da pilha. As cartas que esto no meio da pilha no podem ser retiradas at que todas que estejam acima dela sejam removidas primeiro. A CPU acompanha o efeito da pilha atravs do valor armazenado no SP. O SP sempre aponta para a localizao de memria disponvel para se colocar a prxima carta (byte).

Normalmente, a CPU usa a pilha para guardar os endereos de retorno e o contexto, isto , os registradores da CPU, na ocorrncia de uma exceo (interrupo ou reset). Durante um reset, o Stack Pointer contm o endereo 0x00FF. A instruo RSP (Reset Stack Pointer) carrega o byte menos significativo com 0xFF e o byte mais significativo no afetado. Quando a CPU insere um novo dado na pilha, automaticamente o SP decrementado para o prximo endereo livre. Quando a CPU retira um dado da pilha, o SP incrementado para apontar para o dado mais recente, e o valor do dado lido nesta posio. Quando a CPU energizada ou passa por um processo de reset, o SP aponta para um endereo especfico na memria RAM (no caso dos microcontroladores HC08 e HCS08 = 0x00FF). A CPU08 possui modos de endereamento indexado com offsets de 8 ou 16 bits do SP para acesso de variveis temporrias inseridas na pilha. A CPU utiliza o contedo do registrador SP para determinar o endereo efetivo do operando. OBS: Embora o endereo inicial do SP seja 0x00FF, a localizao da pilha arbitrria e pode ser realocada pelo usurio em qualquer lugar na RAM. Movimentar o SP para fora da pgina de acesso direto (0x0000 a 0x00FF) permitir que este espao de memria seja utilizado para modos de endereamento mais eficientes. 9 Prof. Gustavo Weber Denardin

2.2. Sistema de Clock Todo sistema computacional utiliza um clock para fornecer a CPU uma maneira de se mover de instruo em instruo, em uma seqncia pr-determinada. Uma fonte de clock de alta freqncia (normalmente derivada de um cristal ressonador conectado a CPU) utilizada para controlar o sequeciamento das instrues da CPU. Normalmente as CPUs dividem a freqncia bsica do cristal por 2 ou mais para chegar ao clock do barramento interno. Cada ciclo de leitura ou escrita a memria executado em um ciclo de clock do barramento interno, tambm denominado ciclo de barramento (bus cycle). 2.3. Memria Podemos pensar na memria como sendo uma lista de endereos postais, onde o contedo de cada endereo um valor fixo de 8 bits (para CPU de 8 bits). Se um sistema computacional tem n linhas (bits) de endereos, ele pode enderear 2n posies de memria (p.ex.: um sistema com 14 linhas pode acessar 214 = 16384 endereos). Entre os diversos tipos de memria encontram-se: RAM (Random Access Memory) Memria de acesso aleatrio. Pode ser lida ou escrita pela execuo de instrues da CPU e, normalmente utilizada para manipulao de dados pela CPU. O contedo perdido na ausncia de energia (memria voltil). ROM (Read Only Memory) Memria apenas de leitura. Pode ser lida, mas no altervel. O contedo deve ser determinado antes que o circuito integrado seja fabricado. O contedo mantido na ausncia de energia (memria no voltil). EPROM (Erasable and Programmable Read-Only Memory) Memria ROM programvel e apagvel. O contedo dessa memria pode ser apagado com luz ultravioleta, e posteriormente, reprogramado com novos valores. As operaes de apagamento e programao podem ser realizadas um nmero limitado de vezes depois que o circuito integrado for fabricado. Da mesma forma que a ROM, o contedo mantido na ausncia de energia (memria no voltil). OTP (One Time Programmable) Memria programvel uma nica vez. Semelhante EPROM quanto a programao, mas que no pode ser apagada. EEPROM (Electrically Erasable and Programmable Read-Only Memory) Memria ROM programvel e apagvel eletricamente. Pode ter seu contedo alterado atravs da 10 Prof. Gustavo Weber Denardin

utilizao de sinais eltricos convenientes. Tipicamente, um endereo de uma EEPROM pode ser apagada e reprogramada at 100.000 vezes. FLASH Memria funcionalmente semelhante a EEPROM, porm com ciclos de escrita bem mais rpidos. I/O (Input/Output) Registradores de controle, estado e sinais de I/O so um tipo especial de memria porque a informao pode ser sentida (lida) e/ou alterada (escrita) por dispositivo diferentes da CPU. 2.4. Sinais de Entrada Dispositivos de entrada fornecem informao para a CPU processar, vindas do mundo externo. A maioria das entradas que os microcontroladores processam so denominadas sinais de entrada digitais, e utilizam nveis de tenso compatveis com a fonte de alimentao do sistema. O sinal de 0V (GND ou VSS ) indica o nvel lgico 0 e o sinal de fonte positiva, que tipicamente +5VDC (VDD ) indica o nvel lgico 1 (atualmente os microcontroladores comearam a reduzir a tenso de VDD para valores na faixa dos 3V). Naturalmente que no mundo real existem sinais puramente analgicos (com uma infinidade de valores) ou sinais que utilizam outros nveis de tenso. Alguns dispositivos de entrada traduzem as tenses do sinal para nveis compatveis com VDD e VSS. Outros dispositivos de entrada convertem os sinais analgicos em sinais digitais (valores binrios formados por 0s e 1s) que a CPU pode entender e manipular. Alguns microcontroladores incluem circuitos conversores analgicos/digitais (ADC) encapsulados no mesmo componente. 2.5. Sinais de Sada Dispositivos de sada so usados para informar ou agir no mundo exterior atravs do processamento de informaes realizados pela CPU. Circuitos eletrnicos (algumas vezes construdos no prprio microcontrolador) podem converter sinais digitais em nveis de tenso analgicos. Se necessrio, outros circuitos podem alterar os nveis de tenso VDD e VSS nativos da CPU em outros nveis.

11

Prof. Gustavo Weber Denardin

2.6. Cdigos de operao (opcodes) Os programas usam cdigos para fornecer instrues para a CPU. Estes cdigos so chamados de cdigos de operao ou opcodes. Cada opcode instrui a CPU a executar uma seqncia especfica para realizar sua operao. Microcontroladores de diferentes fabricantes usam diferentes conjuntos de opcodes porque so implementados internamente por hardware na lgica da CPU. O conjunto de instrues de uma CPU especifica todas as operaes que podem ser realizadas. Opcodes so uma representao das instrues que so entendidas pela mquina, isto , uma codificao em representao binria a ser utilizada pela CPU. Mnemnicos so outra representao para as instrues, s que agora, para serem entendidas pelo programador. 2.7. Mnemnicos das instrues e assembler Um opcode como 0x4C entendido pela CPU, mas no significativo para ns humanos. Para resolver esse problema, um sistema de instrues mnemnicas equivalentes foram criadas (Linguagem Assembly). O opcode 0x4C corresponde ao mnemnico INCA, l-se incrementa o acumulador, que muito mais inteligvel. Para realizar a traduo de mnemnicos em cdigos de mquina (opcodes e outras informaes) utilizados pela CPU necessrio um programa computacional chamado assembler (compilador para linguagem Assembly). Um programador utiliza um conjunto de instrues na forma de mnemnicos para desenvolver uma determinada aplicao, e posteriormente, usa um assembler para traduzir estas instrues para opcodes que a CPU pode entender. Aps a descrio da unidade central de processamento de um microcontrolador podemos partir para o aprendizado da linguagem de programao Assembly. Recomenda-se a leitura da folha de dados (principalmente a seo que trata do conjunto de instrues) do microcontrolador, bem como da apostila do microcontrolador HC08, famlia QT/QY. O prximo captulo deste documento ir descrever diversos perifricos que podem compor um microcontrolador, como portas de entrada/sada, temporizadores, entre outros.

12

Prof. Gustavo Weber Denardin

3. Perifricos
Os microcontroladores normalmente so classificados em famlias, dependendo da aplicao a que se destinam. A partir da aplicao que a famlia de microcontroladores se destina, um conjunto de perifricos especficos escolhido e integrado a um determinado microprocessador. Estes microprocessadores normalmente operam com barramentos de 8, 16 ou 32 bits, e apresentam arquiteturas RISC (R educed Instruction Set Computer) ou CISC (Complex Instruction Set Computer). Alguns exemplos de microcontroladores que utilizam microprocessadores com arquitetura RISC so o PIC (Microchip) e o MSP430 (Texas Instruments). J o MC68HC08 e HCS08 (Freescale) e o 8051 (Intel) so exemplos de microcontroladores que utilizam arquitetura CISC. Apesar da classificao dos microcontroladores em famlias, existem perifricos necessrios a praticamente todas as aplicaes, que so a memria de dados e a memria de programa. A memria de dados mais utilizada a RAM (Random Access Memory), que uma memria voltil, ou seja, no preserva o seu contedo sem uma fonte de alimentao. Recentemente as memrias de programa sofreram uma grande mudana. A alguns anos atrs as memrias de programa mais utilizadas eram a ROM ( Ready-Only Memory) e a EPROM (Erasable Programmable Read-Only Memory). O grande problema da utilizao de tais memrias era a falta de praticidade durante o desenvolvimento de um sistema embarcado. Com a popularizao das memrias FLASH e, ainda, devido a facilidade de utilizao, cada vez mais os microcontroladores tendem a ser produzidos com esta memria, em substituio a ROM e a EPROM. Importante lembrar que a praticidade da memria FLASH se deve a esta memria ser uma variao das EEPROM (Electrically-Erasable Programmable Read-Only Memory) que permitem que mltiplos endereos sejam apagados ou escritos com sinais eltricos. A seguir sero apresentadas as caractersticas e aplicaes dos principais perifricos encontrados em microcontroladores, tais como: portas de entrada e sada, temporizadores, portas de comunicao serial e conversores Analgico-digitais (A/D).

13

Prof. Gustavo Weber Denardin

3.1 Temporizadores Um microprocessador deve possuir um relgio. O relgio pode ser implementado por um cristal oscilador que sincroniza todo o funcionamento do microprocessador, controlando o tempo de cada um dos eventos relacionados aos dispositivos integrados a ele. Os temporizadores utilizam a base de tempo do relgio para poder implementar contagens de tempo bem especficas e configurveis. Estes utilizam contadores, incrementados na mesma base de tempo do relgio. Desta forma possvel descrever tempo em nmero de ciclos de um relgio. Por exemplo, imagine um microprocessador utilizando um relgio de 20 MHz. O perodo relativo a esta freqncia 50 ns. Podemos representar ento um tempo de 1ms atravs de perodos de 50ns, obtendo o valor de 20000. Ou seja, se incrementarmos um contador a cada ciclo de relgio, no caso 50ns, quando este contador atingir o valor de 20000, teremos atingido a contagem de 1ms. Para que este mtodo seja aplicado, existe a necessidade da utilizao de pelo menos 2 registradores. O registrador que ser incrementado e o registrador que conter o valor a ser atingido. No entanto, existe um problema relacionado a este mtodo. Imagine que precisemos de um tempo na ordem de segundos, por exemplo, 1 segundos. Se estivermos utilizando um relgio de 4 MHz, seria necessrio registradores de 24 bits para representar o valor de 4x106. Com o intuito de reduzir o tamanho destes contadores, os temporizadores apresentam a possibilidade de diviso do relgio, normalmente por valores mltiplos de 2. No caso do exemplo acima, poderamos dividir o relgio por 128, obtendo uma freqncia de 31,250 KHz. Ento, para representarmos 1 segundo, seria necessrio uma contagem de 31250 perodos de 32s, ou seja, um valor que pode ser representado em 16 bits. Devemos lembrar que a diviso ter influncia somente no tempo de incrementao do contador, continuando o barramento interno do microprocessador a operar com o relgio original. Para exemplificar a configurao dos registradores relativos a um temporizador em um microcontrolador ser utilizado o microcontrolador MC68HC908QY4. O processo de configurao apresentado a seguir. Os microcontroladores da linha HC08 normalmente possuem 1 ou 2 temporizadores. Os registradores relativos a estes temporizadores apresentam nomes semelhantes, tendo apenas o nmero no temporizador para diferenci-los. Os trs 14 Prof. Gustavo Weber Denardin

registradores de configurao do temporizador neste microcontrolador so: TSC, TCNT e TMOD. Abaixo apresentado o diagrama de blocos do temporizador destes microcontroladores. importante ressaltar que alguns dos registradores apresentados na figura so relativos ao mdulo PWM e captura de entrada.

Figura Diagrama de blocos do mdulo temporizador de microcontrolador MC68HC908QY4

TSC (Timer Status and Control Register): Possibilita habilitar a interrupo do temporizador, verificar o estado da flag de interrupo, para-lo, reiniciar a contagem e dividir o relgio para obter a base de tempo.

15

Prof. Gustavo Weber Denardin

Figura Registrador TSC

Abaixo sero descritos as funes de cada um dos bits deste registrador: TOF (Timer Overflow Flag): Este bit de escrita/leitura torna-se setado quando o registrador contador (TCNT) atinge o valor do registrador de mdulo de contagem (TMOD), condio essa que indica o estouro da contagem de tempo. O procedimento correto para limpar esta indicao ler o registrador TSC e escrever um 0 lgico para o bit TOF; 1 = O mdulo temporizador atingiu o valor desejado 0 = O mdulo temporizador no atingiu o valor desejado TOIE (Timer Overflow Interrupt Enable Bit): Este bit de escrita/leitura habilita a interrupo do temporizador quando o bit TOF for setado. 1 = Interrupo do temporizador ativa 0 = Interrupo do temporizador desabilitada TSTOP (Timer Stop Bit): Este bit de escrita/leitura para o incremento do contador de tempo. 1 = Contador de tempo parado 0 = Contador de tempo ativo TRST (Timer Reset Bit): Levar este bit de escrita para nvel lgico 1 ir iniciar o contador de tempo com zero e colocar o divisor de base de tempo para o estado inicial, ou seja, diviso por 1. 1 = Pr-Escala de base de tempo e contador iniciados com o valor 0; 0 = Sem efeito 16 Prof. Gustavo Weber Denardin

PS[2:0] (Prescaler Setect Bits) Bits de pr-escala da base de tempo. Estes bits de escrita/leitura selecionam um dos sete possveis valores de diviso da base de tempo do relgio para utilizao como base de tempo do temporizador.
PS2 0 0 0 0 1 1 1 1 PS1 0 0 1 1 0 0 1 1 PS0 0 1 0 1 0 1 0 1 Base de tempo do temporizador Clock de barramento interno / 1 Clock de barramento interno / 2 Clock de barramento interno / 4 Clock de barramento interno / 8 Clock de barramento interno / 16 Clock de barramento interno / 32 Clock de barramento interno / 64 No disponvel

TCNT (Timer Count Registers): Estes registradores so somente de leitura e contm o valor mais significativo (TCNTH) e menos significativo (TCNTL) do contador do temporizador. A leitura do registrador mais significativo deve ser realizada primeiro.

Figura Registrador TCNTH e TCNTL.

TMOD (Timer Module Registers): Estes registradores de escrita/leitura contm o valor do mdulo da contagem do temporizador. Quando os registradores de contagem (TCNT) atingem o valor dos registradores de mdulo (TMOD), o bit TOF torna-se nvel lgico 1 e os registradores de

17

Prof. Gustavo Weber Denardin

contagem resumem a contagem para $0000 at o prximo passo de clock. Escrever no registrador TMODH inibe o bit TOF at que o registrador TMODL seja escrito.

Figura Registradores TMODH e TMODL

Estando os registradores a serem configurados apresentados pode-se demonstrar um exemplo de utilizao. Abaixo ser implementada a configurao de um temporizador utilizando um relgio de 3,2 MHz para obter a base de tempo de 10ms. 1 =312,5109 6 3,210 10 103 =32000 312,5109

Perodo relativo a base de tempo:

Perodo=

Clculo do valor de mdulo de tempo:

Mdulo =

O valor 32000 deve ser escrito nos registradores TMODH e TMODL da seguinte maneira: O valor deve ser convertido para hexadecimal, sendo este igual a 7D00h. O valor obtido um valor vlido dentro dos 16 bits referentes aos registradores TMODH e TMODL, ou seja, a base de tempo do relgio foi dividida por 1. Desta forma, TMODH igual a 7Dh e TMODL igual a 00h. Abaixo o exemplo de configurao dos registradores para este caso apresentado, tanto em assembly, quanto em linguagem c.

18

Prof. Gustavo Weber Denardin

Assembly: MOV #$7D,TMODH CLR TMODL ; Configurao do registrador TSC: ; Diviso por 1, timer ativo com interrupo do temporizador habilitada. ; TOF TOIE TSTOP TRST Reservado PS2 PS1 PS0 ; 0 1 0 0 0 0 0 0 MOV #$40,TSC c: TMOD = 32000; /*Configurao do registrador TSC: Diviso por 1, timer ativo com interrupo do temporizador habilitada. TOF TOIE TSTOP TRST Reservado PS2 PS1 PS0 0 1 0 0 0 0 0 0 */ TSC = 0x40; Para demonstrar um caso onde se faz necessrio a diviso da base de tempo, o temporizador ser configurado utilizando um relgio de 3,2 MHz para obter a base de tempo de 100ms. Perodo relativo a base de tempo: Perodo = 1 9 =312,5 10 6 3,2 10 100103 =320000 312,5109

Clculo do valor de mdulo de tempo:

Mdulo =

Para representar 320000 necessrio mais do que os 16 bits disponveis. Desta forma se faz necessrio a diviso da base de tempo. Dividindo 320000 pelo maior valor possvel em 16 bits, encontramos 4,88. Assumimos ento o prximo valor vlido de diviso, ou seja, oito, como fator de diviso da base de tempo. Fator de diviso da base de tempo: Fator = 320000 =4,88 65535

E, recalculando os valores de configurao: Perodo relativo a base de tempo: Perodo = 1 =2,5106 6 3,210 8

19

Prof. Gustavo Weber Denardin

Clculo do valor de mdulo de tempo:

100 103 Mdulo = = 40000 2,5106

Sendo 40000 um valor vlido em 16 bits, a configurao do temporizador em linguagem c apresentada abaixo: c: TMOD = 40000; /*Configurao do registrador TSC: Diviso por 8, timer ativo com interrupo do temporizador habilitada. TOF TOIE TSTOP TRST Reservado PS2 PS1 PS0 0 1 0 0 0 0 1 1 */ TSC = 0x43; Obs: Devemos lembrar que o cdigo contido nas interrupes deve ser o menor possvel, com o intuito de evitar que o tempo de execuo deste cdigo seja superior ao tempo da prxima interrupo. Por exemplo, se configurarmos a interrupo do temporizador para ocorrer a cada 100s, o tempo de execuo do cdigo contido nesta interrupo no deve ser superior a esta base de tempo. Exemplo de utilizao da interrupo do temporizador (esta interrupo conhecida como interrupo de estouro de tempo): Assembly: ; Interrupo do temporizador. TOVER: BCLR 7,TSC INC I RTI c: // Interrupo do temporizador interrupt void tover(void) { TSC_TOF = 0; i++; } ; Limpa a flag da interrupo do temporizador ; Incrementa uma varivel qualquer ; Retorna da interrupo

// Limpa a flag da interrupo do temporizador // Incrementa uma varivel qualquer // Retorna da interrupo

20

Prof. Gustavo Weber Denardin

3.2 PWM (Pulse Width Modulation) O mdulo de gerao de Modulao por Largura de Pulso (PWM) um recurso muito utilizado para o controle de motores e conversores CC-CC em geral. A partir dele possvel gerar um sinal analgico, apesar de sua sada ser um sinal digital que assume apenas os nveis lgicos alto (um) e baixo (zero). A sada gerada uma onda quadrada, com freqncia constante e largura de pulso varivel. Estes conceitos esto diretamente relacionados com o perodo fixo e o ciclo ativo (duty cycle) respectivamente. A freqncia de uma onda pode ser definida como a quantidade de vezes que ela se repete no tempo. E o perodo cada pedao dessa onda que ir se repetir. O duty cycle define o tempo de sinal ativo (nvel lgico alto) em um perodo fixo. Assim, quando temos um duty cycle de 100%, temos nvel lgico alto por todo o perodo. Um duty cycle de 50% define a metade do perodo em nvel lgico alto e a outra metade em nvel lgico baixo. Se uma sada TTL for utilizada, a tenso mdia de sada em um duty cycle de 50% ser 2,5V. Estes conceitos so demonstrados na figura abaixo. Devemos lembrar que o PWM nem sempre possui estado inicial positivo, podendo iniciar o perodo com nvel lgico baixo.

Figura Sinais modulados por Largura de Pulso

21

Prof. Gustavo Weber Denardin

A base de tempo dos mdulos PWM normalmente implementada de duas formas. Uma destas formas utilizando o prprio mdulo temporizador como base de tempo no PWM, ou seja, se o temporizador est configurado para um perodo de 1ms, a freqncia do PWM ser de 1 KHz. A outra forma utilizando um temporizador especfico para o PWM, que deve ser configurado para a freqncia desejada. Ainda, um temporizador pode ser utilizado como base de tempo de vrias sadas PWM, ou seja, vrios PWM com a mesma freqncia, mas larguras de pulso diferentes. A figura a seguir ir exemplificar o funcionamento de um PWM em um microcontrolador onde o registrador PTPER possui o valor referente ao perodo do PWM e os registradores PWM1H e PWM2H representam dois canais de sada PWM.

Figura Sinais PWM com mesmo perodo e largura de pulso diferentes.

Para exemplificar a configurao de um mdulo PWM ser utilizado novamente o microcontrolador MC68HC908QY4. Este microcontrolador utiliza o temporizador como base de tempo para o perodo do PWM. Desta forma, para configurar a freqncia do PWM deve-se utilizar a mesma metodologia adotada para o temporizador. Neste exemplo ser configurado um PWM de 10 KHz com largura de pulso inicial do ciclo ativo de 40%, onde o relgio utilizado ser de 3,2 MHz.

22

Prof. Gustavo Weber Denardin

Perodo da base de tempo do relgio:

Perodo=

1 =312,5109 6 3,210 100106 =320 312,5109

Valor de mdulo de tempo para 100s:

Mdulo =

Estando o mdulo da base de tempo do PWM configurado, deve-se partir para a configurao da largura do pulso e do nvel do ciclo inicial do PWM. Atravs do mdulo PWM deste microcontrolador possvel obter duas sadas PWM para cada temporizador. Como o microcontrolador utilizado possui somente um temporizador, possvel obter duas sadas PWM, conhecidas como canal 0 e canal 1. Os registradores de configurao do mdulo PWM so: TSC0, TSC1, TCH0 e TCH1. Pode-se notar que os valores 0 e 1 so relativos ao canal a que se destina a configurao. Este microcontrolador apresenta duas maneiras de se utilizar estes canais. As sadas PWM podem ser configuradas no modo com buffer ou sem buffer. No modo com buffer ambos os canais so aproveitados para gerar uma sada PWM. O modo com buffer opera da seguinte maneira: Ambos os canais so configurados para operar com buffer. A configurao da largura de pulso inicial realizada no canal zero. Quando se desejar alterar a largura de pulso da sada PWM, altera-se o valor da largura de pulso no canal um. Ou seja, toda vez que se desejar alterar o valor da largura de pulso realizado um intercalamento entre os dois canais. A sada PWM ficar agregada ao pino de sada do canal zero. J no modo sem buffer, cada canal de tempo pode gerar uma sada PWM. O cuidado que deve ser tomado neste caso que alteraes de largura de pulso devem ser realizadas em locais bem especficos. A alterao da largura de pulso para um valor superior deve ser realizada na interrupo de estouro de tempo (temporizador). A alterao da largura de pulso para um valor inferior deve ser realizada na interrupo de comparao do devido canal. Na figura a seguir apresentado os locais referentes as interrupes supracitadas.

23

Prof. Gustavo Weber Denardin

Figura Largura de pulso e perodo de um PWM

Abaixo temos a configurao de bits relativa aos registradores TSC0 e TSC1.

Figura Timer Channel Status And Control Registers

A seguir sero descritos as funes de cada um dos bits deste registrador: CHxF (Channel x Flag Bit): Quando o canal x est configurado para comparao de sada (modo que permite a implementao de um PWM), esta flag torna-se 1 quando o valor do registrador contador de tempo (TCNT) atinge a valor contido no registrador do canal x (TCHx). Para limpar esta flag deve-se ler o registrador TSCx e escrever um zero lgico para este bit. 24 Prof. Gustavo Weber Denardin

1 = Comparao de sada no canal x 0 = Sem comparao de sada no canal x ChxIE (Channel x Interrupt Enable Bit): Este bit de escrita/leitura permite habilitar a interrupo de comparao de sada para o canal x. 1 = Interrupo do canal x habilitada 0 = Interrupo do canal x desabilitada TOVx (Toggle On Overflow Bit): Quando o canal x est configurado para comparao de sada, este bit de escrita/leitura controla o comportamento da sada do canal x quando ocorre um estouro de tempo no temporizador. 1 = Valor lgico no pino relativo ao canal x se altera no estouro de tempo 0 = Valor lgico no pino relativo ao canal x no se altera no estouro de tempo ChxMAX (Channel x Maximum Duty Cycle Enable Bit): Quando o bit TOVx est em nvel lgico 1, ao setar o bit ChxMAX ir forar o Duty Cycle do canal para 100%. Como a figura a seguir demonstra, o efeito relativo a este bit s notado 1 ciclo aps que este bit alterado. O Duty Cycle permanece 100% at que este bit volte ao estado lgico zero.

Figura Latncia do bit CHxMAX

Os outros bits relativos a estes registradores so configurados a partir da tabela abaixo:

25

Prof. Gustavo Weber Denardin

Tabela Seleo de modo, nvel e borda

O registrador onde realizada a configurao da largura de pulso o TCHx, sendo TCHxH o registrador de maior significado e TCHxL o de menor significado na palavra de 16 bits que ir representar a largura do pulso. Abaixo estes registradores so apresentados.

26

Prof. Gustavo Weber Denardin

Figura Registradores TCH0H, TCH0L, TCH1H e TCH1L.

Voltando ao exemplo onde deseja-se configurar um PWM de 10KHz com largura de pulso inicial igual a 40% e ciclo inicial ativo, utilizando um relgio de 3,2MHz. O mdulo referente ao perodo do PWM j foi definido, sendo igual a 320. Para configurarmos a largura inicial para 40% deve-se utilizar 40% do valor do mdulo do perodo encontrado, ou seja, TCH0 = 320 x 40% = 128. A seguir ser apresentado a configurao do PWM do exemplo acima, utilizando modo sem buffer com sada no canal zero, tanto para Assembly quanto para c.

27

Prof. Gustavo Weber Denardin

Assembly: ; Configurao do mdulo de tempo LHDX #!320 ; Valor relativo ao perodo de 100us STHX TMD ; Move para o registrador de mdulo do temporizador LDHX #!128 ; Valor de 40% de largura de pulso (40% de 320) STHX TCH0 ; Move para o registrador do canal 0 CLRH ; Limpa a parte alta do registrador de ndice, utilizado anteriormente ; Sada PWM no canal 0, com alterao para nvel lgico baixo na comparao ; CH0F CH0IE MS0B MS0A ELS0B ELS0A TOV0 CH0MAX ; 0 1 0 1 1 0 1 0 MOV #$5A,TSC0 ; Perodo do PWM igual a 100us ; TOF TOIE TSTOP TRST Reservado PS2 PS1 PS0 ; 0 1 0 0 0 0 0 0 MOV #$40,TSC c: TMOD = 320; TCH0 = 128; /* Perdo do PWM*/ /* 40% de PWM */

/*Sada PWM no canal 0, com alterao para nvel lgico baixo na comparao CH0F CH0IE MS0B MS0A ELS0B ELS0A TOV0 CH0MAX 0 1 0 1 1 0 1 0 */ TSC0 = 0x5A; /*Perodo do PWM igual a 100us TOF TOIE TSTOP TRST Reservado PS2 PS1 PS0 0 1 0 0 0 0 0 0 */ TSC = 0x40; /* No divide o clock */ Apesar de termos definido as inicializaes, se o modo sem buffer est sendo utilizado, precisamos implementar tambm no cdigo as interrupes de estouro de tempo e comparao de sada para ser possvel alterar o valor da largura de pulso desta sada. Assembly: ; Interrupo do temporizador. TOVER: BCLR 7,TSC ; Limpa a flag da interrupo do temporizador BRCLR condio,SAIR_OVER ; Verifica a necessidade de aumentar a largura ; Se a flag estiver com zero, no corrige BCLR AUM,FLAG ; Limpa a flag da necessidade de aumentar MOV Valor_corrigido,TCH0 ; aumenta a largura de pulso SAIR_OVER RTI ; Retorna da interrupo

28

Prof. Gustavo Weber Denardin

; Interrupo da comparao COMP: LDA TSC0 BCLR 7,TSC0 ; Limpa a flag da interrupo da comparao BRCLR condio,SAIR_COMP ; Verifica a necessidade de diminuir a largura ; Se a flag estiver com zero, no corrige BCLR DIM,FLAG ; Limpa a flag da necessidade de diminuir MOV Valor_corrigido,TCH0 ; diminui a largura de pulso SAIR_COMP RTI ; Retorna da interrupo c: // Interrupo do temporizador interrupt void tover(void) { TSC_TOF = 0; if (condio){ flag_aum = 0; TCH0 = Valor_corrigido; } } // Interrupo da comparao interrupt void comparacao(void){ byte i; i = TSC0; TSC0_CH0F = 0; if (condio) { flag_dim = 0; TCH0 = Valor_corrigido; } }

// Limpa a flag da interrupo do temporizador /* Indicao para aumenta largura do PWM*/ // Limpa flag de condio // Corrige a largura do pulso // Retorna da interrupo

// L registrador de estado do PWM // Limpa a flag // Verifica se necessrio diminuir a largura // Limpa flag de condio // Corrige a largura do pulso

Em algumas aplicaes necessrio a insero de um tempo morto (dead time) devido ao tempo de comutao de certos tipos de componentes utilizados ou devido as topologias dos sistemas agregados a estas sadas PWM. Normalmente estes tempos mortos so inseridos em pares complementares de sadas PWM, ou seja, quando uma das sadas comuta para nvel lgico alto, a outra sada comuta para nvel lgico baixo. Abaixo apresentado um exemplo de utilizao de tempos mortos.

29

Prof. Gustavo Weber Denardin

Figura Exemplo de utilizao de tempo morto

3.3 Conversores Analgico-Digital e Digital-Analgico De um modo geral, 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, etc. Os sinais manipulados por computadores e sistemas embarcados so digitais, como por exemplo, uma faixa de udio lida de um compact disk. 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. Em geral, o conversor A/D est presente internamente nos processadores e controladores de sinais digitais e alguns microcontroladores, mas tambm existem circuitos integrados dedicados a este fim. Basicamente um bloco que apresenta portas de entrada e sada. A entrada recebe sinais eltricos de forma contnua e possui uma faixa de tenso de entrada mxima e mnima. Nos microcontroladores que possuem um conversor A/D e operam na faixa de 5V, geralmente a faixa de tenso aceita sinais eltricos entre -5V e +5V.

30

Prof. Gustavo Weber Denardin

Na sada o sinal amostrado em um dado intervalo de tempo fixo (determinado pela freqncia de amostragem). Esta amostra disponibiliza um certo valor que representa o sinal original naquele momento (quantizao). As caractersticas de quantizao esto relacionadas preciso do conversor. Para ilustrar esta situao, imagine que voc queira mostrar a temperatura de um forno em um display de cristal lquido (LCD). Para isto seriam necessrios alguns componentes eletrnicos. Os mais expressivos so: um transdutor (sensor de temperatura), um display de cristal lquido (LCD), um processador digital e um conversor analgico digital.

Figura - Diagrama de blocos de uma converso A/D de um sinal de temperatura

A temperatura um sinal analgico. O sensor de temperatura converte a temperatura em um sinal de impulsos eltricos analgicos. O conversor A/D recebe esse sinal e o transforma em sinal digital, atravs de amostragem, entregando ao processador. Este, por sua vez, manipula esses dados e envia-os para o display, mostrando em graus a temperatura do forno. A figura abaixo mostra a representao do sinal analgico de temperatura e seu equivalente na forma digital.

Figura Representao de um sinal de temperatura analgico e digital.

31

Prof. Gustavo Weber Denardin

A informao digital diferente de sua forma original contnua em dois aspectos fundamentais:

amostrada porque baseada em amostragens, ou seja, so realizadas quantizada porque atribudo um valor proporcional a cada amostra.

leituras em um intervalo fixo de tempo no sinal contnuo;

Explorando um pouco mais o caso do forno, a figura abaixo detalha um pouco mais as trs etapas mais importantes do processo: a aquisio, a amostragem e o processamento. Neste diagrama de blocos, o sinal analgico capturado pelo transdutor (sensor), em seguida passa por um filtro, denominado de anti-alias, a fim de diminuir os rudos. A chave representa a freqncia de amostragem do conversor A/D, entregando ao processador o sinal digitalizado.

Figura Diagrama de blocos da converso A/D.

A freqncia de amostragem o nmero de amostras capturadas em um segundo. Esta freqncia dada em Hertz (Hz) e considerada adequada quando se pode reconstruir o sinal analgico razovel a partir de amostras obtidas na converso. A taxa de converso ou freqncia de amostragem de suma importncia para o processamento de sinais reais. Para obter uma taxa de amostragem adequada pode-se utilizar os teoremas de Nyquist ou Shannon. Estes teoremas indicam que um sinal contnuo x(t) pode ser amostrado adequadamente se tiver banda limitada, ou seja, seu espectro de freqncia no pode conter freqncias acima de um valor mximo ( Fmx freqncia mxima). Ainda, outro ponto importante que a taxa de amostragem (Fa Freqncia de amostragem) deve ser escolhida para ser no mnimo duas vezes maior que a freqncia mxima (Fmx). Por exemplo, para representar um sinal de udio com 32 Prof. Gustavo Weber Denardin

freqncias at 10 KHz, o conversor A/D deve amostrar esses sinais utilizando uma freqncia de amostragem de no mnimo 20 KHz. Para melhor entendimento, vamos ver como funciona um conversor A/D de 4 bits (Figura abaixo).

Figura Converso A/D de 4 bits.

Com 4 bits o mximo representvel o nmero 16. Isso quer dizer que temos uma faixa de 0 a 15 (no sinalizado) ou +7 a -8 (sinalizado). Nesse conversor fictcio, teremos uma variao a cada 1 volt. A figura anterior mostra um sinal de udio de 200 Hz variando de +7 a -8 volts, que pode ser capturado por um microfone. Conforme o teorema de Nyquist, seria necessrio uma freqncia de amostragem de 400 Hz. Lembrando que, se o sinal de udio possusse amplitude maior que a faixa representvel do conversor A/D (7V a -8V), ento no seria possvel converter tal sinal. O conversor D/A possui todas as caractersticas do conversor A/D, as quais diferem apenas porque o conversor D/A pega um sinal digital e transforma em analgico. Por exemplo, em uma aplicao de udio, um microfone captura o udio e envia a um conversor A/D, que entrega o sinal amostrado e quantizado a um processador digital. Este ltimo efetua diversas operaes com o sinal de udio. S ento o processador envia ao conversor D/A, para remontar o sinal analgico a partir do sinal digital, para ser reproduzido em um alto-falante. Um exemplo de conversor D/A de 16 bits o DAC1221, da Texas Instruments. Novamente para exemplificar a configurao de um conversor A/D em um microcontrolador ser utilizado o microcontrolador MC68HC908QY4. Este microcontrolador possui um conversor A/D por aproximao sucessiva linear com quatro canais, ou seja, existem 4 entradas possveis para sinais analgicos que so multiplexadas para um nico conversor A/D. Isto implica em que s um canal ser convertido em um determinado momento. A resoluo deste A/D de 8 bits, no entanto, a 33 Prof. Gustavo Weber Denardin

Freescale disponibilizou uma nova verso com A/D de 10 bits, o MC68HC908QY4A. Na figura a seguir apresentado o diagrama de blocos do conversor A/D deste microcontrolador.

Figura Diagrama de blocos do conversor A/D do microcontrolador MC68HC908QY4

34

Prof. Gustavo Weber Denardin

Você também pode gostar