Sign in

username:

password:



Not a member?

Search Comp.Arch.Embedded



Search tips

embedded by Keywords

68HC11 | 68HC12 | 8051 | 8052 | ARM | ARM7 | Asic | AT91 | AT91RM9200 | Atmel | AVR | AVRStudio | Bootloader | CFP | CompactFlash | Cygnal | Cypress | Dataflash | DSP | eCos | EEPROM | Embedded Linux | Emulator | Endian | Ethernet | Firewire | FPGA | Freescale | GCC | GNUARM | GSM | H8 | HDLC | I2C | Infineon | Interrupts | Java | JTAG | LCD | LED | LPC2000 | MCU | Microchip | MMC | MPLAB | MSP430 | PC104 | PCB | PCI | PCMCIA | PowerPC | Rabbit | RS232 | RS485 | RTOS | SBC | SDRAM | Sensor | SPI | STK500 | UART | UML | USART | USB | Verilog | VHDL | VxWorks | Xilinx

Discussion Groups

Discussion Groups | Comp.Arch.Embedded | CompactFlash write speed

There are 3 messages in this thread.

You are currently looking at messages 0 to 3.

CompactFlash write speed - A.D. - 13:59 18-07-08



Hi all!
I'm designing a high speed datalogger that should store
a continuous data stream (about 2MB/s) for about 30
minutes. I'm using a Compact Flash card to store data
samples (no FAT, just raw data with a continuous
addressing, in order to keep all as fast as possible).
The CF I tested is rated 66X (i.e. about 10MB/s),
and the micro (an AVR) can sustain a write speed
greater than 4MB/s. The problem is that the CF
seems to have very long execution time, so even
if I'm very fast to transfer commands and data
blocks, I have to wait *many ms* before getting
the card ready again for the next command.
My question is: does anybody succeded in getting
a sustained write speed greater than 2MB/s with
a CF card? If yes, how? What is the most appropriate
sequence of commands/operations: write sector,
write sectors, erasing before writing, writing without
erasing, using contiguous addressing, or what else?

Thanks in advance,
Antonio



P.S. I'm using True IDE mode, 8 bit data, PIO
mode (not DMA). But as I said the limit is not
the interface but the card "execution" time...




Re: CompactFlash write speed - Vladimir Vassilevsky - 14:20 18-07-08


A.D. wrote:
> Hi all!
> I'm designing a high speed datalogger that should store
> a continuous data stream (about 2MB/s) for about 30
> minutes. I'm using a Compact Flash card to store data
> samples (no FAT, just raw data with a continuous
> addressing, in order to keep all as fast as possible).
> The CF I tested is rated 66X (i.e. about 10MB/s),
> and the micro (an AVR) can sustain a write speed
> greater than 4MB/s. The problem is that the CF
> seems to have very long execution time, so even
> if I'm very fast to transfer commands and data
> blocks, I have to wait *many ms* before getting
> the card ready again for the next command.
> My question is: does anybody succeded in getting
> a sustained write speed greater than 2MB/s with
> a CF card? If yes, how? What is the most appropriate
> sequence of commands/operations: write sector,
> write sectors, erasing before writing, writing without
> erasing, using contiguous addressing, or what else?
> 
> Thanks in advance,
> Antonio
> P.S. I'm using True IDE mode, 8 bit data, PIO
> mode (not DMA). But as I said the limit is not
> the interface but the card "execution" time...

I am using the compact flash with BlackFin system and with the good 
cards I am getting the sustained read/write performance at the order of 
25 MBytes/sec.  Just about every modern compact flash card from WalMart 
can do 10MB/s at least. I am not using the DMA/UDMA modes, all done with 
the conventional sectors read/write operation.  The 25MB/s is the 
limitation of the system; the CF itself can go faster then that. Yes, 
there is a long latency at the beginning of the commands. For the best 
performance, you should use the maximum block size, and align your 
read/write flash operations on the block size.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com



Re: CompactFlash write speed - A.D. - 01:57 20-07-08

Vladimir Vassilevsky <a...@hotmail.com> wrote in message
X95gk.14673$x...@nlpi070.nbdc.sbc.com...
>Yes,  there is a long latency at the beginning of the commands.
> For the best performance, you should use the maximum
> block size, and align your read/write flash operations
> on the block size.

Thank you for the info!
Surely I'm doing something wrong, since I observe
huge latencies (up to 200ms!)... Maybe these are
something like timeouts and not command latencies...

Thank again,
Antonio