This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

SDcard Read/Write missing/wrong data

Hi there,

I am using an own PCB with Luminary lm3s8962 (based on the evaluation board) with LabVIEW for ARM and KEIL uVision V3.85

In the past I've been developing code to, Log some data to/Read logfiles from, a microSD card without problems.

The data that is being logged is become a little bit more and at this moment I get corrupted data on/from the microSD card. I am using SanDisk 2 GB microSD's.

problem one: When I write enough data for a longer time I see that sometimes the data is wrong. I tested this behavior and I can reproduce it. The data size is OK but where I expect data like:
112;112;112;112;112;112 I see:
112;112;11;111;1112;112

sometimes the SDcard copies old or wrong data to that position that is wrong.

I've made a change which decrease the buffer per write. Now I don't see this problem anymore.
Is this an known issue?

problem two: When I read files from the microSD card on my embedded ARM and read the data via USB, I get wrong data (the first bytes are looking like a directory table of FAT)
I didn't made any change to the USB Read protocol and I wipe the microSD before every test.

When I read the microSD card in Windows, there are no problems.
Is there someone that is also getting strange behavior like this?

Parents
  • Yes I've tried that, with the same result as mkdosfs under linux.
    I also tried the EK-LM3S8962 evaluation board, with the same results!

    I've made an dd image of the two different sd-cards.
    I see a kind of table at adress 0x8000 with characters from 0x04 untill 0x92.
    the one of sandisk (the one with errors) goes further until 0xFF. and afterwards there is another table like this..

    the table looks like:
    0400 0500 0600 0700 0800 etc.

    what is this table?

    or am I searching in the wrong direction?

Reply
  • Yes I've tried that, with the same result as mkdosfs under linux.
    I also tried the EK-LM3S8962 evaluation board, with the same results!

    I've made an dd image of the two different sd-cards.
    I see a kind of table at adress 0x8000 with characters from 0x04 untill 0x92.
    the one of sandisk (the one with errors) goes further until 0xFF. and afterwards there is another table like this..

    the table looks like:
    0400 0500 0600 0700 0800 etc.

    what is this table?

    or am I searching in the wrong direction?

Children