I developed an embedded system based on a FPGA (ECP2 lattice) with a soft core (MICO32). I also developed a peripheral in verilog for connecting to a compact flash. The processor runs at 70 Mhz, with 256 Mbytes of DDR1 external ram, and internal cache. The compact flash works in memory mode.
The problem is the sector access time, which is very slow. I can write 1.2 Megabytes in 60 seconds with a Sandisk ULTRA !!! With the same compact flash, connected to a PC, I measured more that 10 Mbytes/sec.
I did some measurements, and it seems that the problem is the access time to the sector. Before writing any sector, the status of the Comact flash is checked, and it must be 0x58.
Also after write sector, the status of the compact flash must be 0x58.
Does anybody knows how to access the compact flash in order to obtain a faster speed ? I don't need a very high speed such as UDMA, but 1.2Mbyte in 60 seconds is really not acceptable.... at least I need 500 Kbyes/sec... Is there a way to achieve this speed in memory mode ?
Thanks