Flash Possuem memória de programa interna do tipo Flash (gravável e apagável eletricamente). Podem ser reprogramados. Isso faz com que o código possa ser mudado várias vezes. Microcontroladores – noções gerais Definição Um microcontrolador pode ser definido como um single-chip computer (computador em um único chip), microcomputer, ou ainda como embedded controller. O termo MCU (Micro Controller Unit) também é bastante utilizado para se designar esse dispositivo. No mesmo chip estão integrados uma CPU, também chamada de core (núcleo), e circuitos auxiliares (periféricos) como memória de programa, memória de dados, circuito de clock, interface de comunicação serial, temporizadores/contadores, portas de I/O, etc. Esses diferentes recursos embutidos em um microcontrolador variam em função do modelo e do fabricante. É uma tarefa do desenvolvedor especificar o microcontrolador mais adequado para cada aplicação. Classificação 1. Quanto ao número de bits de dados Um importante critério para a classificação dos microcontroladores é o número de bits de dados. O segmento mais popular é o de 8 bits, sendo que existem ainda os modelos de 4, 16 e 32 bits. 2. Quanto ao armazenamento do programa Outra forma de se classificar os microcontroladores é em função do método de armazenamento do programa (código). São exemplos: ROMless Requerem uma memória externa armazenamento do programa. para o OTP One-Time Programable – permite a programação uma única vez. São viáveis para produção em baixa escala, na qual não se justifica arcar com o custo de uma máscara. Masked Contêm uma ROM que é programada pelo fabricante, com o código fornecido pelo usuário. São mais baratos que os equivalentes OTP ou flash, mas justificáveis apenas se comprados em grandes quantidades (a partir de milhares). Microcontroladores – noções gerais EPROM Possuem memória de programa interna do tipo EPROM (UV-EPROM). O programa pode ser gravado e depois apagado expondo-se a janela do dispositivo à luz ultravioleta. Após o apagamento um novo programa pode ser gravado. EEPROM Possuem memória de EEPROM (Eletrically Read Only Memory). com memória reprogramados. programa interna do tipo Erasable Programmable Assim como os modelos Flash, podem ser Recursos e outras características de hardware Faixa de alimentação A maioria dos modelos utiliza o padrão de alimentação TTL de 5,0V, mas há modelos que utilizam tensões mais baixas como, por exemplo, 3,3V. Clock O método mais comum de se fornecer o clock a um microcontrolador é conectando-se um cristal e capacitores externos, nos pinos referrentes so oscilador interno. Também existe a possibilidade de gerar o clock externamente e entregá-lo ao dispositivo. As freqüências de clock típicas vão de 4 à 16MHz. Entrada de reset Quando um microcontrolador é ligado, procedimento chamado de power-on, há a necessidade de resetá-lo. Geralmente, uma malha RC externa conectada ao pino reset é utilizada para executar esta tarefa automaticamente. Existem modelos que dispensam estes componentes externos. Ports de I/O (In/Out) Geralmente esses pinos podem ser configurados como entrada ou saída digital, permitindo o interfaceamento com o mundo externo. O acesso às linhas pode ser feito de uma só vez (endereçando o byte), ou individualmente (bit-endereçável), caso o microcontrolador forneça este benefício. É comum que essas linhas de I/O possuam funções especiais, relacionadas aos "periféricos 1/3 Timers/Counters (temporizadores/contadores) Em sistemas microcontrolados em geral, os timers/counters são utilizados para gerar pedidos de interrupção periódicos e precisos, medir larguras de pulsos externos, contagem de tempo, entre outras funções. on-chip" (serial, conversor A/D e etc.). Confere ao usuário determinar se elas serão usadas por esses periféricos ou como porta digital de I/O padrão. Algumas linhas podem ainda ter maior capacidade de corrente do que outras (para drivear LEDs, por exemplo, em que é necessária capacidade de 20mA). Brownout detector A tradução para o termo brownout é "redução ou falta de energia". Tem a função de proteger o dispositivo, evitando que possíveis falhas na alimentação levem-no a executar operações indevidas ou ao corrompimento de dados. Isso é feito mantendo-se o micro resetado, enquanto a tensão não retorne a valores aceitáveis. Interface serial Um microcontrolador pode oferecer comunicação serial baseada em diferentes protocolos. Os tipos de interfaces são: Watchdog timer Garante o funcionamento do microcontrolador, resetando-o caso ele trave. Quando ocorre um overflow do watchdog timer, o micro é resetado. Para prevenir um overflow, o watchdog timer deve ser limpo antes que isso ocorra, o que é feito através de instruções de programa. Interrupções Quando gerada uma interrupção (externa ou interna), o interrupt handler (gerencidor de interrupção) responsabiliza-se por fazer a CPU executar a subrotina de interrupção e retornar ao programa principal. Alguns conceitos relativos às interrupções são descritos a seguir: Estrutura nesting A maioria dos micros possui estrutura de interrupção nesting, isto é, uma interrupção de prioridade maior pode interromper outra de prioridade menor que esteja sendo atendida. Mascaramento É a possibilidade de se impedir, geralmente por software, que uma certa interrupção seja atendida. Existem também as interrupções não-mascaráveis, que não podem ser desabilitadas por software. Tipo de ativação das interrupções Em geral, o microcontrolador pode reconhecer o sinal lógico de interrupção de duas maneiras distintas: - pelo nível (alto ou baixo); ou - pela borda (subida ou descida); Microcontroladores – noções gerais UART/Enhanced UART UART é a sigla para Universal Asynchronous Receiver/Transmiter, e é o tipo de interface serial mais utilizada, baseada no padrão RS-232. Algumas dessas UARTS, para gerar o boud rate (ou neste caso taxa de bits por segundo BPS), necessitam de um timer do microcontrolador, enquanto outras possuem um gerador de boud rate exclusivo, que utiliza o clock. Os boud rates mais comuns são de 300, 1200, 2400, 4800 e 9600 bouds. A Enhanced UART, ou "UART avançada", tem todas as características da UART, além de funcionalidades como detecção de erro e reconhecimento automático de endereço. SPI O padrão SPI (Serial Peripheral Interface) é dedicado à comunicação com periféricos ou, mais precisamente, entre dois circuitos integrados. Trata-se de um padrão bastante útil, já que atualmente muitos chips como conversores A/D, memórias EEPROM ou Real Time Clocks exigem este tipo de comunicação. I2 C O chamado Inter-Integrated Circuit (I2C), trata-se de um padrão instituído pela Philips, dedicado também à comunicação entre chips. CAN bus O padrão CAN bus (Control Area Network) funciona muito bem em ambientes ruidosos e insalubres, como em indústrias ou equipamentos pesados. É ideal para aplicações que requerem uma comunicação confiável. Conversor A/D Utilizado para a aquisição (digitalização) de sinais analógicos. Como exemplos de 2/3 resoluções disponíveis pode-se citar os modelos de 8, 10 ou 12 bits. A maioria deles permite gerar uma interrupção quando uma conversão é finalizada. Conversor D/A Utilizado para a geração de sinais analógicos. Comparador analógico Quando a entrada positiva do comparador é maior que a negativa sua saída é setada, podendo ser gerada uma interrupção. Uma das aplicações é a monitoração do nível de tensão de uma bateria, para avaliar suas condições de carga. PWM A saída PWM entrega pulsos com largura do tempo em alto configurável por software. O duty cycle (dado por talto/T) é programado escrevendo-se em registros especiais do microcontrolador. A aplicação mais difundida é no controle de potência de motores. Low-Power Modes A maioria dos microcontroladores pode entrar em modos de baixo consumo (low-power), nos quais uma potência baixíssima é consumida. O micro é “acordado” por uma interrupção interna, externa, ou reset. Esses modos são tipicamente chamados de Wait, Idle, Sleep, entre outros. Real Time Clock Significa relógio de tempo real. Uma vez programados, mantém informações como hora, minutos, segundos e data atualizadas. Geralmente é necessário um cristal externo. EEPROM Dependendo da aplicação, pode ser necessário o armazenamento de dados que não podem ser perdidos quando desligada a alimentação. Para isso, alguns microcontroladores oferecem um espaço de memória de dados EEPROM, que é do tipo não volátil, e atende a essa necessidade. Driver dedicado para display Alguns microcontroladores oferecem drivers para displays especiais do tipo LCD comuns ou matriciais. de 80 instruções (o 8051, por exemplo, tem 111). Muitas delas são bastante eficientes e especializadas, mas às vezes complicadas, requerendo vários ciclos de clock para sua execução. RISC Reduced Instruction Set Computer, ou computador de set de instruções reduzido. Implementando-se menos instruções, o hardware do chip é reduzido, resultando em um dispositivo menor. Isso implica em menos consumo, além da possibilidade de adição de outros recursos. Instruções mais simples são executadas com maior velocidade. Ferramentas para desenvolvimento Emulador É o equipamento ideal para o desenvolvimeto de projetos. Ele é "soquetado" no lugar do microcontrolador, podendo monitorar todos os parâmetros internos. Utiliza como interface o PC. Simulador Simula o microcontrolador no PC. É indicado no processo de depuração do programa, permitindo que se busquem erros de algoritmo e de lógica, por exemplo. Não faz interface com os dispositivos externos. Assemblador É o programa que transforma os códigos escritos em assembly em linguagem de máquina. Geralmente os fabricantes dos chips fornecem gratuitamente assembladores para seus dispositivos. Compilador C A maioria dos microcontroladores possuem compiladores C disponíveis. Isso permite o desenvolvimento de aplicações de forma mais ágil, se comparada à programação em assembly. Os códigos gerados pelos compiladores mais modernos são bastante eficientes em termos de velocidade. Arquiteturas CISC Complex Instruction Set Computer, ou computador de set de instruções complexo. Um microcontrolador CISC típico possui mais Microcontroladores – noções gerais 3/3