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