Fork me on GitHub

05/01/15

PIC: 25XX320

PIC: 25XX320



25XX320 corresponde as memórias eeprom's ( 25AA320, 25LC320, 25C320 ) de 32Kb da Microchip. Comunica-se via barramento SPI, utilizando apenas 4 fios (CLK, SDO, SDI, CS).

CARACTERÍSTICAS

  • Tensão de alimentação: 5V;
  • 4096 x 8 bit;
  • Tempo de escrita: 5ms;
  • Proteção de memória;


FUNCIONAMENTO

Para realizar a escrita:

  1. Habilitar o dispositivo resetando o pino CS;
  2. Enviar a instrução de escrita;
  3. Enviar um endereço de 16 bits. Enviar os 8 bits mais significativos, depois os 8 bits menos significativos.
  4. Enviar o dado ( 1 byte ) que será gravado no endereço.
  5. Desabilitar o dispositivo setando o pino CS;


Obs.: Antes de realizar a escrita é necessário enviar a instrução que permitirá escrever na memória.

Para realizar a leitura:

  1. Habilitar o dispositivo resetando o pino CS;
  2. Enviar a instrução de leitura;
  3. Enviar um endereço de 16 bits. Enviar os 8 bits mais significativos, depois os 8 bits menos significativos.
  4. Realizar a leitura de 1 byte do endereço.
  5. Desabilitar o dispositivo setando o pino CS;


O chip também possui um registro de status:
WPEN: Habilita/Desabilita a proteção de escrita. Trabalha em conjunto com o pino externo WP. Para mais detalhes, veja a tabela 3-3 do datasheet.

BP1-BP0 : Protege um bloco de memória. 00 - nenhum bloco está protegido; 01 - 0x0C00 até 0x0FFF está protegido; 10 - 0x0800 até 0x0FFF está protegido. 11 - todos os blocos estão protegidos.

WEL: Indica que a proteção da memória está desabilitada. ( ou se é permitida a escrita ).

WIP: Indica que uma operação de escrita está ocorrendo.

CÓDIGO DA BIBLIOTECA
FUNÇÕES
void E25XX320_Init() - Inicializa o pino CS.

char E25XX320_Read( unsigned address ) - Realiza a leitura de 1 byte da memória.
 address - endereço de memória do byte.

void E25XX320_Write( unsigned address, char value ) - Escreve 1 byte na memória.
 address - endereço de memória do byte.
 value - valor que será gravado na memória.

void E25XX320_Page_Write( unsigned page, char *wData ) - Escreve 32 bytes na memória.
 page - número da página de memória.
 wData - ponteiro para o inicio do vetor de bytes.

E25XX320 E25XX320_Get_Status() - Retorna o valor do registro STATUS.

void E25XX320_Set_Status( E25XX320 wData ) - Escreve no registro STATUS;
wData - valor que será gravado no registro STATUS.

void E25XX320_Protect( char enable ) - Envia o comando para habilitar/desabilitar a escrita na memória.
 enable - Se 1 habilita a escrita na memória. Caso contrário, desabilita a escrita na memória.

EXEMPLO

Um comentário:

Postagens Relacionadas!!