E2prom 877

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

E2prom 877

Mensagempor zero » 13 Nov 2006 00:01

Pessoal alguem tem algum exemplo de como posso escrever na e2prom do 877 ?
To com um projeto de fazer um relogio de ponto, entao iria fazer a leitura no condigo de barras que gera um numero por exemplo 000000059 e quero armazenar isso na eprom . Para mais tarde TX ela para um software e gerar um arquivo texto . Sera que to no caminho certo ?
alguem pode ajudar ?
Avatar do usuário
zero
Nibble
 
Mensagens: 65
Registrado em: 12 Nov 2006 23:57
Localização: Indaiatuba - SP

Re: E2prom 877

Mensagempor andre_luis » 13 Nov 2006 09:20

Se for no CCS, nao tem problema algum, segue uma rotina que uso abaixo:


Código: Selecionar todos
void AcessaEEPROM ( unsigned int8 direcao )
{
unsigned int8 BufferMemoria = 0 ;
switch ( direcao )
   {
   case LEITURA :
      while ( BufferMemoria < TamanhoString )
         {
         StringToDisplay[BufferMemoria] = read_EEPROM( BufferMemoria )  ;
         delay_us( 1000 )                               ;
         BufferMemoria++                              ;
         }
   break ;
   case ESCRITA :
      while ( BufferMemoria < TamanhoString )
         {
         write_eeprom ( BufferMemoria , StringToDisplay[BufferMemoria] ) ;
         delay_us( 1000 )                                ;
         BufferMemoria++                               ;
         }
   break ;
   }
}



Esses dados sao escritos na EEPROM após recebidos pela serial.

+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor zielpunkt » 13 Nov 2006 09:47

Se for em assembly, segue exemplo básico de escrita e leitura contido no datasheet do 877A, no qual vc DEVE pesquisar outros detalhes do mcu:

Escreve:

BSF STATUS,RP1 ;
BSF STATUS,RP0
BTFSC EECON1,WR ;Wait for write to complete
GOTO $-1 ;
BCF STATUS, RP0 ;Bank 2
MOVF DATA_EE_ADDR,W ;Data Memory
MOVWF EEADR ;Address to write
MOVF DATA_EE_DATA,W ;Data Memory Value to write
MOVWF EEDATA ;
BSF STATUS,RP0 ;Bank 3
BCF EECON1,EEPGD ;Point to DATA memory
BSF EECON1,WREN ;Enable writes
BCF INTCON,GIE ;Disable INTs.
MOVLW 55h ;
MOVWF EECON2 ;Write 55h
MOVLW AAh ;
MOVWF EECON2 ;Write AAh
BSF EECON1,WR ;Set WR bit to begin write
BSF INTCON,GIE ;Enable INTs.
BCF EECON1,WREN ;Disable writes


Lê:

BSF STATUS,RP1 ;
BCF STATUS,RP0 ; Bank 2
MOVF DATA_EE_ADDR,W ; Data Memory
MOVWF EEADR ; Address to read
BSF STATUS,RP0 ; Bank 3
BCF EECON1,EEPGD ; Point to Data memory
BSF EECON1,RD ; EE Read
BCF STATUS,RP0 ; Bank 2
MOVF EEDATA,W ; W = EEDATA


Se quer partir para um projeto mais elaborado, seja em assembly ou C, recomendo que pesquise em livros (para os dois casos existem livros muito bons do colega do forum Fábio Pereira) ou mesmo na internet a fim de compreender melhor as possibilidades que o mcu oferece, senão vai ficar muito difícil pra vc, ok.
"Talento é mais barato que sal. O que separa a pessoa talentosa da bem-sucedida é muito trabalho duro." [ Stephen King ]
zielpunkt
Byte
 
Mensagens: 376
Registrado em: 12 Out 2006 11:36
Localização: Sao Paulo - SP

Mensagempor Cláudio » 13 Nov 2006 10:41

Bom, creio que a única coisa certa é que você vai precisar de uma E2PROM. O problema é que a E2Prom interna do PIC é muito pequena (256 bytes). Assim, caso seu cartão tenha apenas 1 byte ( que implicará em até 100 cartões não alfanuméricos, como no padrão 2 de 5, ou até 255 cartões no formato alfanumérico, no formato 39) você teria capacidade para até 256 eventos (pontos) na memória,o que é realmente muito pouco.
Isto sem contar outros eventos de memória que você terá que gerenciar, como ponteiros, e outros recursos (lista branca?).
Experimente pesquisar sobre memórias E2Prom seriais (24C256 ou 24C512 por exemplo, dependendo da capacidade que precisar)
Qualquer coisa, estamos aí!
Abraços.
[]´s
Cláudio
_______________________________________
"Quem quer, de verdade, faz. Quem não quer, inventa desculpas.
Avatar do usuário
Cláudio
Byte
 
Mensagens: 110
Registrado em: 17 Out 2006 09:19

Mensagempor Maurício » 13 Nov 2006 16:53

sem esquecer tb, que E2PROMs tem vida curta (1 milhão de gravações) e dependendo da aplicação, isso daí é atingido em dois palitos.
existe uma tecnologia de RAM não volátil (NVRAM) da Ramtron, chamada FRAM. experimenta isso daí, tb.

[]'s

RETI.
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x