SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
71
Esta sección aprenderás a usar tarjetas MMC en modo SPI que es la forma más sencilla de trabajar a
nivel hardware nuestras tarjetas.
Material Cantidad
PIC18F2550 1
(Regulador) 7805 1
(Regulador) LF 33CV 1
2.2Kohm 3
3.3Kohm 3
Cap 100uF/35v 2
Cap 0.33uf/50v 1
Cap 47uF/16v 1
LED ROJO 1
LED AMARILLO 2
MicroSD 512MB 1
Base para MicroSD 1
Protoboard, cable,fuente de alimentacion
Las tarjetas MultiMediaCard son dispositivos de almacenamiento Flash muy versátiles debido a su gran
capacidad, y reducido tamaño y precio. Esto las convierte en una opción muy interesante a usar en
dispositivos móviles como teléfonos, agendas electrónicas o videojuegos portátiles.
MMC
Uso de tarjetas MultiMedia Card
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 72
Desde el punto de vista técnico, estas pueden trabajar mediante dos protocolos serie distintos: el
protocolo MultiMediaCard propiamente dicho, y el protocolo SPI. El primero de los protocolos es el más
potente ya que permite más operaciones que el segundo, pero por otro lado, el segundo es más fácil de
implementar si se dispone de una interfaz SPI y es suficiente para la mayoría de aplicaciones. De hecho
el protocolo SPI se puede considerar como una versión reducida del protocolo MultiMediaCard.
Conexiones y señales en las tarjetas MMC
El protocolo de acceso SPI se puede implementar mediante cualquier controlador (ordenador personal,
microcontrolador ...) que disponga de un canal SPI hardware o emulado por software. Cuando se opera
en este modo los pins de la tarjeta MMC se denominan del siguiente modo:
!CS permite al controlador seleccionar la tarjeta sobre la cual quiere operar, así cuando CS vale 0 la
tarjeta se encuentra seleccionada y lista para operar. Este pin puede ser controlado por cualquier pin de
salida del controlador.
DataIn es la entrada de datos serie a la tarjeta y debe estar conectada a la salida MOSI de la interfaz SPI
del controlador.
DataOut es la salida de datos serie de la tarjeta y debe estar conectada al pin MISO de la interfaz SPI del
controlador.
CLCK es la señal de reloj generada por el controlador y es la que marca el ritmo de transferencia de la
información serie entre ambos, así los datos se capturan o transmiten por la tarjeta al ritmo marcado
por esta señal.
VDD es el pin de alimentación y VSS1 y VSS2 son los pins de masa.
Tanto la tensión de alimentación como las señales deben encontrarse en el rango de los 2,6 y 3,7V.
Las Tarjetas SD
Las tarjetas SD son muy similares a las MultiMediaCard a todos los niveles. No obstante, la primera
diferencia que salta a la vista es el número de pines: las tarjetas SD tienen 9 pines, mientras que las
MMC 7. Esto es debido a que las tarjetas SD disponen de otros modos de acceso y protocolos que
mejoran la seguridad en el intercambio de datos. No obstante a estas también se puede acceder
mediante el mismo protocolo SPI que el utilizado en las MMC.
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 73
Los siguientes apartados muestran como acceder
las tarjetas MultiMediaCard y SD mediante el
protocolo SPI.
Conexiones y señales en las tarjetas SD
Cuando se opera en este modo los pins de la tarjeta
SD se denominan:
!CD (equivalente al !CS de la MMC) permite al controlador seleccionar la tarjeta sobre la cual quiere
operar, así cuando CD vale 0 la tarjeta se encuentra seleccionada y lista para operar. Este pin puede ser
controlado por cualquier pin de salida del controlador.
CMD (equivalente al DataIn de la MMC) es la entrada de datos serie a la tarjeta y debe estar conectada a
la salida MOSI de la interfaz SPI del controlador.
DAT0 (equivalente al DataOut de la MMC) es la salida de datos serie de la tarjeta y debe estar conectada
al pin MISO de la interfaz SPI del controlador.
CLCK es la señal de reloj generada por el controlador y es la que marca el ritmo de transferencia de la
información serie entre ambos, así los datos se capturan o transmiten por la tarjeta al ritmo marcado
por esta señal.
VDD es el pin de alimentación y VSS1 y VSS2 son los pins de masa.
DAT1 y DAT2 no se utilizan en el modo SPI
La alimentación y las señales deben encontrarse en el rango de los 2,6 y 3,7V.
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 74
Funcionamiento general del Protocolo
Básicamente el protocolo SPI consiste en el intercambio de información entre el controlador (master) y
la tarjeta (slave). Este intercambio se lleva a cabo mediante el envío de comandos por parte del
controlador y de respuestas por parte de la tarjeta. Así, en la lectura, el controlador envía el comando de
petición de lectura a la tarjeta y esta le envía la respuesta de confirmación seguida del bloque de datos
con la información contenida a partir de la dirección solicitada. En la escritura el proceso es parecido, el
controlador indica a la tarjeta mediante el comando de escritura que quiere escribir información en una
determinada dirección, esta le responde indicando que esta lista y a continuación el controlador envía el
bloque de datos a escribir. Las operaciones que no requieren intercambio de datos funcionan de igual
forma pero sin usar bloques de datos.
Comandos Modo SPI
Los comandos son bloques de bytes con un formato fijo:
La tarjeta identifica los comandos porque el primer byte de estos (byte 1) siempre comienza por 01, el
resto de bits del primer byte contiene el numero de comando codificado en binario natural. Así el primer
byte correspondiente al comando 0 (CMD0) seria: 01000000, o el primer byte correspondiente al
comando 39 (CMD39) sería: 01100111. Los siguientes 4 bytes ( bytes 2 –5) contienen los argumentos del
comando. En los comandos que no requieren argumentos estos valen 0. El último byte (byte 6) es el
byte de CRC para la verificación de errores y en realidad en el protocolo SPI no se utiliza, a no ser que en
el registro de configuración se especifique que se desea utilizar CRC.
Toda la comunicación entre la tarjeta y el controlador se realiza según el orden del esquema, de
izquierda a derecha, es decir que primero se transmite el bit de mas peso (bit 7) del byte 1, y por último
el bit de menos peso (bit 0) del byte 6, es decir es una transferencia More Significant Bit First (MSB
First). Estos son algunos de los principales comandos:
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 75
Respuesta SPI
Las respuestas de la tarjeta son bloques formados por 1 o 2 bytes, dependiendo del tipo de respuesta
que se trate. El tipo de respuesta es función del comando, es decir que cada comando tiene asociado un
tipo de respuesta.
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 76
Bloques de datos MODO SPI
Los bloques de datos comienzan siempre con el byte 0xFE, a este le siguen los bytes de datos y por
último los 2 bytes de CRC. El número de bytes de datos depende de la longitud de bloque definida
mediante el comando 16, y esta puede ir de 1 hasta 512 bytes (por defecto 512). Por tanto sumando a
los bytes de datos el byte de incio y los dos bytes de CRC la longitud total del bloque de datos puede
variar entre 4 y 515 bytes. Como por defecto en el protocolo de acceso SPI no se consideran los bytes de
CRC, estos pueden tomar cualquier valor.
Reset de la tarjeta MODO SPI
Por defecto, al arrancar la tarjeta, esta se encuentra en modo MultiMediaCard. Para que entre en modo
SPI, hay que enviarle el comando 0 mientras se mantiene activa la señal ¡CS (¡CS=0), pero antes de todo,
para poder iniciar la comunicación por el bus hay que enviar como mínimo 74 ciclos de clock a la tarjeta.
Así para hacer el reset de la tarjeta y prepararla para trabajar en modo SPI hay que seguir la siguiente
secuencia:
-Dar como mínimo 74 ciclos de clock, es decir enviar unos 10 bytes a través de la SPI.
-Activar la señal ¡CS (¡CS=0).
-Enviar el comando 0 con el CRC bien calculado, ya que todavía no estamos en modo SPI, por lo que sí se
considera el CRC. De hecho la secuencia del comando 0 siempre es la misma:
0x40,0x00,0x00,0x00,0x00,0x95
-Esperar el byte de respuesta que ha de ser 00000001 (tarjeta en modo idle).
Activar la inicialización de la tarjeta MODO SPI
Una vez reseteada y en modo SPI, hay que hacer la inicialización de la tarjeta, para ello se debe enviar
repetidamente el comando 1 hasta que el bit "idle" en la respuesta R1 sea 0. Esto indica que la tarjeta ha
completado su inicialización y se encuentra lista para recbir nuevos comandos. La secuencia general es
esta:
- Activar el pin ¡CS (¡CS=0).
- Enviar el comando 1: 0x41,0x00,0x00,0x00,0x00, 0xXX . Como la tarjeta ya está en modo SPI el CRC
puede tomar cualquier valor.
- Esperar el byte de respuesta, que ha de ser 00000000 (bit "idle" ha de estar 0: tarjeta lista). Si la
respuesta no es 0, reenviaremos el comando 1, hasta que lo esté. Puede llevar algunos reintentos.
Escritura de un bloque en la tarjeta MODO SPI
Una vez inicializada la tarjeta, para escribir un bloque en esta, hay que enviar el comando 24 con la
dirección de inicio a partir de la cual se desean guardar los datos. Si todo va bien la tarjeta enviará tres
respuestas R1 repetidas informando al controlador que ya puede enviar el bloque de datos, que ha de
tener una longitud de 512 bytes (en la escritura solo se permiten 512 bytes) más el byte de inicio de
bloque de datos y los dos bytes de CRC. La secuencia a seguir es:
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 77
-Activar el PIN¡CS (¡CS=0).
-Enviar el comando 24 0x58, 0xXX,0xXX,0xXX,0xXX,0xYY. Los 4 bytes XX corresponden a la dirección a
partir de la cual se quieren guardar los datos. 0xYY corresponde al byte de CRC y como la tarjeta esta en
modo SPI pueden tomar cualquier valor ya que no se consideran.
-Si todo va bien la tarjeta responde con el byte de respuesta R1 tres veces consecutivas.
-Enviar a la tarjeta el bloque de datos que consiste en:
- 1 byte de inicio de bloque de datos 0xFE
- 512 bytes con los datos a guardar.
- 2 bytes de CRC
-Mientras la tarjeta esta ocupada guardando el valor, irá enviando bytes indicando que está ocupada, y
cuando finalice la escritura enviará un byte de confirmación.
Lectura de un bloque en la tarjeta MODO SPI
Para leer un bloque de la tarjeta hay que enviar a esta el comando 17 con la dirección de inicio de
lectura en los bytes de argumento. La dirección puede tomar cualquier valor comprendido dentro del
rango de direcciones válidas de la tarjeta pero todo el bloque leído debe estar dentro de un mismo
sector físico. A continuación la tarjeta envía un byte de respuesta R1 seguido del bloque de datos, que
comienza por 0xFE, continua con los bytes de datos y finaliza con los 2 bytes de CRC que no se usan. El
número de bytes de datos depende del tamaño de bloque que se haya programado mediante el
comando 16, y en la lectura puede ir de 1 a 512. La secuencia a seguir es la siguiente:
-Activar el PIN ¡CS (¡CS=0).
-Enviar el comando 17 0x51,0xXX,0xXX,0xXX,0xXX,0xYY. Los 4 bytes XX corresponden a la dirección a
partir de la cual se quieren leer los datos. 0xYY corresponde al byte de CRC y como la tarjeta esta en
modo SPI puede tomar cualquier valor ya que no se considera.
-Si todo va bien, la tarjeta responde con un byte de respuesta R1, seguido del bloque de datos con la
información solicitada y que el controlador tendrá que ir capturando. Esta tiene la misma estructura que
los bloques de datos utilizados en la escritura:
-1 byte de inicio de bloque de datos 0xFE
-n bytes con los datos a guardar.
-2 bytes de CRC.
-Si se produce un error durante la comunicación, la tarjeta no transmitirá ningún dato y en lugar de
estos enviará un byte indicador de error.
Info encontrado en: Jordi Bartolomé 1-6-2004
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 78
Típicas conexiones:
Una tarjeta como hemos visto es alimentada con un voltaje de 3.3v, para ello se usa un regulador de
voltaje de 5v a 3.3v.
Como un Microcontrolador en sus pines tienen una salida de 0 a 5v no podemos conectar directamente
el Micro a una tarjeta MMC, para ello se utiliza un divisor de voltaje, con resistencias. Dejando solo
conectado directamente al Micro el dato de salida de la tarjeta ya que el micro puede soportar el voltaje
de entrada de 3.3v en este caso que es el pin de la tarjeta SDO.
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 79
Utilidades para la práctica:
Para llevar a cabo una pequeña práctica se debe de hacer una base para la tarjeta si es que usamos una
MicroSD, una base para ello, donde la base en sus pines estarán soldados conectores.
Base para una MicroSD
Conexión para poder introducirlo al proboboard
Imagen del circuito completo.
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 80
La librería existente es muy sencilla de usar ya que solo consta de tres funciones públicas y 1 privada,
esta última es la que se encarga de enviar el comando.
La función de Inicialización es la siguiente:
/** brief Inicialización de SD Card
unsigned char SDCard_init(void)
param Ninguno
return 1 si se ha iniciado correctamente, 0 caso contrario.
*/
Esta función hay que llamarla antes de cualquier función que hagamos, para iniciar la tarjeta MMC en
modo SPI.
Un ejemplo tipo de la utilización es:
Así podemos debuggear nuestra tarjeta y saber cuando falla o no.
Para poder escribir en la tarjeta se debe de definir una variable de tipo arreglo de un tamaño de 512
byte.
Unsigned char buffer[512]={“HOLA MUNDO”};
….
void main(void){
…
If(!SDCard_init()){
Printf(“Error al iniciar tarjeta”);
While(1);
}
Después debemos de agregar la función:
Librería para Manejo de Tarjetas MMC
If(¡SDCard_init()){
Printf(“Error al iniciar tarjeta”);
While(1);
}
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 81
/** brief Realiza escritura de un bloque.-
unsigned char SDCard_write_block(unsigned long Address,unsigned char *Buffer)
param Address: Direccion del sector.-
param Buffer: Buffer a escribir en memoria.-
return 0 a ocurrido algún error, 1 todo ok.-
*/
Le decimos que escriba 512 datos, donde los cuales solo las primeros datos dirán “HOLA MUNDO”, en el
sector 100.
Para leer datos se debe de tener reservados un buffer de 512 byte donde podría ser el mismo arreglo
para escribir.
/** brief Realiza lectura de un bloque.-
unsigned char SDCard_read_block(unsigned long Address,unsigned char *Buffer)
param Address: Direccion del sector.-
return Buffer: Buffer donde se almacena lectura de memoria.-
return 0 a ocurrido algún error, 1 todo ok.-
*/
El buffer se cargara con 512 byte que fueron leídos desde la tarjeta en el sector 100.
Para dar una pequeña introducción a la programación vallamos agregar la librería que existente que se
encuentra en el Disco a un proyecto creado por nosotros.
If(!SDCard_write_block(100,&buffer){
Printf(“Error al escribir”);
While(1);
}
If(!SDCard_read_block (100,&buffer){
Printf(“Error al escribir”);
While(1);
}
Usando libreria
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 82
Después agregar la librería solo falta de llamarlas, pero antes como vamos a
usar el protocolo de comunicación SPI, debemos de configurar el modulo.
Una configuración sencilla es la siguiente:
Esta configuración debemos de hacerla antes de llamar a la función de
Inicialización de la tarjeta.
Lo que vamos hacer es lo siguiente; Es grabar en la tarjeta un texto sencillo usando la función de
escritura.
////////////////////////////////////////////////////////
// USO MULTIMEDIA CARD ////
//Autor: george.manson.69 ////
//Lugar: Mexico ////
//Compilador: HI TECH PIC18 (LITE MODE) ////
////////////////////////////////////////////////////////
#include<htc.h>
/////////////////////////////////////////////////////////////
//Configuracion para trabajar Con oscilador interno de 8Mhz
__CONFIG(1,INTIO & FCMDIS & IESODIS & PLLDIV5 & PLLPOSTDIV2 & CPUDIV1 & USBOSC);
/////////////////////////////////////////////////////////////
__CONFIG(2,VREGDIS & PWRTEN & BORDIS & WDTDIS & BORV45 & WDTPS32K);
__CONFIG(3,PBDIGITAL & LPT1DIS & MCLREN);
__CONFIG(4,STVRDIS & LVPDIS & ICPORTDIS & DEBUGDIS);
__CONFIG(5,UNPROTECT);
__CONFIG(6,UNPROTECT);
__CONFIG(7,UNPROTECT);
//////////////////////////////
//Frecuencia FOSC 8Mhz
//////////////////////////////
#define _XTAL_FREQ 8000000
//////////////////////////////
//AGREGAMOS LIBRERIAS //
//////////////////////////////
#include"libSDHARD/MMChardware.h"
unsigned char sector[512]={"PRIMERA PRUEBA DE MANJEO DE TARJETAS SD MODO SPI"};
unsigned int x;
//////////////////////////////
//FUNCION DE 1 SEG //
//////////////////////////////
void DELAY1S(void){
unsigned char time;
for(time=0;time<100;time++){
__delay_ms(10);
}
}
OpenSPI(SPI_FOSC_4 , //Modo Master,clock=Fosc/4
MODE_11 , //modo de L_H
SMPMID);
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 83
/////////////////////////////////////////////////
//Funcion de interrupcion
//Si no se usa simplemente no hacemos nada...
//Esto sirve para direccionar lo los datos
//en un lugar muy cercano al Inicio de la memoria
//de datos
////////////////////////////////////////////////
static void interrupt
isr(void){}
//////////////////////////////
//FUNCION PRINCIPAL
//////////////////////////////
void main(void){
OSCCON=0x70;
NOP();NOP();NOP();NOP();
//////////////////////////////////////////////////////////////////////
// Configuracion de Puertos ///
//////////////////////////////////////////////////////////////////////
TRISC=0x00;
TRISB=0x01;
PORTB=0x00;
ADCON1=0x0F;
/*---------------------Fin de Conf. Puertos-------------------------*/
//////////////////////////////////////////////////////////////////////
// Configuracion de SPI ///
//////////////////////////////////////////////////////////////////////
OpenSPI(SPI_FOSC_4 , //Modo Master,clock=Fosc/4
MODE_11 , //modo de L_H
SMPMID);
/*---------------------Fin de Conf. SPI-----------------------------*/
if(!SDCard_init()){//Hay Error?
RB5=1; //si
} //no
for(x=0;x<512;x++){//Graba 512 de datos
if(sector[x]==0)sector[x]=' ';
}
if(!SDCard_write_block(10,&sector)){//Graba en el sector 10
RB6=1; //Error al grabar.
}
RB4=1;
while(1);
}
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 84
El circuito a manejar es el siguiente:
Usando WINHEX
WinHex es un software que nos permitirá leer nuestra tarjeta por sectores, al tener un adaptador de
MICROSD a USB para conectarlo a una computadora, rápidamente abriremos el software, después
iremos a Abrir Disco.
Y abriremos la memoria.
Y Buscaremos en ir a posición.
Como hemos escrito en el sector 10 entonces solo multiplicamos 10x512 = 5120 ponemos esta dirección
y rápidamente nos enviara al lugar donde debe de aparecer lo siguiente.
CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011
Página 85
Se ha grabado 512 byte en la tarjeta en el sector 10 como cada sector consta de 512 byte, entonces:
‫݊݋݅ܿ݅ݏ݋݌‬ ൌ ݊‫݋ݎ݁݉ݑ‬ ݀݁ ‫ݎ݋ݐܿ݁ݏ‬ ∗ 512
‫݊݋݅ܿ݅ݏ݋݌‬ ൌ 10 ∗ 512 ൌ 5120

Más contenido relacionado

La actualidad más candente

Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Hamiltonn Casallas
 
Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Hamiltonn Casallas
 
Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Hamiltonn Casallas
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Hamiltonn Casallas
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84guestf09168b
 
Curso Micro Tema 1
Curso Micro Tema 1Curso Micro Tema 1
Curso Micro Tema 1Luis Zurita
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Hamiltonn Casallas
 
Curso de microcontroladores capitulo 09
Curso de microcontroladores capitulo 09Curso de microcontroladores capitulo 09
Curso de microcontroladores capitulo 09Hamiltonn Casallas
 
Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12Hamiltonn Casallas
 
Microcontroladores PIC
Microcontroladores PICMicrocontroladores PIC
Microcontroladores PICSohar Carr
 
Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01Hamiltonn Casallas
 
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)Victor Asanza
 

La actualidad más candente (20)

Proyecto3
Proyecto3Proyecto3
Proyecto3
 
Adc y usart pic16 f887
Adc y usart pic16 f887Adc y usart pic16 f887
Adc y usart pic16 f887
 
Taxímetro con Pic16F887
Taxímetro con Pic16F887Taxímetro con Pic16F887
Taxímetro con Pic16F887
 
Ejemplos pic c
Ejemplos pic cEjemplos pic c
Ejemplos pic c
 
Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02
 
PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84
 
Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Curso Micro Tema 1
Curso Micro Tema 1Curso Micro Tema 1
Curso Micro Tema 1
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
 
Curso de microcontroladores capitulo 09
Curso de microcontroladores capitulo 09Curso de microcontroladores capitulo 09
Curso de microcontroladores capitulo 09
 
Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12
 
Microcontroladores PIC
Microcontroladores PICMicrocontroladores PIC
Microcontroladores PIC
 
Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01
 
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS EMBEBIDOS, Mejoramiento (2020 PAO 1)
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 

Similar a Mm card 7 (20)

Guia de laboratorio 2
Guia de laboratorio 2Guia de laboratorio 2
Guia de laboratorio 2
 
DIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMADIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMA
 
Documentacion sd
Documentacion sdDocumentacion sd
Documentacion sd
 
Intro arquitectura-del-computador
Intro arquitectura-del-computadorIntro arquitectura-del-computador
Intro arquitectura-del-computador
 
Puertoserial[1]
Puertoserial[1]Puertoserial[1]
Puertoserial[1]
 
Comunicación Serial entre un microcontrolador y un PC
Comunicación Serial entre un microcontrolador y un PCComunicación Serial entre un microcontrolador y un PC
Comunicación Serial entre un microcontrolador y un PC
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionales
 
Tutorial micro MSP430
Tutorial micro MSP430Tutorial micro MSP430
Tutorial micro MSP430
 
Conectores
ConectoresConectores
Conectores
 
4ª practica control del puerto de paralelo,activación y desactivación de equipos
4ª practica control del puerto de paralelo,activación y desactivación de equipos4ª practica control del puerto de paralelo,activación y desactivación de equipos
4ª practica control del puerto de paralelo,activación y desactivación de equipos
 
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINOCONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Puerto serial
Puerto serialPuerto serial
Puerto serial
 
Microprocesador ppt
Microprocesador pptMicroprocesador ppt
Microprocesador ppt
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Intel
IntelIntel
Intel
 
Expo diseno
Expo disenoExpo diseno
Expo diseno
 
HARDWARE EN LOS ORDENADORE
HARDWARE EN LOS ORDENADOREHARDWARE EN LOS ORDENADORE
HARDWARE EN LOS ORDENADORE
 

Mm card 7

  • 1. 71 Esta sección aprenderás a usar tarjetas MMC en modo SPI que es la forma más sencilla de trabajar a nivel hardware nuestras tarjetas. Material Cantidad PIC18F2550 1 (Regulador) 7805 1 (Regulador) LF 33CV 1 2.2Kohm 3 3.3Kohm 3 Cap 100uF/35v 2 Cap 0.33uf/50v 1 Cap 47uF/16v 1 LED ROJO 1 LED AMARILLO 2 MicroSD 512MB 1 Base para MicroSD 1 Protoboard, cable,fuente de alimentacion Las tarjetas MultiMediaCard son dispositivos de almacenamiento Flash muy versátiles debido a su gran capacidad, y reducido tamaño y precio. Esto las convierte en una opción muy interesante a usar en dispositivos móviles como teléfonos, agendas electrónicas o videojuegos portátiles. MMC Uso de tarjetas MultiMedia Card
  • 2. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 72 Desde el punto de vista técnico, estas pueden trabajar mediante dos protocolos serie distintos: el protocolo MultiMediaCard propiamente dicho, y el protocolo SPI. El primero de los protocolos es el más potente ya que permite más operaciones que el segundo, pero por otro lado, el segundo es más fácil de implementar si se dispone de una interfaz SPI y es suficiente para la mayoría de aplicaciones. De hecho el protocolo SPI se puede considerar como una versión reducida del protocolo MultiMediaCard. Conexiones y señales en las tarjetas MMC El protocolo de acceso SPI se puede implementar mediante cualquier controlador (ordenador personal, microcontrolador ...) que disponga de un canal SPI hardware o emulado por software. Cuando se opera en este modo los pins de la tarjeta MMC se denominan del siguiente modo: !CS permite al controlador seleccionar la tarjeta sobre la cual quiere operar, así cuando CS vale 0 la tarjeta se encuentra seleccionada y lista para operar. Este pin puede ser controlado por cualquier pin de salida del controlador. DataIn es la entrada de datos serie a la tarjeta y debe estar conectada a la salida MOSI de la interfaz SPI del controlador. DataOut es la salida de datos serie de la tarjeta y debe estar conectada al pin MISO de la interfaz SPI del controlador. CLCK es la señal de reloj generada por el controlador y es la que marca el ritmo de transferencia de la información serie entre ambos, así los datos se capturan o transmiten por la tarjeta al ritmo marcado por esta señal. VDD es el pin de alimentación y VSS1 y VSS2 son los pins de masa. Tanto la tensión de alimentación como las señales deben encontrarse en el rango de los 2,6 y 3,7V. Las Tarjetas SD Las tarjetas SD son muy similares a las MultiMediaCard a todos los niveles. No obstante, la primera diferencia que salta a la vista es el número de pines: las tarjetas SD tienen 9 pines, mientras que las MMC 7. Esto es debido a que las tarjetas SD disponen de otros modos de acceso y protocolos que mejoran la seguridad en el intercambio de datos. No obstante a estas también se puede acceder mediante el mismo protocolo SPI que el utilizado en las MMC.
  • 3. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 73 Los siguientes apartados muestran como acceder las tarjetas MultiMediaCard y SD mediante el protocolo SPI. Conexiones y señales en las tarjetas SD Cuando se opera en este modo los pins de la tarjeta SD se denominan: !CD (equivalente al !CS de la MMC) permite al controlador seleccionar la tarjeta sobre la cual quiere operar, así cuando CD vale 0 la tarjeta se encuentra seleccionada y lista para operar. Este pin puede ser controlado por cualquier pin de salida del controlador. CMD (equivalente al DataIn de la MMC) es la entrada de datos serie a la tarjeta y debe estar conectada a la salida MOSI de la interfaz SPI del controlador. DAT0 (equivalente al DataOut de la MMC) es la salida de datos serie de la tarjeta y debe estar conectada al pin MISO de la interfaz SPI del controlador. CLCK es la señal de reloj generada por el controlador y es la que marca el ritmo de transferencia de la información serie entre ambos, así los datos se capturan o transmiten por la tarjeta al ritmo marcado por esta señal. VDD es el pin de alimentación y VSS1 y VSS2 son los pins de masa. DAT1 y DAT2 no se utilizan en el modo SPI La alimentación y las señales deben encontrarse en el rango de los 2,6 y 3,7V.
  • 4. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 74 Funcionamiento general del Protocolo Básicamente el protocolo SPI consiste en el intercambio de información entre el controlador (master) y la tarjeta (slave). Este intercambio se lleva a cabo mediante el envío de comandos por parte del controlador y de respuestas por parte de la tarjeta. Así, en la lectura, el controlador envía el comando de petición de lectura a la tarjeta y esta le envía la respuesta de confirmación seguida del bloque de datos con la información contenida a partir de la dirección solicitada. En la escritura el proceso es parecido, el controlador indica a la tarjeta mediante el comando de escritura que quiere escribir información en una determinada dirección, esta le responde indicando que esta lista y a continuación el controlador envía el bloque de datos a escribir. Las operaciones que no requieren intercambio de datos funcionan de igual forma pero sin usar bloques de datos. Comandos Modo SPI Los comandos son bloques de bytes con un formato fijo: La tarjeta identifica los comandos porque el primer byte de estos (byte 1) siempre comienza por 01, el resto de bits del primer byte contiene el numero de comando codificado en binario natural. Así el primer byte correspondiente al comando 0 (CMD0) seria: 01000000, o el primer byte correspondiente al comando 39 (CMD39) sería: 01100111. Los siguientes 4 bytes ( bytes 2 –5) contienen los argumentos del comando. En los comandos que no requieren argumentos estos valen 0. El último byte (byte 6) es el byte de CRC para la verificación de errores y en realidad en el protocolo SPI no se utiliza, a no ser que en el registro de configuración se especifique que se desea utilizar CRC. Toda la comunicación entre la tarjeta y el controlador se realiza según el orden del esquema, de izquierda a derecha, es decir que primero se transmite el bit de mas peso (bit 7) del byte 1, y por último el bit de menos peso (bit 0) del byte 6, es decir es una transferencia More Significant Bit First (MSB First). Estos son algunos de los principales comandos:
  • 5. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 75 Respuesta SPI Las respuestas de la tarjeta son bloques formados por 1 o 2 bytes, dependiendo del tipo de respuesta que se trate. El tipo de respuesta es función del comando, es decir que cada comando tiene asociado un tipo de respuesta.
  • 6. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 76 Bloques de datos MODO SPI Los bloques de datos comienzan siempre con el byte 0xFE, a este le siguen los bytes de datos y por último los 2 bytes de CRC. El número de bytes de datos depende de la longitud de bloque definida mediante el comando 16, y esta puede ir de 1 hasta 512 bytes (por defecto 512). Por tanto sumando a los bytes de datos el byte de incio y los dos bytes de CRC la longitud total del bloque de datos puede variar entre 4 y 515 bytes. Como por defecto en el protocolo de acceso SPI no se consideran los bytes de CRC, estos pueden tomar cualquier valor. Reset de la tarjeta MODO SPI Por defecto, al arrancar la tarjeta, esta se encuentra en modo MultiMediaCard. Para que entre en modo SPI, hay que enviarle el comando 0 mientras se mantiene activa la señal ¡CS (¡CS=0), pero antes de todo, para poder iniciar la comunicación por el bus hay que enviar como mínimo 74 ciclos de clock a la tarjeta. Así para hacer el reset de la tarjeta y prepararla para trabajar en modo SPI hay que seguir la siguiente secuencia: -Dar como mínimo 74 ciclos de clock, es decir enviar unos 10 bytes a través de la SPI. -Activar la señal ¡CS (¡CS=0). -Enviar el comando 0 con el CRC bien calculado, ya que todavía no estamos en modo SPI, por lo que sí se considera el CRC. De hecho la secuencia del comando 0 siempre es la misma: 0x40,0x00,0x00,0x00,0x00,0x95 -Esperar el byte de respuesta que ha de ser 00000001 (tarjeta en modo idle). Activar la inicialización de la tarjeta MODO SPI Una vez reseteada y en modo SPI, hay que hacer la inicialización de la tarjeta, para ello se debe enviar repetidamente el comando 1 hasta que el bit "idle" en la respuesta R1 sea 0. Esto indica que la tarjeta ha completado su inicialización y se encuentra lista para recbir nuevos comandos. La secuencia general es esta: - Activar el pin ¡CS (¡CS=0). - Enviar el comando 1: 0x41,0x00,0x00,0x00,0x00, 0xXX . Como la tarjeta ya está en modo SPI el CRC puede tomar cualquier valor. - Esperar el byte de respuesta, que ha de ser 00000000 (bit "idle" ha de estar 0: tarjeta lista). Si la respuesta no es 0, reenviaremos el comando 1, hasta que lo esté. Puede llevar algunos reintentos. Escritura de un bloque en la tarjeta MODO SPI Una vez inicializada la tarjeta, para escribir un bloque en esta, hay que enviar el comando 24 con la dirección de inicio a partir de la cual se desean guardar los datos. Si todo va bien la tarjeta enviará tres respuestas R1 repetidas informando al controlador que ya puede enviar el bloque de datos, que ha de tener una longitud de 512 bytes (en la escritura solo se permiten 512 bytes) más el byte de inicio de bloque de datos y los dos bytes de CRC. La secuencia a seguir es:
  • 7. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 77 -Activar el PIN¡CS (¡CS=0). -Enviar el comando 24 0x58, 0xXX,0xXX,0xXX,0xXX,0xYY. Los 4 bytes XX corresponden a la dirección a partir de la cual se quieren guardar los datos. 0xYY corresponde al byte de CRC y como la tarjeta esta en modo SPI pueden tomar cualquier valor ya que no se consideran. -Si todo va bien la tarjeta responde con el byte de respuesta R1 tres veces consecutivas. -Enviar a la tarjeta el bloque de datos que consiste en: - 1 byte de inicio de bloque de datos 0xFE - 512 bytes con los datos a guardar. - 2 bytes de CRC -Mientras la tarjeta esta ocupada guardando el valor, irá enviando bytes indicando que está ocupada, y cuando finalice la escritura enviará un byte de confirmación. Lectura de un bloque en la tarjeta MODO SPI Para leer un bloque de la tarjeta hay que enviar a esta el comando 17 con la dirección de inicio de lectura en los bytes de argumento. La dirección puede tomar cualquier valor comprendido dentro del rango de direcciones válidas de la tarjeta pero todo el bloque leído debe estar dentro de un mismo sector físico. A continuación la tarjeta envía un byte de respuesta R1 seguido del bloque de datos, que comienza por 0xFE, continua con los bytes de datos y finaliza con los 2 bytes de CRC que no se usan. El número de bytes de datos depende del tamaño de bloque que se haya programado mediante el comando 16, y en la lectura puede ir de 1 a 512. La secuencia a seguir es la siguiente: -Activar el PIN ¡CS (¡CS=0). -Enviar el comando 17 0x51,0xXX,0xXX,0xXX,0xXX,0xYY. Los 4 bytes XX corresponden a la dirección a partir de la cual se quieren leer los datos. 0xYY corresponde al byte de CRC y como la tarjeta esta en modo SPI puede tomar cualquier valor ya que no se considera. -Si todo va bien, la tarjeta responde con un byte de respuesta R1, seguido del bloque de datos con la información solicitada y que el controlador tendrá que ir capturando. Esta tiene la misma estructura que los bloques de datos utilizados en la escritura: -1 byte de inicio de bloque de datos 0xFE -n bytes con los datos a guardar. -2 bytes de CRC. -Si se produce un error durante la comunicación, la tarjeta no transmitirá ningún dato y en lugar de estos enviará un byte indicador de error. Info encontrado en: Jordi Bartolomé 1-6-2004
  • 8. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 78 Típicas conexiones: Una tarjeta como hemos visto es alimentada con un voltaje de 3.3v, para ello se usa un regulador de voltaje de 5v a 3.3v. Como un Microcontrolador en sus pines tienen una salida de 0 a 5v no podemos conectar directamente el Micro a una tarjeta MMC, para ello se utiliza un divisor de voltaje, con resistencias. Dejando solo conectado directamente al Micro el dato de salida de la tarjeta ya que el micro puede soportar el voltaje de entrada de 3.3v en este caso que es el pin de la tarjeta SDO.
  • 9. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 79 Utilidades para la práctica: Para llevar a cabo una pequeña práctica se debe de hacer una base para la tarjeta si es que usamos una MicroSD, una base para ello, donde la base en sus pines estarán soldados conectores. Base para una MicroSD Conexión para poder introducirlo al proboboard Imagen del circuito completo.
  • 10. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 80 La librería existente es muy sencilla de usar ya que solo consta de tres funciones públicas y 1 privada, esta última es la que se encarga de enviar el comando. La función de Inicialización es la siguiente: /** brief Inicialización de SD Card unsigned char SDCard_init(void) param Ninguno return 1 si se ha iniciado correctamente, 0 caso contrario. */ Esta función hay que llamarla antes de cualquier función que hagamos, para iniciar la tarjeta MMC en modo SPI. Un ejemplo tipo de la utilización es: Así podemos debuggear nuestra tarjeta y saber cuando falla o no. Para poder escribir en la tarjeta se debe de definir una variable de tipo arreglo de un tamaño de 512 byte. Unsigned char buffer[512]={“HOLA MUNDO”}; …. void main(void){ … If(!SDCard_init()){ Printf(“Error al iniciar tarjeta”); While(1); } Después debemos de agregar la función: Librería para Manejo de Tarjetas MMC If(¡SDCard_init()){ Printf(“Error al iniciar tarjeta”); While(1); }
  • 11. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 81 /** brief Realiza escritura de un bloque.- unsigned char SDCard_write_block(unsigned long Address,unsigned char *Buffer) param Address: Direccion del sector.- param Buffer: Buffer a escribir en memoria.- return 0 a ocurrido algún error, 1 todo ok.- */ Le decimos que escriba 512 datos, donde los cuales solo las primeros datos dirán “HOLA MUNDO”, en el sector 100. Para leer datos se debe de tener reservados un buffer de 512 byte donde podría ser el mismo arreglo para escribir. /** brief Realiza lectura de un bloque.- unsigned char SDCard_read_block(unsigned long Address,unsigned char *Buffer) param Address: Direccion del sector.- return Buffer: Buffer donde se almacena lectura de memoria.- return 0 a ocurrido algún error, 1 todo ok.- */ El buffer se cargara con 512 byte que fueron leídos desde la tarjeta en el sector 100. Para dar una pequeña introducción a la programación vallamos agregar la librería que existente que se encuentra en el Disco a un proyecto creado por nosotros. If(!SDCard_write_block(100,&buffer){ Printf(“Error al escribir”); While(1); } If(!SDCard_read_block (100,&buffer){ Printf(“Error al escribir”); While(1); } Usando libreria
  • 12. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 82 Después agregar la librería solo falta de llamarlas, pero antes como vamos a usar el protocolo de comunicación SPI, debemos de configurar el modulo. Una configuración sencilla es la siguiente: Esta configuración debemos de hacerla antes de llamar a la función de Inicialización de la tarjeta. Lo que vamos hacer es lo siguiente; Es grabar en la tarjeta un texto sencillo usando la función de escritura. //////////////////////////////////////////////////////// // USO MULTIMEDIA CARD //// //Autor: george.manson.69 //// //Lugar: Mexico //// //Compilador: HI TECH PIC18 (LITE MODE) //// //////////////////////////////////////////////////////// #include<htc.h> ///////////////////////////////////////////////////////////// //Configuracion para trabajar Con oscilador interno de 8Mhz __CONFIG(1,INTIO & FCMDIS & IESODIS & PLLDIV5 & PLLPOSTDIV2 & CPUDIV1 & USBOSC); ///////////////////////////////////////////////////////////// __CONFIG(2,VREGDIS & PWRTEN & BORDIS & WDTDIS & BORV45 & WDTPS32K); __CONFIG(3,PBDIGITAL & LPT1DIS & MCLREN); __CONFIG(4,STVRDIS & LVPDIS & ICPORTDIS & DEBUGDIS); __CONFIG(5,UNPROTECT); __CONFIG(6,UNPROTECT); __CONFIG(7,UNPROTECT); ////////////////////////////// //Frecuencia FOSC 8Mhz ////////////////////////////// #define _XTAL_FREQ 8000000 ////////////////////////////// //AGREGAMOS LIBRERIAS // ////////////////////////////// #include"libSDHARD/MMChardware.h" unsigned char sector[512]={"PRIMERA PRUEBA DE MANJEO DE TARJETAS SD MODO SPI"}; unsigned int x; ////////////////////////////// //FUNCION DE 1 SEG // ////////////////////////////// void DELAY1S(void){ unsigned char time; for(time=0;time<100;time++){ __delay_ms(10); } } OpenSPI(SPI_FOSC_4 , //Modo Master,clock=Fosc/4 MODE_11 , //modo de L_H SMPMID);
  • 13. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 83 ///////////////////////////////////////////////// //Funcion de interrupcion //Si no se usa simplemente no hacemos nada... //Esto sirve para direccionar lo los datos //en un lugar muy cercano al Inicio de la memoria //de datos //////////////////////////////////////////////// static void interrupt isr(void){} ////////////////////////////// //FUNCION PRINCIPAL ////////////////////////////// void main(void){ OSCCON=0x70; NOP();NOP();NOP();NOP(); ////////////////////////////////////////////////////////////////////// // Configuracion de Puertos /// ////////////////////////////////////////////////////////////////////// TRISC=0x00; TRISB=0x01; PORTB=0x00; ADCON1=0x0F; /*---------------------Fin de Conf. Puertos-------------------------*/ ////////////////////////////////////////////////////////////////////// // Configuracion de SPI /// ////////////////////////////////////////////////////////////////////// OpenSPI(SPI_FOSC_4 , //Modo Master,clock=Fosc/4 MODE_11 , //modo de L_H SMPMID); /*---------------------Fin de Conf. SPI-----------------------------*/ if(!SDCard_init()){//Hay Error? RB5=1; //si } //no for(x=0;x<512;x++){//Graba 512 de datos if(sector[x]==0)sector[x]=' '; } if(!SDCard_write_block(10,&sector)){//Graba en el sector 10 RB6=1; //Error al grabar. } RB4=1; while(1); }
  • 14. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 84 El circuito a manejar es el siguiente: Usando WINHEX WinHex es un software que nos permitirá leer nuestra tarjeta por sectores, al tener un adaptador de MICROSD a USB para conectarlo a una computadora, rápidamente abriremos el software, después iremos a Abrir Disco. Y abriremos la memoria. Y Buscaremos en ir a posición. Como hemos escrito en el sector 10 entonces solo multiplicamos 10x512 = 5120 ponemos esta dirección y rápidamente nos enviara al lugar donde debe de aparecer lo siguiente.
  • 15. CURSO DE HI TECH FOR PIC18 : USO DE MULTIMEDIA CARD 2011 Página 85 Se ha grabado 512 byte en la tarjeta en el sector 10 como cada sector consta de 512 byte, entonces: ‫݊݋݅ܿ݅ݏ݋݌‬ ൌ ݊‫݋ݎ݁݉ݑ‬ ݀݁ ‫ݎ݋ݐܿ݁ݏ‬ ∗ 512 ‫݊݋݅ܿ݅ݏ݋݌‬ ൌ 10 ∗ 512 ൌ 5120