Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20688 Discussions

Interfacing Compact Flash

Altera_Forum
Honored Contributor II
1,199 Views

Hi folks, 

I am Pradeep, i am a newbi in FPGA and CPLD designs. i wanted to know how can we interface compact flash with either an FPGA or a CPLD. can you suggest any relevant websites or material to start with.  

 

Sorry if my question is little vague. i am hoping to get a reply soon thanks in advance 

 

Regards 

Pradeep
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
394 Views

What do you plan to do with it? Do you want to have a soft core CPU too? In that case there is a compact flash controller in SOPC builder, so you could start with some SOPC/Nios tutorials to understand how it works.

0 Kudos
Altera_Forum
Honored Contributor II
394 Views

Hello Mr.Daixiwen 

 

Thank you very much, our requirement is to just interface compact Flash(can be external device) for data storage which comes(data) after some processing from FPGA/CPLD. thats all its only to store it.  

 

again as you said if it softcore cpu then i guess it requires more complex FPGAs where resources must be large. and i guess it will sit on the Internal of FPGA always. i feel i want an external device (CF) to be connected. 

 

if my understanding of your reply is correct. then can you suggest me more on the way i have to proceed else can you explain me in detail. 

 

i would be thankful to you for your valuable help, i am sorry if my queries are vague. 

 

hope to get a reply soon 

Thanks in advance 

Pradeep
0 Kudos
Altera_Forum
Honored Contributor II
394 Views

It depends a lot on how you want to store the data on the compact flash. If you want to use a file system, such as FAT, so that you can read back the data on a PC, you will need a CPU. 

The compact flash controller provided by Altera is meant to be used in SOPC builder with a Nios CPU. I think that you could control it directly from custom hardware, but it won't be easy. 

You can find the controller datasheet here (http://www.altera.com/literature/hb/nios2/qts_qii55005.pdf).
0 Kudos
Altera_Forum
Honored Contributor II
394 Views

 

--- Quote Start ---  

If you want to use a file system, such as FAT, so that you can read back the data on a PC, you will need a CPU. 

--- Quote End ---  

It's the regular way, but not absolutely required, in my opinion. You can also think of a low-level storage, that is compatible with FAT. Of course, some restrictions apply. The most basic method would assign the full media storage to a single continuous file. FAT management on the CPLD side reduces to determining the file's relative sector 0 address in this case. 

 

Regarding CF specific handling, usually true IDE mode is utilized, which is identical to accessing an ATA/IDE hard disk. t13.org has the respective documents. There have been also good OEM CF manuals from Sandisk, describing the protocol in detail.
0 Kudos
Reply