Memórias Flash
A célula de uma memória Flash é semelhante à célula de uma EEPROM.
Na memória Flash , a camada isolante de óxido de silício entre a porta flutuante(Floating Gate) e o substrato é mais fina do que na memória EEPROM.
Características das memórias Flash:
a)Não-Volátil
b)Apagável Eletricamente totalmente ou por setor, sem retirá-lo do circuito.
c)Grande Densidade
d)Alta Velocidade de Acesso,daí a denominação Flash.
e)Baixo Custo
Na operação de escrita, uma alta tensão de programação é aplicada na porta de controle(Control Gate).Isto ocasiona o surgimento de um canal com excesso de elétrons livres, crescendo a corrente dreno-fonte.
Esse aumento na energia dos elétrons,faz com que sejam capazes de vencer a barreira de óxido e então são capturados pela porta flutuante(Floating Gate).
Se retirarmos a tensão de alimentação e a tensão aplicada na porta de controle,os elétrons livres armazenados na porta flutuante não tem por onde descarregar.
Veja a figura a seguir:
OBS:Quando a porta de controle de uma célula escrita é levada ao nível lógico 1 durante uma leitura, a célula não conduzirá,pois a carga negativa presente na porta flutuante impedirá a indução de um canal entre os terminais dreno e fonte.
Para apagar o conteúdo de uma célula Flash, a tensão de fonte(Source) é colocada em Vpp, a porta de controle(Control Gate) é aterrada e o dreno(Drain) fica flutuando.
Devido a grande tensão aplicada na fonte (em relação à tensão na porta), há uma atração dos elétrons negativamente carregados da porta flutuante para a fonte através da fina camada de óxido.
Veja a figura a seguir:
OBS: Quando uma célula apagada tem a porta de controle colocada no nível lógico 1 durante uma leitura, será induzido um canal entre os terminais dreno e fonte(pois existe ausência de cargas na porta flutuante),fazendo a célula conduzir
Memória Flash C-MOS 28F256A ( capacidade é 32K X 8 bits )
![]() |
As funções executadas por cada pino do diagrama acima estão indicadas na tabela a seguir:
Todas as operações associadas com alterações no conteúdo da memória - identificador inteligente, apagar, verificação de apagar, programar e verificação de programa - são acessadas através do registrador de comando, interno à memória.
Diagrama de blocos da memória 28F256A.
As operações de leitura, escrita e 'standby' são controladas pelas entradas de controle WE#, CE# e OE#.
A tabela a seguir mostra o que acontece com os pinos de dados DQ0 a DQ7 para diferentes níveis das entradas de controle.
Para que a memória realize qualquer uma das operações listadas acima é necessário alterar o conteúdo do registrador de comando da memória. As operações da memória são selecionadas aplicando um tensão maior que 6,5V(alta tensão) no pino VPP e escrevendo uma palavra de dados específica no registrador de comando.
A figura a seguir mostra as definições de cada comando.Veja que alguns comandos
precisam de dois ciclos de clock para serem executados.
Se a tensão VPP for menor que 6,5Volts, o conteúdo do registrador de comando vai para 00H e a memória entra no modo de somente leitura.Os comando são escritos no registrador de comando empregando as temporizações de escrita padrões de microprocessadores.
Quando VPP é menor que 6,5Volts o conteúdo do registrador de comando assume o default em comando de leitura, tornando a 28F256A uma memória somente de leitura. O conteúdo da memória não pode ser modificado.
Caso VPP fique ligado na alta tensão permanentemente, então todas as operações podem ser realizadas, de acordo com o conteúdo do registrador de comando.
Com Chip-Enable(CE#) no nível alto, a maioria dos circuitos internos da 28F256A é desabilitada e há uma redução do consumo.As saídas ficam em alta impedância independente do sinal Output-Enable(OE#).
Com os sinais Chip-Enable(CE#) e Output-Enable(OE#) no nível lógico baixo e o pino A9 sendo levado a alta tensão, então ativa a operação de identificação inteligente do dispositivo.Os dados lidos das locações 0000H e 0001H representam o código do fabricante e o código do dispositivo, respectivamente.
O registrador de comando não ocupa posição de memória endereçável.O registrador é uma latch para armazenar comandos, junto com endereços e dados necessários para executar o comando.Para escrever no registrador de comando, deve-se levar o sinal Write-Enable(WE#) para o nível lógico baixo, enquanto o Chip-Enable(CE#) está baixo e Output-Enable(OE#) no nível alto.Os endereços são armazenados na borda de descida do pulso Write-Enable(WE#) enquanto os dados são registrados na borda de subida do pulso Write-Enable(WE#).Observe que é necessário que VPP seja maior que 6,5Volts para realizar estas operações.
Para preparar a 28F256A para leitura é necessário escrever 00H no registrador de comando.
Os passos são os seguintes:
(a)Aplicar 00H
nos pinos de dados;
(b)Com CE#
baixo e OE# no nível alto, pulsar WE# para o nível
baixo;
(c)Os pinos de endereços podem assumir
quaisquer valores pois os dados são armazenados no registrador;
(d)Isto feito, a memória está pronta para ser lida enquanto o
registrador de comando estiver com 00H;
As operações para apagar uma memória 28F256A são:
(a)Escrever 20H(ver letra (b)
acima) no registrador de comando para preparar o CI para ser
apagado;
(b)Outra vez, escrever 20H no
registrador de comando para iniciar a operação de apagar;
(c)Com VPP no nível alto, todas as células de
memória serão apagadas em 10ms, aproximadamente;
O comando apagar/verificar é necessário para se ter a certeza que todas as células foram apagadas. Esta operação é feita para cada byte da memória.A operação é iniciada colocando A0H no registrador de comando. Então uma operação de leitura da posição de memória a ser verificada é feita e os dados de saída são comparados com FFH. Isto é feito para cada endereço da memória e leva 1s para verificar todas as posições da memória.Se algum endereço não tiver FFH, então a memória deve ser apagada novamente.
A escrita (programação) da memória flash 28F256A é realizada em dois ciclos, conforme descrito abaixo:
(a)Colocar VPP em alta tensão(maior que
6,5Volts);
(b)Escrever 40H no registrador
de comando, com CE# no nível baixo e OE# alto,
pulsar WE# para o nível baixo;
(c)Aplicar o endereço da locação a ser programada e colocar os
dados nos pinos DQ0-DQ7;
(d)Pulsar WE# para o nível baixo, com
CE# no nível baixo e OE# alto.Veja a figura a
seguir:
A verificação da programação correta de uma determinada posição de memória pode ser feita, inicialmente, escrevendo C0H no registrador de comando para preparar a operação de verificação.Em seguida, é realizada uma operação de leitura que fornece na saída os dados da locação programada.
O processo completo de programar e verificar cada endereço
leva 500ms aproximadamente para a memória flash 28F256A.
BACK