STM32 FafFs Spi SD Kart Problem

Başlatan sımışka, 31 Temmuz 2021, 09:50:45

sımışka

Merhabalar kolay gelsin,

Birkaç veriyi loglama amaçlı spi üzerinden sd karta veriler yazıyorum. FafFs R0.12C versiyonu ve stm32l051k6 kullanarak.

Bir süre sorunsuz çalışıyor fakat yaklaşık 1 megabyte yazdıktan sonra dosyalar bozuluyor, disk bozuluyor.

Saniyede 45byte yazıyorum yaklaşık 6-7 saat sonra bozuluyor.

Sd kartı pc ye takıp içine bakmak istediğimde sd kartın labelı anlamsız bir isme , örneğin : "kjsdh4tu23^'" gibi
içindeki dosyada .txt dosyası tamamen kaybolup sanki virüslü dosyalar gibi anlamsız dosyalar, klasörler olulmuş oluyor yine yukarıdaki gibi saçma isimler ile.

Dosyayı bir kere açıyorum en başta ve;
fresult = f_open(&fil, "file1.csv", FA_OPEN_APPEND | FA_WRITE | FA_READ | FA_OPEN_ALWAYS);

Sonra Her saniyede yaptığım işlem : 
fresult= f_write(&fil, sd_val, strlen(sd_val), &bw);
fresult=f_sync(&fil);

Yaklaşık 1 dakika sonrada dosyayı tamamen kapatıp tekrar açıyorum ve yukarıdaki yazma rutinine tekrar girip yazmaya devam ediyor.
fresult = f_close(&fil);
HAL_Delay(300);
fresult = f_open(&fil, "file1.csv", FA_OPEN_APPEND | FA_WRITE | FA_READ | FA_OPEN_ALWAYS);

Her birinin geri dönüş değerlerini de kontrol ediyorum.

Böyle bir durumla karşılaştınız mı veya neden olabilir acaba ?






erdcan

Merhaba, saniyede 45 byte yazdığınızı belirtmişsiniz. İlk aklıma gelen sd kartın kendisiyle ilgili bir sorun olabileceği.
Farklı bir sd kart ile deneyebildiniz mi? Class 10 olması tavsiye olunuyor. Bilgisayarınız windows işletim sistemi ise linux tabanlı bir işletim sistmeine sahip bilgisayarda sd kartınızın içeriğine bakabilirsiniz. son olarak bir ihtimal rutin bir şekilde güç düşüşü gözlemlenen bir durum oluyor mu ona bakabilirsiniz.

sımışka

Alıntı yapılan: erdcan - 31 Temmuz 2021, 10:30:10Merhaba, saniyede 45 byte yazdığınızı belirtmişsiniz. İlk aklıma gelen sd kartın kendisiyle ilgili bir sorun olabileceği.
Farklı bir sd kart ile deneyebildiniz mi? Class 10 olması tavsiye olunuyor. Bilgisayarınız windows işletim sistemi ise linux tabanlı bir işletim sistmeine sahip bilgisayarda sd kartınızın içeriğine bakabilirsiniz. son olarak bir ihtimal rutin bir şekilde güç düşüşü gözlemlenen bir durum oluyor mu ona bakabilirsiniz.
Class 10 evet iki farklı sd card ile denedim aynı sorun oluşuyor ne yazikki. Evet Windows , Linux da bakayım aynı durumu yakalayınca. Güç düşümünden şüphelendim baktım açıkçası karşılaşmadım da, hep aynı yerlerde olunca konfigürasyon veya yazılımsal olabileceği ihtimali daha çok gibi duruyor hocam.

sımışka

Bu tarz içeriğe dönüşüyor kart.


erdcan

SPI veriyolunu kullanan başka bir devre elemanı belki iletişimi bozuyor olabilir. RFID kart ile çalışırken sd karta azılan veri bozuluyordu ama sizin karşılaştığınız sorun dosya yapısı ile ilgili. SD kart formatlanırken ayırma boyutu 8 kb idi sanırım fat dosya sisteminde belki onunla ilgili bir durum olabilir. 45 byte'lık veri blok şekilde mi yazılıyor? string float gibi farklı veri türlerinde mi?

