TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: ferraza en 17 de Agosto de 2005, 07:37:00

Título: 8051 CON MEMORIA SERIAL EEPROM 93CL66
Publicado por: ferraza en 17 de Agosto de 2005, 07:37:00
NECESITO POR FAVOR URGENTE INFORMACION SOBRE COMO MANEJAR MEMORIA SERIAL EXTERNA CON EL 8051 O 8052, BAJE INFO DE ATMEL PERO NO PUEDO HACER GRABAR Y LEER LA MEMORIA, ES COMO QUE LA MEMORIA NO ESTA EN LA PLACA.
Título: RE: 8051 CON MEMORIA SERIAL EEPROM 93CL66
Publicado por: xerex en 18 de Agosto de 2005, 12:11:00
has probado a habilitar la eprom?

Te dejo este ejemplo de una 93C45 por si te vale, esta en C un saludo.

void EE_CLK (void)
{
   EE_SK = 1;
   wait (5);
   EE_SK = 0;
}
void eeprom_write(unsigned int _data,unsigned int _address)
{
unsigned int i;
EE_CS=1;
EE_DI =1;      // 1
EE_CLK();
EE_DI =0;      // 0
EE_CLK();
EE_DI =1;      // 1
EE_CLK();
_address<<=1;
for(i=0;i<7;i++){
   if((_address&128)==128)
      EE_DI=1;
   else
      EE_DI=0;
   EE_CLK();
   _address<<=1;
   }
for(i=0;i<8;i++){
   if((_data&128)==128)
      EE_DI=1;
   else
      EE_DI=0;
   EE_CLK();
   _data<<=1;
   }
EE_CS=0;
EE_CS=1;
while(!EE_DO);
EE_CS=0;
}
unsigned char eeprom_read(unsigned char _address){
unsigned int i;
unsigned char temp1;

temp1=0;
EE_CS=1;
EE_DI =1;      // 1
EE_CLK();
EE_DI =1;      // 1
EE_CLK();
EE_DI =0;      // 0
EE_CLK();
_address<<=1;
for(i=0;i<7;i++){
   if((_address&128)==128)
      EE_DI=1;
   else
      EE_DI=0;
   EE_CLK();
   _address<<=1;
   }
   EE_CLK();
for(i=0;i<8;i++){
   temp1<<=1;
   if(EE_DO)   temp1++;
   EE_CLK();   
   }
EE_CS=0;
return temp1;
}
void eeprom_enable(void){
unsigned int i;

EE_CS=1;
EE_DI =1;      // 1
EE_CLK();
EE_DI =0;      // 0
EE_CLK();
EE_DI =0;      // 0
EE_CLK();
EE_DI=1;
for(i=0;i<7;i++){
   EE_CLK();
   }
EE_CS=0;
}