Autor Tema: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013  (Leído 10842 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« en: 02 de Enero de 2013, 16:51:06 »
Buenas tardes, Saludos desde Venezuela.

Para empezar  bien el año y poder culminar mis estudios de grado, estoy empezando a desarrollar un dispositivo eliminador de ruido externo con un dsPIC30F4013, el mismo estará en la capacidad de almacenar los datos que serán leídos desde el ADC del dsPIC en una memoria MMC/SD para su posterior envió de forma inalámbrica a través de un xBee S1 a otro dispositivo que será el receptor y que estará en la capacidad de reconstruir dichos datos y dar una señal óptima para su posterior reproducción.

El Problema es el siguiente, siempre he manejado solamente PIC Serie 16 y saltar al dsPIC me tiene un poco confundido, sobre todo en el lenguaje a utilizar para grabar el dato en la memoria MMC/SD, leyendo en el foro encontré el tema en el que se desarrolla una librería exclusiva para manejar dicha memoria, pero solo con pic serie 18 entonces esa misma librería me sirve para utilizarla en el dsPIC.

Que programa es el más óptimo para manejar la dicho dsPIC, C30, CCS o MikroC_dsPIC, este último es el que noto que tengo las librerías necesaria para manejar la memoria, actualmente necesito de su colaboración para el manejo de la memoria ya que necesito tanto escribir en ella como leer la información, pero no sé cuáles son los tiempos que se manejan el de escritura de un dato, etc.

Conforme desarrolle dicho prototipo estaré poseteando los avances que esté realizando, Pero necesito su colaboración para decidir qué tipo de lenguaje es el mejor para manejar el dsPIC30F4013 y las librerías para manejar la MMC/SD.

Gracias por su Colaboración.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #1 en: 02 de Enero de 2013, 22:12:09 »
Hola. Tengo entendido que los 3 compiladores implementan librarias para MMC/SD  :roll: Personalmente utilizaría C30 o XC16. Tiempos, vas a tener que experimentar, porque agregar datos a un archivo depende de la librería y las configuraciones que se hagan


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #2 en: 03 de Enero de 2013, 00:03:12 »
Como te dice Suky, yo me inclinaria por el lado del C30, y tienes algunos ejemplos de mismo Microchip que te pueden ayudar.

Estuve viendo algo y creo que la librería que tienes que usar para el manejo de una memoria es la "FSIO.h"
Yo uso mucho el Microchip Libraries for Applications, ahí tienes varios ejemplos.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #3 en: 03 de Enero de 2013, 09:09:04 »
FSIO seria para la implementación de un sistema de archivos, luego queda la parte que maneja el hardware, o sea la comunicación con la memoria. Hay 3 opciones, SPI, bit a bit y PMP. Por aquí se puede ver como se arma el proyecto para C18 usando SPI, para los demás compiladores es casi igual, solo que no se usa salloc:

http://www.micros-designs.com.ar/aplicaciones-avanzadas-en-c18/


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #4 en: 03 de Enero de 2013, 11:18:01 »
Gracias por las repuestas... se que tengo que empezar a probar para medir los tiempos de ejecución en la escritura y lectura en la memoria...

Estuve programando en MikroC_dsPIC y ok conecto con la MMC/SD sin problemas y creo los archivos y todo, Pero debo tomar los valores del adc y grabarlos en la memoria, estuve configurando el adc a su mayor capacidad de conversión con un pll a 80 mhz pero cuando lo pongo a funcionar nada me graba como 100 datos en un segundo... y eso no es para nada rápido y necesito la mayor adquisición de datos para poder reconstruir la señal lo mas parecida posible a la original...

Por esa razon trato de ver en cual lenguaje es mas rapido el grabado de datos en la MMC/SD se que en el foro esta la librería en CCS para PIC 18F pero no me sirve debido a que tengo que aplicarle los Filtros Digitales a esa señal que tomo del adc....

Necesito una orientación sobre este tema...

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #5 en: 03 de Enero de 2013, 11:26:36 »
Voy a explicar mejor lo que tengo que hacer...

Por Medio del ADC tomo los valores provenientes de la voz humana para posteriormente aplicarle un filtro digital y tratar de dejar la señal lo mas limpia de ruido posible.

El Sistema tiene que guardar por seguridad dicha señal en la memoria MMC/SD para posteriormente enviarlos a través del Modulo xBEE a otros dispositivos de forma inalámbrica...

Tuve varios problemas a la hora de enviar los datos por el xbee, cuales fueron? bueno al tomar el valor del adc y enviarlos directamente al xBee la velocidad de muestreo del dsPIC, es muy grande para este dispositivo y el mismo se reinicia a cada rato, y pierdo los datos de dicha señal.

Por eso tuve que implementar el guardado de datos en la MMC/SD para enviar dichos datos por paquetes...

Pero Antes tengo que filtrarlos digitalmente para luego enviarlos por el xBEE.

Entonces MikroC_dsPIC me funciona bien pero noto de tarda demasiado grabando los datos... y eso no me conviene para nada...

Por eso les pregunto que lenguaje si CCS o C30 me conviene para manejar tanto la librería para la MMC/SD como los Filtros Digitales, los cuales son estrictamente necesarios para poder realizar dicho proyecto...

Espero Sus Sugerencias... Gracias...

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #6 en: 03 de Enero de 2013, 14:53:36 »
Entiendo la necesidad de usar la memoria externa, pero.... como sabes que la limitación de velocidad la tienes en el programa? Puede ser que la misma tarjeta de memoria te esté limitando la transferencia.
No tengo experiencia con tarjetas de memoria, pero se que tienes tasas de transferencia máximas.
Por ejemplo las tipo SD tienen clases, en este link podes ver detalles SD Association defines Speed Class standards
Quizas la que es para tu aplicación debe ser UHS?

Las de menor transferencia son de 2Mb/segundo y las de mayor pueden llegar a 20Mb/segundo

Calculaste que transferencia necesitas en tu aplicación?
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #7 en: 03 de Enero de 2013, 15:05:34 »
Encontré algunos datos de memorias, son típicos y quizas haya que ver en particular cual es tu caso.
Fuente: Memory Cards Tutorial

MMC
    Available Capacities (MMC): 32 MB, 64 MB and 128 MB
    Available Capacities (RS-MMC): 128 MB, 256 MB and 512 MB
    Available Capacities (MMC+): 256 MB, 512 MB and 1 GB
    Read speed (MMC and RS-MMC): 2 MB/s
    Read speed (MMC+): 11 MB/s
    Write speed (MMC): 1 MB/s
    Write speed (RS-MMC): 2 MB/s
    Write speed (MMC+): 7 MB/s
    Voltage: 2.7 V to 3.6 V
    Power Consumption: < 33mA (read), < 35mA (write) and < 50µA (standby)
    Length (MMC): 1.26 in (32 mm)
    Length (RS-MMC): 0.71 in (18 mm)
    Width: 0.94 in (24 mm)
    Height: 0.05 in (1.4 mm)
    Weight: 0.05 oz max (1.5 g max)
    Operating temperature: -25º C to 85º C (-13º F to 185º F)
    Storage  temperature: -40º C to 85º C (-40º F to 185º F)
    Shock: 1000G max
    Vibration: 15G peak-to-peak max
    Humidity: 8% to 95%

    For more information: http://www.mmca.org/

SD
    Available Capacities: 32 MB, 64 MB, 128 MB, 256 MB, 512 MB and 1 GB
    Voltage: 2.7 V to 3.6 V
    Power Consumption: < 33mA (read), < 35mA (write) and 100µA (standby)
    Read speed: 12 MB/s
    Write speed: 1x = 150 KB/s, 32x = 4.8 MB/s, 40x = 6.0 MB/s
    Length (SD): 1.26 in (32 mm)
    Width (SD): 0.94 in (24 mm)
    Height (SD): 0.082 in (2.1 mm)
    Weight (SD): 0.070 oz max (2 g max)
    Length (MiniSD): 0.85 in (21.5 mm)
    Width (MiniSD): 0.79 in (20 mm)
    Height (MiniSD): 0.055 in (1.4 mm)
    Weight (MiniSD): 0.035 oz max (1 g max)
    Operating temperature: -25º C to 85º C  (-13º F to 185º F)
    Storage  temperature: -40º C to 85º C  (-40º F to 185º F)
    Shock: 1000G max
    Vibration: 15G peak-to-peak max
    Humidity: 8% to 95%

    For more information: http://www.sdcard.org
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #8 en: 03 de Enero de 2013, 16:48:57 »
Actualmente estoy utilizando esta memoria...



Estoy Tratando de contrar las especificaciones tecnicas de la misma...

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #9 en: 03 de Enero de 2013, 17:05:29 »
Si es exactamente esa misma de la imagen, alcanzo a ver que tiene el simbolito de Clase 4, quizás por ahí podes saber que velocidad te soporta.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #10 en: 03 de Enero de 2013, 17:26:38 »
Si es exactamente esa misma de la imagen, alcanzo a ver que tiene el simbolito de Clase 4, quizás por ahí podes saber que velocidad te soporta.

Si VI que es Class C4 ahora cuales serian las velocidades porque indagando un poco mas creo que es una Memoria SDHC de 4GB y que usa el sistema FAT32 aunque creo que soporta FAT16 y FAT32

Aqui creo que hay unas especificaciones de escritura y lectura espero sean los correctos...

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #11 en: 03 de Enero de 2013, 17:41:57 »
Si es clase 4 creo que significa que tenes una velocidad de escritura garantizada de 4mb/segundo.

EDITO: Aunque creo que deberías hacer un cálculo de que tasa de transferencia necesitas, así ya sabes por donde encarar el tema y buscar el hard/soft que se adapte a tu necesidad. Creo que te evitarias muchas pruebas y errores  ;-)
« Última modificación: 03 de Enero de 2013, 17:45:26 por willynovi »
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #12 en: 03 de Enero de 2013, 18:19:09 »
Si es clase 4 creo que significa que tenes una velocidad de escritura garantizada de 4mb/segundo.

