EEPROM 25LC1024 problema con la placa OLIMEX PIC32MX

0

Estoy intentando leer el registro de estado de la EEPROM siguiendo las instrucciones de esta Nota de aplicación. Quería tener la opinión de la comunidad sobre las señales que estoy recibiendo. No me parecen normales.

enlace

Diagrama de cableado: estoy usando exactamente el mismo pinout recomendado en la Nota de aplicación.

Cuando leo MISO, tengo un comportamiento extraño.

SeñalesMOSIyCS:

ObtengolaseñalMOSIcomoseesperabaenelflancoascendente.

Configuréelrelojparamarcara1MHz

CódigodeinicializaciónSPIycódigoenejecuciónenmimain.c.(deeewiki,adaptadoamisnecesidades)

#defineeepromCSLATBbits.LATB15voidinitSPI(void){//AddGPIOconfigonpinRB15eepromCS=1;//GNDIEC0bits.SPI1EIE=0;IEC0bits.SPI1RXIE=0;IEC0bits.SPI1TXIE=0;SPI2CONbits.ON=0;SPI2BUF=0;SPI2BRG=0;//1MHZSPI2STATbits.SPIROV=0;/*SPI2CONSettings*/SPI2CONbits.FRMEN=0;SPI2CONbits.SIDL=0;SPI2CONbits.DISSDO=0;//8bits!SPI2CONbits.MODE16=0;SPI2CONbits.MODE32=0;SPI2CONbits.CKP=0;//ActivestateishighSPI2CONbits.CKE=0;//samplingfromidletoactiveSPI2CONbits.SSEN=0;SPI2CONbits.MSTEN=1;SPI2CONbits.SMP=0;//sampleduringtransmissionSPI2CONbits.ON=1;}intmain(void){TRISBbits.TRISB15=0;CSEEPROM=1;initSPI();//EEPROMasaslaveunsignedcharstatus;unsignedchartmp;//FirstREADwhile(!SPI2STATbits.SPITBE);eepromCS=0;SPI2BUF=0x05;while(!SPI2STATbits.SPIRBF);status=SPI2BUF;SPI2BUF=0;while(!SPI2STATbits.SPIRBF);status=SPI2BUF;eepromCS=1;write_char(status);//EnablewriteLATCHwhile(!SPI2STATbits.SPITBE);eepromCS=0;SPI2BUF=0x06;while(!SPI2STATbits.SPIRBF);tmp=SPI2BUF;eepromCS=1;//ReadStatusregisterwhile(!SPI2STATbits.SPITBE);eepromCS=0;SPI2BUF=0x05;while(!SPI2STATbits.SPIRBF);status=SPI2BUF;SPI2BUF=0;while(!SPI2STATbits.SPIRBF);status=SPI2BUF;eepromCS=1;//write_char(status);while(42);return0;}

Hicecapturasdepantallasoloparalasdosúltimasoperaciones(habilitarelbloqueodeescriturayleerdesdeelregistrodeestado).Tengoexactamentelasmismasseñalescuandoleoelregistrodeestadoantesdeenviarelcomandowritelatch.

EstoyutilizandolaplacadeprototiposOlimexPIC32MX,debajodeladocumentacióndeprotoboardylahojadedatosdeEEPROM.

enlace enlace

Como de costumbre, el diablo está en los detalles, sería genial si pudiera tener una nueva visión de mi problema. Tal vez me haya perdido algo.

¡Gracias por tu ayuda!

PS: aumentar la velocidad en baudios para que coincida con 20MHz hace que la señal sea plana pero no resuelve mi problema.

    
pregunta Mehdi Sabwat

1 respuesta

0

No se parece a nada relacionado con el código. Se parece a un pin en cortocircuito a otro pin de salida que se establece en cero (u otro esclavo que no está configurando su MISO). Desconecte el chip de memoria, establezca PIC MISO en salida e intente cambiarlo escribiendo 1 y 0 en el bit de puerto correspondiente.

Otro sospechoso es la fuente de alimentación al chip de memoria. Asegúrese de que reciba VCC y tenga un condensador de VCC a tierra.

    
respondido por el Oleg Mazurov

Lea otras preguntas en las etiquetas