2015-08-25 04:16 AM
Hey I am making a microSD card logger, it is going to run on a battery so the power consumpion is of big importance and because of that microSD card speed also matters a lot. I've found the program H2testw which is used to test the SD card speed. I've tested 5 microSD cards 64Mb (Unknown), 2Gb(4 Class), 4Gb(4 Class), 8Gb(4 Class) and 16Gb (10 class). The results were:
64Mb - Read: 0.99Mb/s, Write: 879Kb/s2Gb - Read: 0.99Mb/s, Write: 927Kb/s4Gb - Read: 0.99Mb/s, Write: 581Kb/s8Gb - Read: 0.99Mb/s, Write: 888Kb/s16Gb - Read: 0.891Mb/s, Write: 896Kb/sAnd sometime even lower speeds...Example from H2testw:Warning: Only 200 of 1882 MByte tested.Test finished without errors.You can now delete the test files *.h2w or verify them again.Writing speed: 788 KByte/sReading speed: 871 KByte/sH2testw v1.4I've tried to test them with the code Clive1 provided ''asr_ahmed_sdio.hex'', but I couldn't find a way to change the SWV clock (2000kHz) And nothing happens.Is there a way to speed up these microSD cards, because as I check other people manage to get up to:=Writing speed: 3.48 MByte/s
=Reading speed: 14.1 MByte/s
But in my case I cant get reading speed higher than a megabyte. So does anybody have any ideas?2015-08-25 05:20 AM
I suspect the constraining factor here is the USB-FS connection.
2015-08-25 05:50 AM
So if I want to test my microSD on STM32 the code should just keep pushing data for a certain amount of time (setup a timer). Am I right?
2015-08-25 07:27 AM
The example I provided should be viable using the Windows ST-LINK Utilities (you configure the processor speed in the SWV Viewer window)
I time the period of a large data transfer, with large blocks, using a 32-bit timer at processor frequency, and then work the math backward to get a MB/s number.