SD Carda Dosya Oluşturamama Hatası

Başlatan PICaso, 12 Eylül 2019, 12:10:43

PICaso

Arkadaşlar merhaba,
PIC18F45K22 ile micro sd carda başlangıç olarak sadece text dosyası oluşturmaya çalışıyorum. İnternetten bulduğum örnek projeyle denedim fakat bir türlü çalıştıramadım. Hazır sd card modülü kullanıyorum. İşlemcinin RD0 pinine led bağlayıp flaş yaptırıyorum picin çalıştığını görmek için. Fakat sd card da herhangi bir dosya oluşmuyor. Daha önce tecrübe edenlerden yardımlarını bekliyorum. Proje dosyalarını linkten indirebilirsiniz.
https://wetransfer.com/downloads/7a58459ec27b37374ef67cb8d7671eb420190912090206/86ed6bec865403d00ea329500df4a2ab20190912090206/67ffa3
İyi çalışmalar. 


PICaso



Devre resimde görüldüğü kadar basit de olsa bir türlü çalıştıramadım.

PICaso

Mplab xc8 derleyicisi kullanan arkadaşların yardımlarını bekliyorum.

PICaso

Kullandığım sd cardı şekildeki gibi biçimlendirdim.

Pogramda ki ffconf.h dosyasında ki
#define   _MIN_SS      512
#define   _MAX_SS      512

değerlerini
#define   _MIN_SS      4096
#define   _MAX_SS      4096

şeklinde yeniden düzenlediğimde
main.c de ki bu satırdan hata alıyorum.
 FATFS FatFs;   /* FatFs work area needed for each volume */
Başka nerede değişiklik yapmam gereklidir.

RaMu

FAT16 dene birde.

...SS Sector Size diye hatırlıyorum,
oda kolay kolay 512 den farklı olmaz.
Fiziksel olarak kullanılan belleğin okuma yapısı ile ilgili bir durum.
Yani şurayı okumak istiyorum nasıl diyebiliyoruz,
istediğimiz byte adresi söyleyip direk okuyabiliyor muyuz,
illaki 512 byte ın katları şeklinde mi adres söyleyip okumak zorundayız,
yani eeprom lardaki page adres ile okuma gibi düşünülebilir.
Byte addressable, sector addressable.
Byte adresi ile erişilebilir,
sektör adresi ile erişilebilir,
diye sd kartta bu bilgi bulunuyor.

Ayırma birimi boyutu ise Cluster Size
bu bilgi zaten mcu daki Fat kütüphanesi tarafından
Sd kart tan (Fat sisteminde boot sector denen sector0 dan okunuyor)
okunup bulunan bir değer,
program yazarken girilmesi gereken bir değer değil.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

PICaso



Hocam sd cartım da FAT16 seçeneği yok. Önerebileceğiniz farklı bir yol var mı?

yas

commmand prompt u yönetici olarak açıp,
format x: /fs:FAT
yada
format x: /fs:FAT16
şeklinde denediniz mi? "x" sd kartınızın birim adı.

RaMu

4gb dan büyük kartlar Fat16 ile (doğal yollardan) formatlanamaz.

Mcu ile sd kart işi biraz sıkıntılı.
Problem çıkabilecek çok yer var.
4gb 3-5 farklı kartla programı denemekte yarar var.
Program zaten bir dert öyle çok düzgün çalışan bir kütüphane yok.
Lojik analizör ile spi iletişimini adım adım takip edip kontrol etmek lazım.
Tabi bunun için sd kart nasıl çalışıyor bilmek lazım.
Bu konuda yazılar var,
@z hocanında sitesinde böyle bir yazı vardı,
forumdada paylaştıkları vardı.

Sd kart ile konuşunca Fat sistemi belası var dah.
Varda var.

Bulabildiğin bütün örnekleri tek tek denemek daha kolay bir yöntem,
biri olmazsa diğeri çalışacaktır.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

yas

#9
@RaMu hocam fat16 nın sınırı 4gb değil 2gb cluster sınırıda 65535, fat32 2tb kadar cluster ise 32kb tek bir parça dosya boyutu maksimum 32gb sınırı diye biliyorum yanlışım varsa düzeltin.

PICaso

Bugün 512mb sd card buldum Fat16 ya biçimlendirdim ve sonuç başarılı oldu. Kullandığım 16gb sd card Fat16 ya formatlanmadı. Hatayı ekran görüntüsü olarak paylaşıyorum.


yas

@PICaso Disk yönetiminden sd kartı bölümlere ayırıp bölümün birisini 2 gb altı oluşturup ayırma birim boyutunu 512 bayt yapıp formatlamayı dener misin. Şu an yanımda taşınabilir hafıza olmadığı için deneme imkanım yok. Sonucu bende merak ettim şimdi  ::ok

PICaso

Alıntı yapılan: yas - 24 Eylül 2019, 11:14:36@PICaso Disk yönetiminden sd kartı bölümlere ayırıp bölümün birisini 2 gb altı oluşturup ayırma birim boyutunu 512 bayt yapıp formatlamayı dener misin. Şu an yanımda taşınabilir hafıza olmadığı için deneme imkanım yok. Sonucu bende merak ettim şimdi  ::ok
Tamamdır hocam deneyip dönüş sağlayacağım.

PICaso

Alıntı yapılan: yas - 24 Eylül 2019, 11:14:36@PICaso Disk yönetiminden sd kartı bölümlere ayırıp bölümün birisini 2 gb altı oluşturup ayırma birim boyutunu 512 bayt yapıp formatlamayı dener misin. Şu an yanımda taşınabilir hafıza olmadığı için deneme imkanım yok. Sonucu bende merak ettim şimdi  ::ok
Hocam 2 gb altı bir çok değerde denedim ama ayırma birim boyutu 1024 baytın altına düşmedi. Denediğim değerlerde de olumlu bir sonuç alamadım. Çalışan sd card 512 mb ayırma birim boyutu ise 8192 bayt. Bu değerler için uyguladım 16 gb lik kartı yine de çalışmadı.

yas

#14
belki sendeki kart sdxc olabilir.
Konuyla ilgisi yok ama şuraya yazalım birine lazım olur belki; Fat dosya sistemlerinde ayırma birimi kaç ise minimum dosya boyutu o kadar olmakta. Örneğin; ayırma birimi 512 bayt ise 1 bayt lık dosya bile olasa hafızada 512 bayt işgal edilir. (büyük israf  :D )