SD Card or VDRIVE1 Data Logging
Hey Everyone,
I have a project that needs to log a list of 30,000,000 numbers with values ranging from 0-4096 (12 bit).· This should take about 0.5·mB of storage.· I plan on doing this on an SD or microSD card.· Using·somthing like this, how can I comunicate with the card?· Does anyone have a demo program for using it or know of a website with a good tutorial on the SD protocall?· I just need some way to get started so I can build on it.
Post Edit: I am also considering using a USB Flash drive via the Viniculum chip from FTDI.· Either one would suit my needs, I just need the writes to happen as fast a possible (The higher the baud rate, the better it will work).
Thanks,
crgwbr
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
NerdMaster
For
Life
Post Edited (crgwbr) : 12/22/2006 7:00:10 PM GMT
I have a project that needs to log a list of 30,000,000 numbers with values ranging from 0-4096 (12 bit).· This should take about 0.5·mB of storage.· I plan on doing this on an SD or microSD card.· Using·somthing like this, how can I comunicate with the card?· Does anyone have a demo program for using it or know of a website with a good tutorial on the SD protocall?· I just need some way to get started so I can build on it.
Post Edit: I am also considering using a USB Flash drive via the Viniculum chip from FTDI.· Either one would suit my needs, I just need the writes to happen as fast a possible (The higher the baud rate, the better it will work).
Thanks,
crgwbr
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
NerdMaster
For
Life
Post Edited (crgwbr) : 12/22/2006 7:00:10 PM GMT
Comments
Even if you stored pure binary it would take 30M * 12 / 8 = 45 MB of storage.
Storing text would take at least 4*30M = 120MB
Just how fast do you need to store the data ?
My SD data logger would work, but it's only 19.2Kbaud and only allows 16MB per file and 32MB per media.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Cheap used 4-digit LED display with driver IC·www.hc4led.com
Low power SD Data Logger www.sddatalogger.com
SX-Video Display Modules www.sxvm.com
Stuff I'm selling on ebay http://search.ebay.com/_W0QQsassZhittconsultingQQhtZ-1
"USA Today has come out with a new survey - apparently, three out of every four people make up 75% of the population." - David Letterman
Thanks,
crgwbr
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
NerdMaster
For
Life
We may be able to make other suggestions...
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Cheap used 4-digit LED display with driver IC·www.hc4led.com
Low power SD Data Logger www.sddatalogger.com
SX-Video Display Modules www.sxvm.com
Stuff I'm selling on ebay http://search.ebay.com/_W0QQsassZhittconsultingQQhtZ-1
"USA Today has come out with a new survey - apparently, three out of every four people make up 75% of the population." - David Letterman
Thanks,
crgwbr
P.S. Is it too unsafe to run an SX48 at 100 MHz or must I stick to 75 MHz. What about with a heatsink?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
NerdMaster
For
Life
Joe
Does your full program loop store all 30 million values? If so, (and assuming you store the 12 bit values in 16 bits words), then you'll need a bandwidth of 30 million value * 1 million times a second * 2 bytes per value = 60 million bytes per second. If this is the case, you won't get that sort of speed with a RAID array of hard drives, let alone a flash memory card.
Thanks,
PeterM
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
NerdMaster
For
Life
You're right about my math error. Your actual speed requirement is much more sane. However,
since you have 12 bit values, I am assuming you'll store those in 16 bit words. If so, 2 values = 4 bytes, and 8 value = 16 bytes, which means your bandwidth is actually either 8 or 16 million bytes per second. This is still mighty fast, and I doubt flash cards can handle anywhere near that speed. The read speed on flash cards is quite fast, but the write speed is pretty pokey.
Thanks, PeterM
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
NerdMaster
For
Life
In your original post, you wrote, "I have a project that needs to log a list of 30,000,000 numbers with values ranging from 0-4096 (12 bit)". You have to remember that 12 bits do not fit into a byte, since a byte only has 8 bits. In your previous two posts, you use the word "value", which I assume to mean the 12 bit value referred to in your original post.
If you want to write 2 million values which use 12 bits, under no circumstances do you have 2 million bytes. The smallest byte based unit you can store 12 bits inside of is a word, which has 16 bits. Since 16 bits = 2 bytes, then two million values = 4 million bytes, and 4 million values = 8 million bytes.
In Bean's original reply, he assumed the most efficient approach where you actually wrote 12 bit binary values to the flash memory. Even if you do this, you'll still have 50% more bandwidth required since each 12 bit value = 1 1/2 bytes. Hence, you will require a 3 to 6 million byte per second bandwidth.
Thanks,
PeterM
Would it work?
crgwbr
PS: Lord Steve, also a very good idea for the Propeller, however it wouldn't work for the SX.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
NerdMaster
For
Life