Upgrading musicplayer’s storage capabilities

Something that’s been bothering me is the limited storage capabilities of SD cards (from a FLAC player’s perspective). According the SDHC spec 32GB is the max. Beyond that SDXC must be used which, as far as I know, is not supported by currently available microcontrollers such as the STM32. Offcourse 2 SDHC cards could be used to double the capacity, but I would like to try a different route. Also there’s another reason why I’m not adding more card slots, but we’ll get to that another time (offloading FAT handling to a different chip).

Using a harddisk was out of the question due to the noise it makes (aka the moving parts), although the massive storage capabilities are nice. For a while I’ve been drooling over SSD’s, but didn’t pursue that option because prices needed to come down first. Recently prices dropped under €100 for an OCZ 64GB SSD, so time to explore that option again (I consider that price the max I want to spend on this and the capacity a minimum for FLAC storage). Funny thing is that SD cards are actually more expensive than SSD looking at cost per GB and on top of that SSD is much faster and can, also be used in your desktop pc/server/seedbox/etc if you ever want to upgrade to a bigger drive.
Anyway, since IDE is pretty much dead these days, SATA is left as the only option. Directly interfacing SATA devices is a bit of a pain, so the 2nd best option seems to be using an USB adapter. Last month I already looked at a cheap USB SATA bridge. These adapters are easy to obtain and use so I’m going to ignore their use in this post.

Sooo this leaves us with the problem of interfacing USB. Thankfully there are a lot more viable options for this. We’ve got various controllers with an integrated USB interface and there are various separate solutions. The latter is what I’m going to experiment with.

If you’re reading this, chances are you’re familiar with FTDI Chip. Until now I’ve only used their USB device devices, but that’s about to change.  On my desk lies a V2DIP2-32 module. This module has FTDI’s Vinculum II chip and offers USB host functionality. Nice extra is that the toolchain offers bulk mass storage with FAT32 support (see page 324 of the Vinculum II User Guide).

What does this mean for the musicplayer? Well, simply put the idea is to replace the SD card using SDIO with this module and connect it to the STM32 using SPI or 8-bit FIFO. Speed-wise it both interfaces should work, although actual numbers are a bit sketchy since FTDI only provides numbers for the 1st generation devices transferring data to a monitor port. We’ll see how this plays out.

Another addition is an Atmel 32Mbit DataFlash. It’ll mainly be used for storing trackinfo. Given the large file storage and poor embedded FAT32 performance this should be a useful addition. Will do some quick testing soon.

Comments are closed.