Go to previous topic
Go to next topic
Last Post 04 May 2009 11:57 AM by  steve
WinCE and CompactFlash Driver and speed
 5 Replies
Author Messages
AlanREI
New Member
New Member
Posts:


--
03 Jul 2008 08:00 AM
    CE 5.0. PCMCIA driver 50_0_1_0

    I need to be able to read through many gigs of data off CF as fast as possible.

    I am trying to get CompactFlash cards to work. I loaded the sample CE image project that came with the dev kit, and I added the PCMCIA driver to it. Then I created a new image and loaded it. It sees the compact flash card as "Storage Card" in the OS. However, when reading from the compactflash card the system hangs and it takes about 24 seconds to read a megabyte off the card.

    I have a WinCE image that allows the CF to work. However, the image was built by a previous developer and I do not know what he included. It also seems to read about 1.9 MB/s.

    Currently, the image he has allows me to read the industrial CF cards we have that are ultra II I think rated at 9 MB/s, I was hoping to get a much faster speed than 1.9 MB/s from the compactflash. It reads those industrial cards up to 1 GB on the previous developer's image fine, but when I put a 16 GB Transcend 133x card in WinCE asks me for the name of the driver? However, from LoLo, I can see the files on the 16 GB card just fine and boot the OS.
    Summary: If anyone can answer the following questions that would be great.

    Does logicpd have a compactflash driver that works, if not what component did the previous developer add to include CF support?

    Can it read cards as large as 16 GB or more, why does the functional NK.BIN ask me for a driver when inserting this card?

    Does anyone know the maximum speed the CF is capable of, is 1.9 MB/s about it?
    mikea@logicpd.com
    New Member
    New Member
    Posts:


    --
    03 Jul 2008 12:40 PM
    Alan,
    First, I'd recommend making sure you use the 1.0.0 driver. http://www.logicpd.com/downloads/archives/2387/lpd_imx31_pcmcia_imx31_50_1_0_0.zip

    Also, both the of the evaluation images (posted on 3/7/2008) on the website include the 1.0.0 pcmcia driver, although the readme for the 'sample' image doesn't state it, it's in there. This was an error.

    http://www.logicpd.com/do...e_image_03072008.zip
    http://www.logicpd.com/do...v_image_03072008.zip

    Did have had some issues with I/O cards. If you do run into issues, you may need to tweak the timing of that area, which you'll see in the .reg file for the driver. My thought could be that the larger CF memory cards are perhaps actually I/O CF cards, which will require different timing than the simple memory CF cards.

    Hope this helps,
    -Mike
    AlanREI
    New Member
    New Member
    Posts:


    --
    07 Jul 2008 07:14 AM
    i did find the newest dev image with the newest driver, and it works as well as the other image that I have.

    I noticed when I decreased the timing parameters the memory that used to work now asked me to type the name of the driver similar to the other larger card. So instead I will now increase the timing parameters to try to get the other memory to work (the 133x 16 gb).

    I really need to know what others have achieved in terms of read speed off the compact flash? What is the maximum speed the board is capable? Is it in line with the 1900 KB that I have benchmarked?
    steve
    New Member
    New Member
    Posts:20


    --
    11 Feb 2009 03:15 PM
    Alan,

    Have you made any progress on your CF performance? We found similar issues, but have been able to get fair performance (can't seem to find the test data to give you a number).

    More importantly - we do see hang issues with CF cards. What we've found is that coming out of Suspend mode may lose the CF card fairly often. This happens on both the LITEkit and our hardware, slow and fast cards. Getting the CE error box you mentioned (Unidentified PCCard Adapter) is a sign you've lost the CF card. It will be gone from My Device, and you will usually hang when trying any navigation. We're trying to document this more carefully before asking LPD.

    Do you continue to see CF hangs?

    Steve
    AlanREI
    New Member
    New Member
    Posts:


    --
    04 May 2009 09:50 AM
    Posted By sps on 11 Feb 2009 3:15 PM
    Alan,

    Have you made any progress on your CF performance? We found similar issues, but have been able to get fair performance (can''t seem to find the test data to give you a number).

    More importantly - we do see hang issues with CF cards. What we''ve found is that coming out of Suspend mode may lose the CF card fairly often. This happens on both the LITEkit and our hardware, slow and fast cards. Getting the CE error box you mentioned (Unidentified PCCard Adapter) is a sign you''ve lost the CF card. It will be gone from My Device, and you will usually hang when trying any navigation. We''re trying to document this more carefully before asking LPD.

    Do you continue to see CF hangs?

    Steve




    Sorry for the late reply, but...

    I was able to fix problems with my CompactFlash card by changing the timings. However, we do not actually use windows to suspend our device so I would not know whether it works with suspend. Let me give you the timings I have been using which you can try.

    I've been able to get over 2,000 KB/s with the new timings. One tip is: Make sure you read or write at least 4 KB at a time, sequentially, for best performance. The performance will drop off if you are reading with a buffer less than 4 KB. Also, for some reason..(maybe it is a more direct route?) we get better speed on our board layout than the dev kit.

    Here's some basic read benchmarks that I got.

    Our's (buffer size - speed)

    4 KB - 2421 KB/s
    8 KB - 2785 KB/s
    16 KB - 2878 KB/s
    32 KB - 2906 KB/s

    Dev kit.

    4 KB - 2196 KB/s
    8 KB - 2351 KB/s
    16 KB - 2406 KB/s
    32 KB - 2409 KB/s

    This was probably done with a faster card... 133x or 266x but I'm not sure which one I used and most any card is capable of doing much faster than this. I believe this is the best you will do on the LogicPD IMX31 because it does not have DMA for CompactFlash.


    Timings :

    "PccStrobeLength"=dword:00000009 ; Maximum value is 0x7F
    "PccStrobeSetupTime"=dword:00000002 ; Maximum value is 0x3F
    "PccStrobeHoldTime"=dword:00000002 ; Maximum value is 0x3F

    I had reduced PccStrobeLength before to 5 or so maybe.. but I seem to recall that led to some problems. I believe these are the timings that I used for those benchmarks.
    steve
    New Member
    New Member
    Posts:20


    --
    04 May 2009 11:57 AM
    Alan,

    Thanks for the timing tips. I haven't looked to tune much yet, but need to since we see such a variance across CF suppliers.

    I also caught your other post. We validated the suspend/resume errors with LPD and it's getting some attention.

    Thanks again - Steve


    ---