TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: IngRandall en 13 de Noviembre de 2015, 10:41:32
-
Hola, estos días he estado trabajando con la memoria flash SST25VF016B-75-4I-S2AF y con el PIC24FJ128GB110, esta memoria es SPI, ella esta trabajando bien pero de un momento a otro no responde nada y toca apagar y prender el sistema, quisiera saber como detecto que por SPI no ha llegado una respuesta, hasta ahora los métodos que manejo me regresan un 0 y no encuentro forma de saber si es por dato o por que no hubo respuesta de la memoria.
-
No podes saberlo. Ya que no podes distinguir entre un 0 (grabado) y un dato. La unica que quedaria seria leer otra posicion de memoria conocida para ver que este correcta. Pero si tenes problemas asi eso no te lo va a solucionar. Y algun problema tenes de soft o de HW. La flash sin grabar seria un 0xFF
-
Y en el PIC no hay alguna bit de los registros que indique que hubo o no recepcion
-
No por que el maestro es quien maneja el clock. El clock es enviado por el maestro y se toma muestras de acuerdo a la entrada en los flancos del clock. El escalvo no tiene posibilidad de manejar el clock, y el SPI es sincrono, entonces se deben tomar los valores respecto del reloj, el maestro toma y envia un dato respecto al reloj suyo. Espero que me entiendas.
Es decir, si vos desconectas completamente el PIC de la flash y pones a VDD el pin de recepcion, cuando "recibas" algo vas a recibir 0xFF,
No tenes NADA para indicarte que eso fallo. No es como una UART que tenes bit de start/stop o un I2C que posee tambien lo mismo y el ACK, en el SPI no tenes bits de "control".
Asi que pueden ser varias cosas.. como dije un error de soft o un error de HW. Lo primero que probaria es que cuando deja de funcionar es ir a ver la salida y entrada del SPI, si tenes un analizador logico seria genial, sino vas a tener que arreglartela con un osciloscopio y disparo unico. Ahi vas a tener que ver que correctamente se este enviando y recibiendo los datos.
Con eso vas a saber si es problema de la flash o del PIC, luego procedes a ver si es problema del PIC o del software
-
Muchas gracias por la explicación, perfectamente entendido.