Entonces, aquí está el escenario:
Tengo un Arduino y una tarjeta SD. Desafortunadamente, no tengo uno de los escudos elegantes y no tengo tiempo para pedir uno. Como sabemos, los Arduino funcionan con 5 V y las tarjetas SD funcionan con 3,3 V. Estaba pensando que podría usar una serie de divisores de voltaje para que los datos vayan del Arduino a la tarjeta (MOSI, Reloj, SS) hasta el voltaje correcto, pero no estoy seguro de armar un circuito elevador .
¿Necesitaría incluso un circuito elevador para la línea MISO, o podría simplemente alimentarlo directamente al Arduino? ¿Alguien tiene alguna idea aparte de las que mencioné?
Si no tiene el reloj SPI corriendo rápido, y usa la referencia de Arduino para configurar la división del reloj para el periférico SPI a bastante baja (sub MHz sería bueno), definitivamente puede salirse con la suya con un simple cambio de nivel de voltaje con resistencias.
No se preocupe si las señales que regresan al Arduino solo son de 3,3 V, se detectará como lógica ALTA (solo solo, pero funciona).
Personalmente, he hecho esto con un Arduino Uno y una tarjeta SD de Sparkfun. Usé una placa de pruebas y algunas resistencias. Mantenga los cables cortos, por supuesto.
Esta es la forma más barata y barata de hacerlo, pero honestamente recomiendo algún tipo de cambiador/traductor de nivel, que con muy poca investigación puedes encontrar en Internet.
EDITAR: si ayuda, usé resistencias de menos de 5K Ohm. Como descubrieron los de Adafruit, 10K es demasiado alto. Específicamente 1.8K y 3.6K
simular este circuito : esquema creado con CircuitLab
Simplemente use diodos para cambiar el nivel entre un AVR de 5 V y un lector/grabador de tarjetas SD de 3,3 V. Las resistencias de 10K deben estar en el módulo de la tarjeta SD, pero si no lo están, deberá agregarlas.
turbo j
Tustique