Skip to main content

SD Kart Katmanı

Bu bölüm, B107AA-R6 üzerindeki microSD kart arayüzünü ve SD kartın iki farklı işlemci tarafından kullanılabilmesini sağlayan paylaşımlı SPI + SPI MUX/switch yapısını mantıksal bazlı olarak dokümante eder.

SD kartın temel amacı; özellikle firmware update (FOTA) akışlarında bir “ara depolama/transfer ortamı” sağlamaktır. SD kartın aynı donanım üzerinde iki ayrı MCU (Ana MCU ve FOTA MCU) tarafından erişilebilir olması, sahada güncelleme süreçlerini daha kontrollü ve hata toleranslı kılar.


Topoloji


Çalışma Sistemi

  • SD kart SPI modda kullanılır.
  • SD Kart 3V3 domaini üzerinden beslenmektedir, aynı zamanda SPI hatları gürültü azaltma ve kararlılık nedeni ile 3V3 hattına pull-up yapılmıştır.
  • Sürekli çalışma modunda olan Ana İşlemci SD kartın takılı olup olmadığını denetleyebilmektedir. Bu bilgi aynı zamanda veri paketi ile sunucuya iletilmekte ve sunucu tarafından cihaz üzerinde SD mevcudiyeti izlenmektedir.
  • SD kartın SPI hatları (SD_MOSI, SD_MISO, SD_SCK, SD_SS) tek bir işlemciye kalıcı bağlı değildir.
  • Topoloji gereği SD kart SPI MUX üzerine girmektedir.
  • Varsayılan olarak FOTA işlemcisine bağlı olan SD kart, ana işlemci tarafından işlem yapılacağı zaman SD_ENABLE sinyali ile anahtarlanarak kendi üzerine bağlanmaktadır.
  • SPI MUX ile SD kart hatları 2:1 analog switch üzerinden iki farklı SPI master bankı arasında seçilerek paylaştırılır.

Bu mimari, donanım seviyesinde “iki master aynı anda bus sürmesi (bus contention)” riskini minimize eder.


Kullanım senaryosu

Bu tasarımda SD kart, firmware update sürecinde “ortak depolama” gibi çalışır:

FOTA Güncelleme Senrayosu

  1. SD Kart donanımsal varsayım ile (SD_ENABLE sinyali default LOW dur) FOTA işlemcisine bağlıdır.
  2. Ana işlmeci GSM üzerinden firmware dosyasını indirmeye başlamadan önce SD_ENABLE pinini HIGH yaparak SD kartı kendisine bağlar.
  3. Firmware indirilirken SD kart üzerine ana işlemci tarafından yazılır ve doğrulanır.
  4. Dosya yazma ve kontrol işlemleri bittikten sonra ana işlemci tekrar enable hattını LOW a çekerek kendi bağlantısını keser.
  5. FOTA sistemine hazır olduğunu ve burn işlemini başlatması komutunu gönderir.
  6. FOTA işlemcisi kendisine bağlı halde olan SD üzerinden firmware okuyarak ana işlemciye yazar.
  7. FOTA işlemcisi kendini kapatır (latch power yapısı ile).

LOG Yazım senaryosu

  1. Ana işlemci SD kart üzerine veri kaydetmek istediği zaman SD_ENABLE pinini HIGH yaparak SD yi kendisine bağlar.
  2. Yazma işlemini yapar.
  3. Tekrar SD_ENABLE pinini LOW yaparak SD kartı kendi üzerinden ayırır.

Bu yaklaşımın iki kritik faydası vardır:

  • GSM tarafı (download) ile update yürütme tarafı (FOTA) iş bölümü yapar.
  • Ana işlemci SD operasyonları öncesi seçim yaparak kendi üzerine alır.
  • SD kartın “varsayılan olarak FOTA tarafında” olması, update sırasında güç resetlerine karşı daha deterministik davranış sağlar.

Paylaşımlı SPI

SPI_MUX Bağlantı Mantığı

SPI_MUX’un COM Hattı tarafı SD kart hatlarına gider. İki giriş bankı ise iki farklı SPI master grubunu temsil eder:

  • CH1 (Default bank): SD kart hattı FOTA MCU SPI grubuna bağlıdır (varsayılan).
  • CH2: SD kart hattı Ana MCU SPI grubuna bağlanır (Ana MCU SD’ye erişmek istediğinde).

Bu sayede SD kartın aynı anda iki işlemci tarafından sürülmesi donanımsal olarak engellenir.

Seçim sinyali ve varsayılan durum

SPI_MUX üzerinde bulunan EN pini GND ye bağlıdır. Bu sayede switch devamlı aktif olarak çalışmaktadır. SD_ENABLE pini ise ana işlemci tarafından kontrol edilmektedir. Ana işlemci SD kart erişimi sağlayıp işlem yapmak istediği zaman bu hattı HIGH yaparak SD kartı kendisine aktarır. SD_ENABLE hattı donanımsal olarak Pull-Down durumdadır bu sayede ana işlemcinin kapanması veya resetlenmesi durumunda (burn işlemi sırasında olmaktadır) SPI_MUX donanımsal olarak FOTA ile iletişimde olacak şekilde planlanmıştır. SD_ENABLE hattı GND ye 47kΩ pull-down direnci ve 33pF hızlı parazit filtresi ile duraylı bir hat haline getirilmiştir.

