MicroSD Kart Okuma Yazma

Başlatan gallavi, 11 Haziran 2010, 09:33:07

gallavi

Bir Projem içim Piyasada bolca bulunan MicroSD kartlardan 1gb ve 2bg olanlar üzerinde okumam yazmam gerekiyor. PIC18F4550 ile SPI üzerinde MicroSD ile haberleşebiliyorum. Initialize kısmınıda hallettim. CID ve CSD registerlarını okutabiliyorum ve CID içinde bulunan 5 byte lık kart ismini doğru şekilde alıyorum. Ama CSD registerinde kartın kapasitesi ile ilgili register dan okuduğum değerler ile olması gereken değerler tutmuyor örneğin 1 ve 2 gb lık karın ikisinde de sektör büyüklüğü READ_BLK_LEN = 9 (yani 512 byte) olarak görünüyor.  Kapasite çarpanı 2 kartda da maksimum değer olan C_MULTI = 7   (512) olarak görünüyor. C_SIZE değerleri ise 1gb için 3429 ,2gb için 3433 okuyorum. Inernetde elde ettiğim dökümanlarda kart kapasitesinin (C_SIZE + 1) * 2^(C_MULTI+2) *  READ_BLK_LEN şeklinde hesaplandığını görüyorum ama bu hesapla kart kapasitesi doğru hesaplanmıyor. Bu konuda tecrübesi olup yardım edecek arkadaşlar varsa çok sevinirim iyi çalışmalar.
DemirHan=gallavi;

gallavi

Çözümü kendim buldum aslında sorun byte ları struct'a ters taraftan doldurmamdan kaynaklanıyormuş. Konu açılmışken belirteyim SD kartları 3.3 voltla beslemek gerekse bile 5V ile çalışan işlemci ile rahatlıkla haberlerşe bilirsiniz logic konverter ile falan uğraşmayın örnek şema olarak olimax in pic18f4550 ile hazırlanmış kartındaki şemalardan faydalanabilirsiniz herkeze iyi çalışmalar.
DemirHan=gallavi;

tekniker_murat

#2
Sayın Gallavi hocam Senin ayaklarını yıkar suyunu içerim ( kesinlikle espiriden ibarettir :D  ;D

Hocam işin şakası bir yana ben de bir projemde bütün sistemlerden gelen verileri bir hafıza kartı içinde açacağım err.txt isimli bir dosyanın içine anlık olarak yazdıracağım.

Fakat daha önceden hafıza kartları ile ilgili hiç bir çalışmam olmadı şurda çok kısıtlı bir zaman içerisinde 3-4 gündür araştırmalar yapıyorum birkaç tane sitede ufak tefek yazılar gördüm fakat tam ve doyurucu bir açıklama değiller.

Bana ve forumdaki diğer arkadaşlara da faydası olacak şu hafıza kartlarını sıfırdan alıp bir proje yapabileceğimiz seviyeye kadar anlatan bir döküman paylaşabilirmisiniz ?

Yukarıdaki yazınızda gördüm CS CSD CID gibi registerleri ve C_MULTI = 7 gibi kelimeleri sebeplerini sonuçlarını yazılması için gerekenleri iletişim protokolünün ne olduğunu ( spi,i2c,one wire vs ) okunması için gerekenleri vs bilgileri bizimle paylaşabilirmisiniz ?

Hiç yoktan elimize bir tane sd kart ve devre elemanları alıp sizin dökümanınızla bir proje yapabileceğimiz bir dökümanı bizimle paylaşırsanız Allah rızası için valla çok makbule geçer Hemde bol bol dua ederim.
[email]murat.yagci.1984@gmail.com[/email]

gallavi

Sıfırdan döküman hazırlamaya vaktim olmaz ama SD kartı işlemciye nasıl bağlarım derseniz. http://www.olimex.com/dev/pdf/PIC/PIC-USB-STK.pdf burdan bakabilirsiniz görüldüğü gibi sd kart 3.3V da çalışada 5v ile çalışan işlemci pinlerine direk bağlanabiliyor. Eğer yazılım hazırlarken C kullanırsanız takıldığınız durumlarda yardımcı olmaya çalışırım. Siz txt dosyası içine yazmak istemeniz işleri karmaşık hale getiriyor bunu yerine karta direk arada dosya sistemi olmadan yazarsanız işiniz daha kolay ama o zaman PC de açıp okumanız zor olur.

http://dergi.picproje.org/mmc-sd-kart-uygulamasi Bu yazıyıda görmüşsünüzdür sanırım.
DemirHan=gallavi;