Estoy intentando escribir datos en una tarjeta SD desde un microcontrolador ATmega328P sin suerte. He reducido la fuente del problema a la salida MISO de mi tarjeta SD panel de distribución , que no parece para poder tirar todo el camino hasta 3.3V. Esto es fácil de ver en un osciloscopio:
Enlaimagendearriba,latarjetaSDestáintentandoresponderalmaestrocon0xFF.Sinembargo,solopuedealcanzarhasta500mV.Acontinuaciónsemuestralaseñaldelreloj,queutilicéparacomprobarqueelosciloscopioestabafuncionando.
Mi pregunta es: ¿Cuál podría ser la fuente de este problema? Siento que la respuesta es mirarme directamente a la cara. Tal vez debería tomarme un descanso y volver con un par de ojos nuevos.
Hardware:
- Tarjeta SD de 16 GB - TS16GSDHC10E
- Sparkfun Breakout Board (www.sparkfun.com/products/11403)
- ATmega328P en Arduino
Más información:
- La tarjeta SD funciona con un pin de suministro de 3.3V en Arduino.
- Las señales MOSI / SS / SCK de 0-5V se reducen a 0-3.3V por medio de un divisor resistivo (560Ω sobre 1.1kΩ, creo).
- Algunas fuentes recomendaron una resistencia de pull-up grande (~ 50k) en MISO. Esto no parece hacer nada, excepto agregar un desplazamiento de 3.3 VCC a MISO. Por extraño que parezca, la eliminación de la resistencia no eliminó el desplazamiento de CC.