Las tarjetas SD pueden utilizar dos protocolos:
- Bus SD: Trasferencia paralela de 4 bits.
- SPI (Serial Peripheral Interface): Interfaz de Periféricos Serie.
Las señales que se utilizan son:
- CLK (Línea de reloj): Es la señal de
reloj.
- MOSI (MasterOut-SlaveIn): Línea por donde
el maestro envía y el esclavo recibe.
- MISO (MasterIn-SlaveOut): Línea por donde
el maestro recibe y el esclavo envía.
- CS (Chip Select)/ SS (Slave Selector):
Conecta o desconecta la operación del dispositivo con el que
comunicamos. Permite la comunicación de varios esclavos a un mismo
maestro, multiplexando la señal de reloj.
Pines de una tarjeta SD
Conexiones entre Arduino y SD
Señal |
Arduino |
SD |
CS / SS |
4 |
1 |
MOSI |
11 |
2 |
MISO |
12 |
7 |
CLK |
13 |
5 |
VCC
|
|
4 |
GND |
|
3, 6 |
Los pines 8 y 9 de la tarjeta SD no se
utilizan
Montaje de un interfase casero
La alimentación y los buses de la
tarjeta trabajan a 3,v3. Por lo que hay que incluir un divisor de
tensión en todas los lineas. Para esto, instalaremos un divisor de
tensión, según el esquema inferior.
R1, R3, R5 = 2K2
R2, R4, R6 = 1K2
Software
Arduino tiene una librería especifica
para este dispositivo SD.H
Hay que definir el pin por el cual
seleccionamos la señal CS/SS. Normalmente se utiliza el pin 4.
Pero hay módulos que la tienen
definida:.
- Arduino Ethernet shield: pin 4
- Adafruit SD shields and modules: pin 10
- Sparkfun SD shield: pin 8
En el lanzador de Arduino existen
varios ejemplos para comenzar.
- Cardinfo: Muestra la información de la tarjeta. Formato, capacidad, ficheros presentes.
- Dataloger: Muestra los datos grabados de un sensor.
- DumpFile: Muestra el contenido de la tarjeta en el monitor serie.
- Files: Como crear y borrar ficheros en la SD.
- Listfiles: Muestra los ficheros presentes en la tarjeta (el ejemplo tiene los siguientes errores):
- incluir la linea: const int chipSelect = 4;
- cambiar la linea pinMode(10, OUTPUT); por pinMode(4, OUTPUT);
- if (!SD.begin(10)) { por if (!SD.begin(4)) {
- ReadWrite: como leer y escribir en la tarjeta.
Las pruebas de los eejmplos las he
realizado con Arduino UNO y Arduino Ethernet shield.
Hola felicidades por la publicacion , me podrias decir si la misma configuracion explicada la puedo aplicar al nuevo arduino ethernet porque quiero trabajar en el con la sd y poder leer y escribir informacion pero no me funciona
ResponderEliminarHola.
EliminarNo te lo puedo decir, debería ser posible porque las librerías son estándar.
Cómo hacer lo mismo pero en vez de arduino a una usb
ResponderEliminarNunca voy a entender a que corresponden miso y mosi respecto de data+ y data - o RX y TX
ResponderEliminar