2017-11-09 02:19 AM
I'm having a problem on data logging.
I use Chan's FatFs R0.08a, SDIO 1 bit mode, DMA and ST standard library, IAR compiler.
I save 600,000 data per 200ms in SD Card using CSV format. It need about 33hours.
If I try 3 sets, 1 set is good for 600,000 data, but 1set have broken 7 data, and 1set have broken 17 data.
I tried it several times. It have Max 20 broken data. Are there anyone have similar experience?
My code brief flowchart is as below.
* every 12second for 60 data (200ms * 60 = 12sec)
1. set External 4MHz
2. f_mount(0, &fs)
3. res = f_open(&F, fileLName, FA_WRITE);
4. res = f_lseek(&F, end_no);
5. __disable_irq();
res = f_write(&F, wbuff, cnt, &BytesWrite); //wbuff[] : 60 Data = about 2000 characters __enable_irq();6. f_close(&F);
7. res = f_open(&F, fileLName, FA_READ);
8. res = f_lseek(&F, start_no);
9. res = f_read(&F, rSDRead, cnt, &BytesRead);
10. Verify each character
11. f_close(&F);
12. SD_PowerOFF();
13. Set Internal 4.194MHz for Battery Save
Of course I tried above flow in many many ways .
It is not easy and need long time for 1 test.
I would be so grateful if anyone could help me.
2017-11-09 02:59 AM
What, exactly, do you mean by 'broken data' ?
2017-11-09 03:16 AM
Thanks so much.
Sorry, My english is very poor.
Broken data is not normal data.
Ex. I write '12000,ACV,3.0000,V,LF,' but in Excel, I can see '500000,DCV,4.1200,V,LF,'.
Maybe it is data in before file. It did not overwrite.
Sometimes, I can see strange characters. Max 20 data among 600,000data do not write normally.
I write and read and verify. But I don't know why didn't check it.