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:

 

  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 DQ0DQ7 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

   
   

 


 
 
 
 
 

Free Web Hosting