Altera_Forum
Honored Contributor
11 years agoDigital audio player, help choosing the right device
I'm not sure this is the right forum section to post the new thread.
I'm new in FPGA design, so I need some suggestions to choise the right device. I would build a digital audio player with the following characteristics: - it should read data from SD card only - SD card will be formatted FAT32 - the root of SD card will contain folders only (named as album title/artist) - no subfolders will be allowed on SD card - each SD card folder will contain wav files only (named as title track) - only 16 bit / 44.1 kHz wav files will be allowed (CD quality) - music data should be read and managed synchronously - 7 buttons have to be managed: previous track, next track, play, stop, pause, return and enter to navigate the folders - LCD display will be managed to show album/artist, title track, time elapsed and so on - data output (16 bit serial X 2 channels) should feed a r-2r discrete ladder DAC - 74XX595 logic will split the serial data to parallel to feed the ladder network - master clock should be 11.2896 MHz, shared from both DAC logic and FPGA/ARM, to avoid any divider - every time a single bit is ready, FPGA should enable the 595 to store it (595 clock enabled from FPGA in sync with master clock) - every time 16 bit for 2 channels are read, FPGA in sync with master clock should enable the 595s to output parallel data to update the ladder network Practically, file system and wav headers aside, using 11.2896 MHz master clock for all the system, I have to start reading 4 bytes from the SD card (1 left + 1 right samples), then I should pass each single bit synchronously to 4 * 74XX595. The clock of the 595 to store data should be enabled either from the master clock and the FPGA (data ready to store). After the 32th bit is stored in the last 595, FPGA should enable the master clock to tell all the 595s to output parallel data to update the ladder network. Finally the clock of all the 595s should be stopped for 224 cycles, and no data should be read from the SD card. Now the program has to read next 4 bytes, until the end of the wav file. In the meantime I have to manage the LCD display and interrupt from the user buttons. What device do you suggest to do all the above job? FPGA, CPLD or FPGA with ARM embedded? Can I run all the system at the same master clock (11.2896 MHz)? Can I read and manage data synchronously from the SD card? Thanks Andrea