SPI_MUX datasheet seçim tablosuna göre:

  • SEL = LOW → CH1 seçilir (default) → SD, FOTA MCU tarafındadır.
  • SEL = HIGH → CH2 seçilir → SD, Ana MCU tarafındadır.

Bu kurgu kritik: reset/boot anında SD_ENABLE tri‑state kalsa bile pull-down direnci sayesinde seçim deterministiktir ve SD kart varsayılan olarak FOTA tarafında kalır.

danger

Erişim bittikten sonra SD_ENABLE default’a dönmezse, sahada “FOTA SD’yi görmüyor” gibi güncelleme arızaları oluşur.


SPI hat stabilitesi

SD kart hatları üzerinde 3V3’e bağlı 10k pull‑up dirençleri bulunur (MOSI/MISO/SCK/SS). Bu pull‑upların amacı:

  • MUX bank değiştirirken veya hatlar bir anlığına yüksek empedansta kaldığında hatların floating kalmasını önlemek,
  • SD kart girişlerinde “rastgele clock/CS” oluşmasını azaltmak,
  • EMI hassasiyetini düşürmek.

Pull‑up akımı

LOW seviyesinde pull‑up akımı yaklaşık:

IPU3.3V10kΩ0.33mAI_{PU} \approx \dfrac{3.3V}{10k\Omega} \approx 0.33mA

Bu değer, tipik SPI hat sürücüleri için çok düşük bir yüktür ve bank switching sırasında hatları deterministik tutmak için yeterli mertebededir.

RC etkisi

Pull‑up dirençleri SPI hattını belirleyen ana unsur değildir (çünkü SPI push‑pull sürülür). Ancak hatlar tri‑state kaldığında, yükselme süresi kabaca RCR\cdot C ile belirlenir.

Örnek mertebe:

τRC\tau \approx R\cdot C

Varsayım: toplam hat kapasitesi C30pFC\approx 30pF ise:

τ10kΩ30pF300ns\tau \approx 10k\Omega\cdot 30pF \approx 300ns

Bu, “bank değişim anı” gibi kısa süreli tri‑state durumlarında hatların hızlıca HIGH’a oturmasına yardımcı olur.


SD Seçim hattı filtreleme

SD_ENABLE seçim hattında pull-down direnci ve hızlı parazit filresi ile parazit bağışıklığı artırılmıştır:

  • pull‑down (47kΩ): reset/boot sırasında deterministik default.
  • parazit filtresi (33pF): hızlı spike bileşenlerini bastırır.

Zaman sabiti mertebesi:

τ47kΩ33pF1.55μs\tau \approx 47k\Omega\cdot 33pF \approx 1.55\,\mu s

Bu değer, seçim hattını “yavaşlatmak” için değil; EMI kaynaklı hızlı glitch’lerin seçimi bozmasını engellemek için yeterli bir filtredir.


SD soket ve kart algılama

SD kart soketi kullanıcı/servis erişimine açık bir arayüzdür. Bu nedenle “SD kart takılı mı?” bilgisinin firmware’e güvenli şekilde taşınması gerekir.

Soketin kart algılama kontağı SD_DETECT hattına çıkarılmıştır ve bu hat:

  • pull-down (47kΩ) ile varsayılan seviyeye çekilerek floating kalması engellenir.
  • parazit filtresi (33pF) ile hızlı parazit/spike bileşenleri bastırılır.

Kart algılama hattı için de benzer mertebe filtresi vardır:

τ47kΩ33pF1.55μs\tau \approx 47k\Omega\cdot 33pF \approx 1.55\,\mu s

Not: Kart algılama mekanik bir kontak olduğundan “debounce” firmware tarafında ayrıca yapılmalıdır (örn. 10–50ms yazılımsal debounce).


EMI / yerleşim doğrulama notları

  • SDSCKSD_{SCK} hattı yüksek kenarlı bir hat olduğundan, SD soket çevresinde kısa iz ve temiz referans GND ile taşınmalıdır.
  • SPI_MUX mümkün olduğunca SD sokete ve bankların birleşim noktasına yakın olmalıdır; böylece tri‑state anındaki halka alanı küçülür.
  • SD soket ESD’ye açıktır. Soket yakınında ESD koruması gerekiyorsa (saha/servis koşullarına göre) ayrı değerlendirilmelidir.

Komponent seçimi ve alternatifler

FonksiyonSeçilenAlternatifler
SD soketMolex 5025700893Molex/Amphenol muadilleri
SPI MUXSN3257QPWQ1TMUX1308/1309, 74LVC1G3157 (uygun topoloji varsa)
SD_SPI hat pull‑up’ları10kΩ, 1% (0402)22k (daha zayıf), 4.7k (daha güçlü)
SD_ENABLE pull‑down47kΩ (0402)100kΩ
SD_ENABLE filtre33pF22–100pF

Tahmini maliyet analizi

Aşağıdaki maliyetler tahmini olup tedarikçi/adet/stok durumuna göre değişir.

KalemAdetPrototip (1–10)Pilot (100)Seri (1k+)
SN3257QPWQ11$0.55$0.38$0.28
microSD soket1$0.60$0.40$0.30
Pull‑up dirençler (SPI)4$0.008$0.004$0.0024
47k2$0.004$0.002$0.0012
33pF2$0.006$0.004$0.002
TOPLAM$1.17.$0.79$0.58

Bu toplam, B107AA-R6 üzerinde “SD kart katmanı”nın BOM maliyetini verir. Maliyetin büyük kısmını SD soket + analog switch belirler; pasifler toplam içinde çok küçük paya sahiptir.