¿Cuál es la forma de detectar la inserción / extracción de la tarjeta SD?

1

Estoy conectando una tarjeta Micro SD de 32 GB con PIC32MX795F512L. Estoy siguiendo los ejemplos proporcionados en el libro de Lucio de Jasio. En uno de sus ejemplos, están usando while( !getCD()); para verificar si la tarjeta está presente o no. Pero esto parece no funcionar en mi caso porque cuando quito la tarjeta, no da ningún error y avanza. A continuación se muestra su código:

// SD card connector presence detection switch
int getCD( void)
// returns TRUE card present
// FALSE card not present
{
 return !SDCD;
}

En el hardware, SD-CD pin está conectado a RA15 . Entonces, ¿cuál es la forma de detectar la presencia de la tarjeta?

EDIT:

Arriba está el esquema para las conexiones de la tarjeta SD. SD-CD# pin es el pin para la detección de tarjetas. Estoy comprobando el cambio de voltaje en R34 pero no hay cambio. Cuando se retira la tarjeta, muestra 3.5v y cuando se inserta, nuevamente muestra 3.5v . ¿Estoy haciendo algo mal o el hardware tiene algún problema?

    
pregunta user007

1 respuesta

2

La detección de la tarjeta SD se realiza normalmente mediante un interruptor mecánico integrado en el zócalo de la tarjeta SD. Se abre y se cierra cuando la tarjeta se inserta y se retira. Tendrá que investigar cómo se conecta este interruptor en su hardware y probar que funciona correctamente hasta el pin PIC32 antes de que empiece a pensar en los problemas de software.

La prueba del hardware debería ser tan simple como mirar la señal que va al pin PIC32 usando una sonda de alcance o multímetro en modo de medición de voltios. Con el monitor alimentado por la placa PIC32 si hay cambios de estado en la señal al insertar o quitar una tarjeta. Si no ve esto funcionando, entonces el interruptor en el zócalo no está conectado correctamente. Es típico que un lado de estos interruptores esté conectado a GND. El otro lado tiene una resistencia pullup a + 3.3V y también se conecta al pin PIC32. Si funciona correctamente, deberías verlo cambiando entre 3.3V y GND.

Una vez que haya verificado la conexión de hardware, es hora de investigar el aspecto del software PIC32. La conexión de pin particular debe ser un pin de puerto de entrada de propósito general en el microprocesador. Luego, ese pin de puerto debe configurarse correctamente para actuar como un pin de entrada digital. Si no se configura correctamente, no habrá alegría en la lectura de la señal de estado de la tarjeta SD.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas