Hi Eric. Thank you very much for you quick response. I guess I need to dig up. I'm using defaults... Anyway, I assume the default configurations you refer to are not set to about 20 times lower than max possible. 20 is the factor of improvement I'm looking for (at least!). I hope I'm not chasing pavements here...
On Tue, Jan 1, 2013 at 5:32 AM, Eric Decker <cire...@gmail.com> wrote: > > How fast are you clocking the 1611 cpu? > > How fast are you clocking the SPI feeding the SD card? > > That will tell you the max theoretical rate you can transfer data. > > The high data rates to the SD assume the parallel 4 bit wide SD protocol > rather than the SPI single bit stream that is probably used on the Shimmer > or on my cards. > > > On Mon, Dec 31, 2012 at 2:55 PM, Avishay Meron < > avishay.me...@mail.huji.ac.il> wrote: > >> Hi all. >> Searching google and the mailing list, I haven't found an explicit answer >> to my problem. Here goes: >> I'm trying to test SD logging max write speed on a shimmer2r. I've tried >> using the FatFS but got unsatisfying results. >> So, I decided to write directly to the SD. Using a simple application >> (see code below), I found that the max rate of SD writing is about 20kB/s. >> Is that it? is this the maximum rate possible? I was hoping to get at least >> 0.5 or 1 MB/s. Any suggestions? >> >> Happy new year to you all... >> >> Here is my test code... >> >> -----------------TestSDP.nc------------------- >> #include "TestSD.h" >> >> module TestSDP{ >> uses{ >> interface Leds; >> interface Boot; >> interface SD; >> interface StdControl as SDStdControl; >> } >> } >> >> implementation{ >> >> uint8_t resetData[SECTOR_SIZE], dummyData[SECTOR_SIZE]; >> int8_t data=0xff; >> uint32_t beginSector=1000000, numOfIt=20000, currSector; >> >> //Using numOfIt=20000, it took the application 17 min and 47 sec to >> run, >> //from which 8 min and 51 sec to write dummyData. >> //The rest of the time the application Formated the sectors. >> //This means writing at about 20kB/s >> >> event void Boot.booted(){ >> call Leds.led2Toggle(); >> call SDStdControl.start(); >> memset(resetData, 0, SECTOR_SIZE); >> memset(dummyData, data, SECTOR_SIZE); >> call Leds.led2Toggle(); >> } >> >> void FormatSectors() >> { >> uint32_t i=0; >> currSector=beginSector; >> for (i=0; i<numOfIt; i++, currSector++) >> { >> call SD.writeBlock(currSector, resetData); >> } >> } >> >> void WriteDummyData() >> { >> uint32_t i=0; >> currSector=beginSector; >> for (i=0; i<numOfIt; i++, currSector++) >> { >> call SD.writeBlock(currSector, dummyData); >> } >> } >> >> async event void SD.available(){ >> call Leds.led0Toggle(); >> FormatSectors(); >> call Leds.led0Toggle(); >> call Leds.led1Toggle(); >> WriteDummyData(); >> call Leds.led1Toggle(); >> call Leds.led2Toggle(); >> } >> >> async event void SD.unavailable(){ >> } >> } >> >> -----------------TestSDC.nc------------------- >> >> configuration TestSDC{ >> } >> implementation{ >> components MainC, LedsC, SDC, TestSDP as app; >> app.Boot -> MainC.Boot; >> app.Leds -> LedsC; >> app.SD -> SDC; >> app.SDStdControl -> SDC; >> } >> >> -----------------TestSD.h------------------- >> #ifndef TEST_SD_H >> #define TEST_SD_H >> #define SECTOR_SIZE 512 >> #endif /* TEST_SD_H */ >> >> >> Best >> Avishay >> >> _______________________________________________ >> Tinyos-help mailing list >> Tinyos-help@millennium.berkeley.edu >> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help >> > > > > -- > Eric B. Decker > Senior (over 50 :-) Researcher > > -- Best Avishay
_______________________________________________ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help