Um microcontrolador tem normalmente apenas algumas destas funcionalidades internamente. Por este motivo, é comum elas estarem disponíveis também em integrados isolados.
A Nomenclatura
Os nomes dados às diversas funcionalidades encontradas nos microcontroladores são, no mínimo incosistentes. É comum se dar nomes diferentes a recursos iguais (normalmente por motivos de marketing) e ocasionalmente dá-se o mesmo nome a recursos diferentes. Alguns nomes vem de motivos históricos, lembrança de uma realidade que já não existe mais. Outros são simplesmente inexplicáveis.
De qualquer forma, se você aceita a terminologia "Memória de Acesso Randômico" (vulgarmente chamada de RAM) apesar de o acesso randômico não ser a principal distinção de outros tipos comuns memórias com nome diferente, não vai ter dificuldade em aceitar os nomes apresentados.
Memória Não-Volátil
Vamos começar vendo alguns tipos de memória (também de acesso randômico) que são ditas não-voláteis por manter o conteúdo mesmo quando não alimentadas. Estas memórias são usadas principalmente para armazenar o programa (ou firmware) e configurações. Num microcontrolador normalmente o programa a ser executado está todo em uma memória já no instante em que ele é ligado, dai a importância de ter uma memória não volátil com capacidade adequada.
O primeiro tipo é a ROM (Read-only memory), que é uma memória cujo conteúdo é definido na fabricação e não pode mais ser alterado. Este tipo de memória é usado principalmente para firmware, quando se vai produzir uma grande quantidade e é improvável que seja encontrado um bug catastrófico.
Uma variação da ROM é a PROM (Programmable read-only memory). Esta memória vem de fábrica vazia e pode ser gravada uma única vez em equipamento especializado. É usada quando o volume não justifica (economicamente) usar a ROM.
Nos anos 80 era comum o uso da EPROM (Erasable PROM). A EPROM é uma PROM que pode ser apagada, este apagamento é feito expondo o componente a luz ultra-violeta por algumas horas. A gravação também requer um equipamento especializado.
O mais comum hoje em dia é o uso de memória Flash para armazenar o firmware. Este tipo de memória está bastante disseminado na forma de pen-drives e cartões de memória SD, Memory Stick, etc, porém o usuário destes produtos normalmente não percebe as limitações e características da memória Flash.
O primeiro ponto importante é que existem três operações muito distintas na memória Flash:
- a leitura é uma operação rápida e que não requer cuidados especiais.
- a escrita tem a característica de permitir apenas alterar bits de valor '1' para o valor '0'. A operação no sentido contrário ('0' para '1') não pode ser feito por uma escrita. A escrita é uma operação mais lenta que a leitura.
- o apagamento coloca os bits em '1'. Além de ser uma operação demorada, na maioria dos casos não pode ser feita sobre uma única posição de memória. O apagamento é normalmente feito por blocos ou setores. Existe um limite para o número de apagamentos que podem ser realizados em um setor (da ordem de 100 mil a 1 milhão). Isto significa que não é viável manter variáveis de alteração frequente em memória Flash.
Alguns fabricantes se referem a memórias Flash de programa (com poucos setores grandes), e de dados (com muitos setores pequenos, como 512 bytes). Estas últimas são mais apropriadas para armazenamento de arquivos, utilizando-se estruturas especiais que evitam que os acessos sejam concentrados sempre nos mesmos setores.
Por último, temos a EEPROM (Eletrically Erasable PROM) ou NVRAM (Non-volatile RAM), que é outro tipo de memória que pode ser gravado e apagado diretamente no circuito. As diferenças entre a EEPROM e a Flash são a tecnologia de implementação da memória no chip e a EEPROM normalmente ter uma capacidade menor e efetuar o apagamento internamente dando a impressão de que cada posição pode ser alterada individualmente.
Memória RAM
A memória RAM é uma memória onde leitura e escrita podem ser feitas à vontade, porém o conteúdo é perdido quando ela perde a alimentação. A RAM é um recurso escasso nos microcontroladores, exceto nos modelos mais avançados (e caros). Memórias acima de 2K são muitas vezes luxo e memórias abaixo de 512 bytes não são incomuns.
Nenhum comentário:
Postar um comentário