Ciência da Computação Laboratório de Hardware Introdução ao Microcontrolador PIC Prof. Sergio Ribeiro Microprocessadores Os microprocessadores são circuitos integrados compostos por diversas portas lógicas que realizam operações matemáticas e lógicas diversas. São destinados a uso geral, ou seja, simplesmente processar informações. Os sistemas microprocessados são compostos de dispositivos separados: microprocessador, memória, interface de entrada e saída (compostas por transistores, acopladores ópticos, etc). Mas por que não incluir todos estes dispositivos em um encapsulamento? 2
Microcontroladores A união das memórias com os microprocessadores possibilitou o advento dos microcontroladores. Estes circuitos integrados são compostos por pelo menos uma unidade de processamento, uma unidade lógicoaritmética, um banco de memória de programa e um banco de memória de dados. Além disto, os microcontroladores devem possuir uma interface com o ambiente externo, ou seja, entradas e saídas para que o desenvolvedor de hardware possa realizar operações diversas, como por exemplo, ligar um relé, um transistor, acender um LED, etc. 3 Microcontroladores Microcontroladores são dispositivos voltados a sistemas embarcados e aplicações específicas, ao contrário dos μps, destinados a PCs e aplicações de uso geral. Memórias de programa e de dados também são frequentemente integradas ao chip, o que não ocorre nos μps. Principais razões da integração das memórias aos μcs: Redução do número de pinos do encapsulamento; Redução dos custos com componentes externos; Diminuição das dimensões da montagem; Simplificação do circuito de aplicação; Porém, tal integração tem como desvantagem: Limitação da complexidade do programa embarcado, devido ao tamanho reduzido da memória nos μcs. 4
Microcontroladores Visão geral da organização de um microcontrolador: 5 Aplicações Típicas Tipicamente, μcs são usados no controle em: Periféricos de informática Eletrônicos de consumo Sistemas de supervisão Instrumentação Automação Robótica 6
Marcas de Microcontroladores Algumas marcas e modelos: Microchip ATMEL: ATMEGA, AT91, AT90; INTEL: MCS51 ou 8051 (vários fabricantes fabricam este modelo, mas a Intel foi a primeira a produzi-lo, em 1977); Microchip: PIC, DSPIC. Freescale (Motorola): 68HC, MPC. Texas Instruments: MSP430, TMS370 7 Os Microcontroladores PIC Os PIC, ou PICmicro, são microcontroladores da Microchip Technologies. Seu nome é uma sigla para Programmable Interface Controller e origina-se no início dos anos 80, quando foi concebido para operar como interface controladora de periféricos para a CPU CP1600 da General Instruments. São mais de 570 ucs divididos em 3 grandes grupos: 8 bits 16 bits 32 bits Núcleo composto por uma máquina RISC: As versões mais simples tem apenas 33 instruções. Memória segue a arquitetura de Havard. 8
Os Microcontroladores PIC Família de Microcontroladores PIC: 9 Os Microcontroladores PIC Os Microcontroladores PIC de 8 bits São mais de 300 ucs, reunindo desde os mais simples e pequenos (6 pinos) a dispositivos de alta gama, com maior poder de processamento, periféricos e interfaces, chegando a 100 pinos. Dividem-se em 4 categorias, de acordo com a complexidade da aplicação a que se destinam: Baseline Mid-Range Enhanced Mid-Range PIC18 10
Os Microcontroladores PIC PIC 8-bits: Memória de Programa vs N de Pinos 11 O PIC 18F4550 Microcontrolador Mid-Range de 8 bits, com 40 pinos. Reúne os principais pontos de interesse no estudo da arquitetura de sistemas digitais. É o microcontrolador inserido no Kit XM118 da Exsto presente no Laboratório de Hardware da Facape, e que será adotado nas aplicações práticas do laboratório. 12
Principais Características do PIC18F4550 Memória FLASH de programa: 32 Kbytes. Memória SRAM para armazenamento de dados: 2 Kbytes. Memória EEPROM de dados: 256 bytes. Pinos configuráveis como entradas ou saídas digitais: 35. Pinos configuráveis como canais de entrada analógica: 13. Módulo CCP (Capture / Compare / PWM) Capture Þ Permite a medição do tempo de duração de um evento. Comparação Þ compara valores entre os registros do TMR1 e CCPR. PWM (Pulse Width Modulation) Þ gera sinais de frequência e variáveis. 13 Principais Características do PIC18F4550 Porta paralela: de 8 bits (SPP Streaming Parallelal Port). Temporizadores de 8 e 16 bits: 4. Watchdog Timer: sim. Frequência de operação: de até 48 MHz. Múltiplas fontes de interrupção: até 20. Comparadores: 2. Periféricos avançados de comunicação: Porta de comunicação serial, Porta de comunicação USB 2.0. Arquitetura Harvard: tecnologia RISC com um conjunto de 75 instruções de máquina. 14
Pinagem do PIC18F4550 Portas de entrada e saída (RA, RB, RC, RD e RE). Canais de entradas analógicas (AN). Pinos de alimentação (VDD e VSS). Pinos de entrada para o oscilador externo (OSC). Portas de comunicação serial (RX e TX). Porta de comunicação USB (D+ e D-). ** Os pinos podem ter mais de uma função. 15 Pinagem do PIC18F4550 Os 35 pinos de I/O configuráveis, estão agrupados em 5 grupos denominados PORTAS, sendo: PORT A PORT B PORT C PORT D PORT E 16
Diagrama de Bloco do PIC18F4550 Pinagem do PIC18F4550 17 18
Kit Educacional O laboratório de Hardware da Facape é equipado com kits educacionais da Exsto. O kit usado em Arquitetura de Computadores é o XM118 que possui o microcontrolador PIC18F4550. O hardware do Kit Educacional XM118 foi concebido para permitir a maior fexibilidade possível nas ligações. Os pinos com diversas funções foram ligados a chaves dip switch, de forma a permitir a conexão com diferentes circuitos de aplicação. Para configurar corretamente o hardware para suas necessidades, verifique as funções das chaves no manual. 19 Fonte de Alimentação O kit educacional XM118 é equipado com duas fontes chaveadas independentes de +5V DC /3A e +12V DC /1A. As fontes de alimentação estão disponíveis para o usuário em conectores apropriados. Seu uso, contudo, deve respeitar a corrente máxima disponível. 20
PIC 18F4550 O kit foi baseado no PIC 18F4550. Trata-se de um microcontrolador de 8 bits de alto desempenho com uma série de periféricos. Além do PIC 18F4550, outros microcontroladores de 40 pinos podem ser usados na placa do kit, desde que sejam compatíveis pino a pino. Ex: PIC 18F4520 e o PIC 16F877A. 21 Conectores para Acesso de I/O Imediatamente acima do protoboard, existem conectores que dão acesso direto aos pinos do microcontrolador. Quando usar um pino do microcontrolador para aplicações externas, desligue as chaves de configuração associadas ao pino em questão (se houver). 22
PICkit-2 e o Conector ICSP O kit XM118 é equipado com um gravador PICkit-2 que fica embutido dentro do gabinete do kit. O PICkit-2 está conectado ao XM118 e consequentemente ao microcontrolador nele instalado através da chave U8. Essa chave permite desconectar os pinos do PIC18F4550 do PICkit-2 quando necessário. O conector CON9 permite gravar outros componentes externos através do header (placa para gravação de componente) que acompanha o kit. 23 Configuração O microcontrolador tem um número limitado de pinos para poder interagir com todos os circuitos presentes no kit. Alguns circuitos estão simplesmente ligados em paralelo, como LEDs e LCD, teclado e chaves. Outros circuitos são selecionados através de chaves de configuração. A tabela a seguir apresenta algumas configurações possíveis, indicando o portal do microcontrolador, o sinal utilizado, sua função e direção. A tabela completa deve ser consultada no manual de operação do kit. 24
Configuração 25 Teclado Matricial Um teclado matricial está disponível no kit e opera por varredura. Isto significa que, ao aplicar diferentes valores nas linhas, é possível identificar a tecla pressionada por meio do valor lido nas colunas. O teclado está ligado ao PIC conforme a tabela abaixo. Obs: para o correto funcionamento do teclado, é necessário ativar os resistores de pull-up internos do PIC por software. 26
Chaves Há oito chaves dip switch ligadas à porta B do PIC. Essas chaves foram projetadas para ser baixo ativas, ou seja, ao serem ligadas, elas aterram os pinos do PIC. Estando aberto, o nível alto nas entradas do PIC é garantido pelos resistores de pull-up internos. Obs: para o correto funcionamento do teclado, é necessário ativar os resistores de pull-up internos do microcontrolador por software. 27 Push-Buttons Existem cinco chaves pulsativas (push-buttons) ligados aos pinos do microcontrolador. Alguns desses pinos possuem funções especiais, como interrupções e contadores. Essas chaves também são baixo ativas. A tabela abaixo mostra a ligação dessas chaves ao PIC. 28
Display LCD O kit possui um display LCD alfanumérico de 2 linhas por 16 colunas. O ajuste de contraste desse LCD é feito pelo trimpot R42. Mais informações sobre o uso do LCD na apostila do kit. 29 Display de 7 Segmentos O kit XM118 possui 4 displays de sete segmentos. Estes displays trabalham de forma multiplexada, isto é, seus segmentos estão todos ligados em paralelo e os comuns dos displays são acionados por um processo de varredura (impressão de estarem simultaneamente ativos). 30
LEDs Na porta D do microcontrolador estão ligados 8 leds convencionais baixo ativos (acendem com nível lógico baixo). Há também 2 leds bicolores ligados a outros pinos do microcontrolador (consultar manual). 31 Buzzer Um buzzer piezelétrico permite a geração de sons no kit. Para esse buzzer operar é necessário aplicar um sinal variável na frequência que se deseja ouvir. Ele não produzirá som algum se for simplesmente alimentado. 32
Relés Quatro relés estão disponíveis para aplicações do usuário. É possível ter acesso aos terminais Com (comum), NA (normalmente aberto) e NF (normalmente fechado). Os relés tem capacidade de acionar cargas de até 10A, com tensão máxima de até 250V. 33 Outros Módulos Outras partes do kit XM118 podem ser consultadas no manual de operação, como: Lâmpada DC Resistência para aquecimento Ventoinha Sensor de rotação Potenciômetro Sensor de temperatura Interface USART Interface USB Gerador de frequência, entre outros. 34
Ferramentas de Desenvolvimento Como ferramentas para o desenvolvimento de aplicações para o PIC 18F4550 são usados o simulador Proteus, o ambiente de desenvolvimento MPLAB e um compilador C. O Proteus é um ótimo software de simulação de circuitos. Usaremos o MPLAB como meio para gravar o PIC. Há muitos compiladores C para microcontroladores PIC, como: PCW, C18, MikroC, entre outros. A Exsto, fabricante do kit XM118, adotou o compilador C18 da Microchip. Porém, verificou-se que este compilador gera o firmware não muito otimizado (ocupa mais memória no PIC) e o aprendizado da linguagem C é um pouco mais demorado. 35 Ferramentas de Desenvolvimento Por este motivo, o compilador C a ser usado no laboratório é o MikroC da Mikroeletrônica. O MikroC é um dos compiladores mais adotados para a programação de microcontroladores PIC. Isso se deve ao fato dele gerar um firmware menor, ocupando menos espaço de memória no PIC. E outra vantagem do MikroC é sua total compatibilidade com o C padrão ANSI e a facilidade de programar em sua linguagem C, com uma curva de aprendizado mais curta. Ao programar em C, recomenda-se consultar o datasheet do PIC 18F4550, assim como o help do compilador. 36
Compilador MikroC 37 Exemplo de um programa C Segue abaixo um programa para fazer piscar o led conectado ao pino D0 do PIC 18F4550 no kit. Isso equivale a um hello world quando se está aprendendo a programar em C. void main(){ // pisca o led a uma frequência de 1 Hz } TrisD = 0x00; // configura toda a porta D como saída PortD = 0x00; // atribui nível baixo a todos os pinos em D while(1){ // laço infinito RD0_bit = 0; // nível baixo em D0 (apaga led) } delay_ms(500); // atraso de 500ms (0,5s) RD0_bit = 1; // nível alto em D0 (acende led) delay_ms(500); 38
Exemplo de um programa C Programa equivalente ao anterior. #define Led RD0_bit // macro Led associado ao pino D0 void main(){ // pisca o led a uma frequência de 1 Hz TrisD = 0x00; // configura toda a porta D como saída } PortD = 0x00; // atribui nível baixo a todos os pinos em D while(1){ // laço infinito } Led = ~Led; // inverte o nível lógico do pino D0 delay_ms(500); // atraso de 500ms (0,5s) 39