Estoy usando un microcontrolador (PIC32MZ) para transferir los datos de una tarjeta SD a USB, con esta configuración:
Logré que todo funcionara con el framework Harmony v1.09, y pude obtener una velocidad de transferencia de aproximadamente 1.5 MBytes / s, lo cual es bastante bueno, pero ... cuando utilizo tarjetas SD con memoria grande, esta tasa aún parece ralentizar Por ejemplo, se requieren 6h para transferir 32GB !!!!
Mirando los componentes uno por uno, no puedo ver por qué la tasa de transferencia no es más alta:
- La tarjeta real que estoy usando para mi prueba alcanzó la velocidad de 20 MBytes / s cuando la conecté a mi computadora. Probablemente usó 4 cables, pero luego sería de unos 5 MBytes / s en cada cable
- El PIC puede admitir USB de alta velocidad, que tiene una velocidad de transferencia de 60 MB / s (480 Mbits / s)
- El bus SPI entre la tarjeta y la micro está funcionando a 50MHz, lo que corresponde a una velocidad máxima de 6.25MBytes / s
¿Por qué no puedo acercarme al menos a 5 MBytes / s, que parece ser la tasa más baja del sistema? ¿Cuál es el cuello de botella aquí? ¿Es posible mejorarlo?
Hojas de datos:
- Microcontrolador
- Tarjeta SD
- Board1 (kit de inicio PIC32)
- Board2 (MEBII)
- Firmware : msd_sdcard demostración de Harmony v1.09 (controladores SPI y USB configurados a 50MHz)