EDITO: Aunque creo que deberías hacer un cálculo de que tasa de transferencia necesitas, así ya sabes por donde encarar el tema y buscar el hard/soft que se adapte a tu necesidad. Creo que te evitarias muchas pruebas y errores  ;-)

Entiendo pero necesito un poco mas de colaboracion con respecto a este tema porque hasta los momentos tengo que ver como logro programar la SD si en CCS C30 o MikroC_dsPIC

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #13 en: 03 de Enero de 2013, 19:39:36 »
No pasa por el tipo de memoria, sino como se implementa el programa y también es como esta implementada la librería. Lo mejor , para aumentar la velocidad, es escribir buffers de 512 bytes (un sector).

Yo acabo de probar la función Mass Storage (Librería de Microchip), utilizando SPI a 20MHz, y copiar un archivo de 2Mbyte a la memoria demora 25seg, y copiar de la memoria a la PC 10seg. O sea, para escribir lo hace a ~80kB/s.

Debes elegir un compilador que tenga el código fuente la librería como para estudiarla y ver cual es la mejor forma de implementarla. Además tener algo de conocimiento de como funcionan las memorias como para saber que elegir  ;-)


Saludos!
« Última modificación: 03 de Enero de 2013, 19:41:53 por Suky »
No contesto mensajes privados, las consultas en el foro

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Comunicacion Inalambrica, MMC/SD, dsPIC30F4013
« Respuesta #14 en: 04 de Enero de 2013, 08:33:53 »
No pasa por el tipo de memoria, sino como se implementa el programa y también es como esta implementada la librería. Lo mejor , para aumentar la velocidad, es escribir buffers de 512 bytes (un sector).

Yo acabo de probar la función Mass Storage (Librería de Microchip), utilizando SPI a 20MHz, y copiar un archivo de 2Mbyte a la memoria demora 25seg, y copiar de la memoria a la PC 10seg. O sea, para escribir lo hace a ~80kB/s.

Debes elegir un compilador que tenga el código fuente la librería como para estudiarla y ver cual es la mejor forma de implementarla. Además tener algo de conocimiento de como funcionan las memorias como para saber que elegir  ;-)


Saludos!


25 segundos eso es una eternidad porque necesito almacenar datos de la voz en esa memoria... imagina perder tanto tiempo la calidad de audio es desfavorable...

ahora eh visto códigos echos en mikroc_dspic donde realizan un reproductor de mp3 a 44000 hz y la lectura la hacen directamente sobre la MMC/SD por que se debe entonces esa diferencia tan grande de tiempo para la escritura...

Aquí les dejo el pdf a ver si me pueden ayudar....

Reproductor de Mp3 dsPIC

y aquí algunos ejemplos de youtube...