kimlenbu

Alınabilecek önlemler :

1) Dosyayı devamlı açık bırakmayın. Açın, yazın, kapatın.
2) Yazma sonrası okuyup verinin doğru yazıldığından emin olun.
3) Mümkünse bir counter koyup kaç veriden sonra bozulma yaşanıyor kontrolü yapın. Belki fonksiyonlardan birisinde overflow meydana geliyordur.

volkanunal

#6
Aynı sorun ile karşılaştık hocam bizde, hatta forumda bir gönderi açmıştım konu ile ilgili. Versiyonu hangisi olduğunu hatırlayamadım ama biz tüm driver'i R0.14'a olana geçirdik sonra bir daha karşılaşmadık. Bizde de benzer şekilde anlamsız karakterler geliyordu, bazen dosya silinmesi oluyordu gibi sorunlar vardı.

Konuyu buldum : https://www.picproje.org/index.php/topic,76207.msg581692.html#msg581692

2014 yılında ki bir versiyonu kullanıyormuşuz biz o dönemde. Sizde tüm dosyaları değiştirerek kullanmayı bir deneyin hocam.

sımışka

Alıntı yapılan: erdcan - 31 Temmuz 2021, 11:04:09SPI veriyolunu kullanan başka bir devre elemanı belki iletişimi bozuyor olabilir. RFID kart ile çalışırken sd karta azılan veri bozuluyordu ama sizin karşılaştığınız sorun dosya yapısı ile ilgili. SD kart formatlanırken ayırma boyutu 8 kb idi sanırım fat dosya sisteminde belki onunla ilgili bir durum olabilir. 45 byte'lık veri blok şekilde mi yazılıyor? string float gibi farklı veri türlerinde mi?
Herhangi bir spi cihaz mevcut değil sistemde hocam. String tipinde yazılıyor

sımışka

Alıntı yapılan: kimlenbu - 31 Temmuz 2021, 11:27:52Alınabilecek önlemler :

1) Dosyayı devamlı açık bırakmayın. Açın, yazın, kapatın.
2) Yazma sonrası okuyup verinin doğru yazıldığından emin olun.
3) Mümkünse bir counter koyup kaç veriden sonra bozulma yaşanıyor kontrolü yapın. Belki fonksiyonlardan birisinde overflow meydana geliyordur.
Deniyorum 1. adımı şu an halen debug da izliyorum, logluyor. Gelişmelere göre yazacağım.

sımışka

Alıntı yapılan: volkanunal - 31 Temmuz 2021, 13:25:43Aynı sorun ile karşılaştık hocam bizde, hatta forumda bir gönderi açmıştım konu ile ilgili. Versiyonu hangisi olduğunu hatırlayamadım ama biz tüm driver'i R0.14'a olana geçirdik sonra bir daha karşılaşmadık. Bizde de benzer şekilde anlamsız karakterler geliyordu, bazen dosya silinmesi oluyordu gibi sorunlar vardı.

Konuyu buldum : https://www.picproje.org/index.php/topic,76207.msg581692.html#msg581692

2014 yılında ki bir versiyonu kullanıyormuşuz biz o dönemde. Sizde tüm dosyaları değiştirerek kullanmayı bir deneyin hocam.
Hocam en şüphelendiğim kısımda bu versiyon kısmı. Çünkü daha önce farklı işlemcinin CubeMx ayarlarında R0.11a versiyonu vardı. Aşırı sorunlu bir versiyonmuş. Doğru düzgün çalışmadı bile.
L0 serisi işlemciye geçince R0.12C ile geldi daha düzgün çalıştı.
Zaten elm chan sitesinde her sürüm güncellemesinde düzeltilen buglardan bahsediyor. İşlemci belleği çok az kaldığı için taşıma işlemini henüz yapmadım. Ama deneyeceğim