segunda-feira, 4 de julho de 2016

Microcontroladores... esses pequenos computadores

O propósito desse post é comparar os microcontroladores que eu já tive a oportunidade de conhecer, claro que existem muitos outros no mercado e em um único post seria impossível esgotar todo o assunto.
Como eu disse na postagem anterior, um microcontrolador é um circuito integrado que possui um Microprocessador, alguma quantidade de memória e controles de I/O. É como se fosse um pequeno computador dentro de um único CI.
Minha primeira experiência foi com uma pequena placa chamada Basic Stamp II, ela vem equipada com um microcontrolador PIC16C56A-04 de 4 Mhz com um interpretador Basic interno e uma memória EEPROM serial que consegue armazenar até 80 instruções BASIC... só com isso já dá pra perceber que não dá pra fazer grandes coisas com ela, não é mesmo? O preço atual no site do fabricante é de US$ 29,00, é um valor muito alto para quem quer usar como hobby, a única vantagem é a fácil programação por meio da linguagem Basic. Essa placa pode ser reprogramada por um microcomputador a partir da sua IDE proprietária que faz a transferência usando a porta serial (outro problema nos dias atuais pois a maioria dos computadores só vem com USB, nada de Serial RS-232).
Depois eu comprei uma placa/laboratório para trabalhar com Microcontroladores PIC da Microchip, eles possuem uma linha muito grande e variada, em meus testes eu comprei vários chips do modelo mais comum deles, o PIC16F84A, por ser distribuído também no encapsulamento DIP ele é muito bem adaptado para ser usado em protoboards no laboratório.
Esses microcontroladores da linha PIC são construídos com a arquitetura RISC e o modelo de estrutura de memória Harvard, diferentemente dos PCs o código é armazenado em uma memória separada da memória que armazena os dados.
O tamanho da word de instruções é de 14 bits, pois esse é o tamanho de cada instrução, mas existem outros modelos com 12 bits e os mais novos com 32 bits.

Especificações dos modelos, todos funcionam em 20Mhz:

Microcontrolador Memória de programa RAM(bytes) EEPROM Preço no site
PIC16F84A 1792 bytes 68 bytes 64 bytes $3,11
PIC16F873 7 KB 198 bytes 128 bytes $4,57
PIC16F877 14 KB 368 bytes 256 bytes $5,39

Dentre as grandes vantagens desse tipo de microcontrolador estão o seu baixo custo e a possibilidade de reprogramação por meio da sua memória flash usando um protocolo serial, pode parecer pouco mas isso permite que se construa um "programmer" de baixo custo (isso é o circuito que liga o computador onde está o código escrito e o microcontrolador a ser programado) e também a possibilidade de se utilizar uma técnica chamada ICSP (In Circuit Serial Programming), como o próprio nome diz, você pode reprogramar o seu microcontrolador mesmo depois de já instalado em sua placa definitiva, basta que durante o projeto você deixe conectado os sinais necessário aos pinos que serão usados na reprogramação. Falarei mais sobre essa técnica em uma postagem futura.

Temos a linha da ATMEL que equipa as famosas placas Arduino, os primeiros modelos de placa eram equipados com o ATMEGA168 e encapsulamento DIP e vem espetados em um socket, esse chip pode ser substituído pelo ATMEGA328 (e foi nas placas mais novas) pois possui o mesmo tamanho e disposição de pinos, mas tem uma maior capacidade de armazenamento, veja na tabela adiante. As placas Arduino MEGA vinham equipadas com o ATMEGA1820, as mais modernas agora vêm equipadas com o ATMEGA2560 com maior poder de fogo, mas esses microcontroladores vem soldado na placa porque não tem encapsulamento DIP.
Existem muitos modelos diferentes de microcontroladores, placas e expansões usados pelo padrão Arduino, vamos deixar para falar disso depois, hoje vamos nos concentrar apenas nos microcontroladores, veja a comparação, todos funcionam em 16 MHz:
MicrocontroladorPinos I/OMemória
Digitalcom PWMAnalógicoFlashSRAMEEPROM
ATmega168146616 KB1 KB512 bytes
ATmega328P146632 KB2 KB1 KB
ATmega1280541516128 KB8 KB4 KB
ATmega2560541516256 KB8 KB4 KB

Note que temos memórias bem separadas aqui, a Flash contém o código que será executado, a SRAM contém a memória RAM de armazenamento temporário que vai apagar quando o microprocessador for desligado e a memória EEPROM que armazena dados e não se apaga quando desligado, essa última é muito usada para armazenar parâmetros de configuração do dispositivo, por exemplo, se você montou um dispositivo para ativar em certos dias da semana e horários, pode armazenar uma tabela com essa configuração nesse local e pode colocar na interface um modo de modificar a programação sem que você precise "compilar" e subir o programa com novos parâmetros para a memória Flash.
Os microcontroladores da ATMEL são tão completos que você pode construir um projeto Arduino sem precisar comprar uma placa Arduino, basta ter uma breadboard (aquela plaquinha de protótipo cheia de buraquinhos para encaixar as peças), um microcontrolador ATMEGA328 com encapsulamento DIP para encaixa na placa, um cristal de 16Mhz, dois capacitores cerâmicos de 22 pF, uma fonte de 5V e um adaptador USB -> Serial TTL (que depois da programação do microcontrolador pode ser retirado do projeto).

Espero ter ajudado a "esclariar" um pouco as ideias, ou então ter gerado dúvidas genuínas que os façam buscar por mais conhecimento.

Até a próxima !!!

Nenhum comentário:

Postar um comentário