TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jfmateos2 en 29 de Agosto de 2013, 13:22:44
-
Quisiera programar un PIC como pasarela entre una EEPROM externa y el PC, de modo que la memoria se presente al PC como si fuese un pendrive.
Estoy leyento la AN1189 de Microchip y entretanto me gustaría saber si tienen alguna experiencia que deseen compartir en este asunto.
Gracias.
-
Tras terminar de leer la nota de aplicación, sigo mis pesquisas por el ejemplo Device - Mass Storage - Internal Flash de la Microchip Solutions Library, que hace justo lo que yo quiero pero utilizando la Flash interna en lugar de una EEPROM externa...
-
Hola! Me parece que ya hay un ejemplo hecho entre los ejemplos de las librerias. Aca lo implemento con un SD: https://github.com/AleSuky/SkP32v1.1/tree/master/SW/Ejemplos/USB-MST
Habría que cambiar LUN_FUNCTIONS en el main.
Saludos!
-
Hola, te comento mi experiencia que no logre terminar. La idea era conectar unas memorias relativamente nuevas ( PCM ) a un puerto USB cliente presentandose como mass storage device a una PC. Como dije antes me falta terminar el firmware. Pero la idea es que una vez realizada le enumeración, el driver host del usb te envía el LBA( logical block address ) de donde quiere leer o escribir, entonces a partir de esa información vos la traducís a direcciones del espacio físico de tu memoria. Es resumido lo que puse pero esa es la idea.
Saludos !
-
Gracias Suky, me ha venido bien tu orientación.
Richi, me alegro de ver que mi planteamiento coincide con el tuyo.
-
Gracias, sino fuera por mi adicción a la cerveza lo hubiese terminado ... pero igual me diste ganas ... al firmware le faltaba un 20 % de trabajo ...
Saludos !
-
Para que quede constancia, finalmente conseguí hacerlo y funcionando muy bien... pero resulta que en Windows 8.1 se supera el tiempo de espera (porque la eeprom es lenta) y sólo se pueden guardar archivos de unos 20 kb (sin embargo con Windows 7, Vista, XP, Ubuntu, funciona perfectamente).
-
Nuevo update: la eeprom no es tan lenta (se graba en menos de 8 segundos)... el problema era el firmware que era lento :-/ Ahora es rápido... muy rápido y funciona fenomenal en Windows 8.1
-
Muy bueno jfmateos2, felicitaciones por tus logros ((:-)) ((:-)) ((:-))
-
Nuevo update: la eeprom no es tan lenta (se graba en menos de 8 segundos)... el problema era el firmware que era lento :-/ Ahora es rápido... muy rápido y funciona fenomenal en Windows 8.1
+1
-
Olé
-
Que tamaño tiene la eeprom?
-
Es una FLASH de 512 kBytes.
Recientemente he retomado la programación en ensamblador, y me ha venido bien para encontrar el problema en la velocidad del firmware: a veces cuando uno programa en lenguajes de alto nivel pierde de vista el "esfuerzo" que le supone al procesador realizar saltos a una subrutina...ése era todo el problema: desde una subrutina para escribir cada byte hacía llamadas a otras 2 subrutinas (una para establecer la dirección y otra para establecer los datos) y esto reducía mucho la velocidad... he deshecho estas subrutinas introduciendo el código en la principal repetidamente y la velocidad se ha multiplicado por 10.