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
- SD Kart donanımsal varsayım ile (SD_ENABLE sinyali default LOW dur) FOTA işlemcisine bağlıdır.
- Ana işlmeci GSM üzerinden firmware dosyasını indirmeye başlamadan önce SD_ENABLE pinini HIGH yaparak SD kartı kendisine bağlar.
- Firmware indirilirken SD kart üzerine ana işlemci tarafından yazılır ve doğrulanır.
- Dosya yazma ve kontrol işlemleri bittikten sonra ana işlemci tekrar enable hattını LOW a çekerek kendi bağlantısını keser.
- FOTA sistemine hazır olduğunu ve burn işlemini başlatması komutunu gönderir.
- FOTA işlemcisi kendisine bağlı halde olan SD üzerinden firmware okuyarak ana işlemciye yazar.
- FOTA işlemcisi kendini kapatır (latch power yapısı ile).
LOG Yazım senaryosu
- Ana işlemci SD kart üzerine veri kaydetmek istediği zaman SD_ENABLE pinini HIGH yaparak SD yi kendisine bağlar.
- Yazma işlemini yapar.
- 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.
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:
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 ile belirlenir.
Örnek mertebe:
Varsayım: toplam hat kapasitesi ise:
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:
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:
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ı
- 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
| Fonksiyon | Seçilen | Alternatifler |
|---|---|---|
| SD soket | Molex 5025700893 | Molex/Amphenol muadilleri |
| SPI MUX | SN3257QPWQ1 | TMUX1308/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‑down | 47kΩ (0402) | 100kΩ |
| SD_ENABLE filtre | 33pF | 22–100pF |
Tahmini maliyet analizi
Aşağıdaki maliyetler tahmini olup tedarikçi/adet/stok durumuna göre değişir.
| Kalem | Adet | Prototip (1–10) | Pilot (100) | Seri (1k+) |
|---|---|---|---|---|
| SN3257QPWQ1 | 1 | $0.55 | $0.38 | $0.28 |
| microSD soket | 1 | $0.60 | $0.40 | $0.30 |
| Pull‑up dirençler (SPI) | 4 | $0.008 | $0.004 | $0.0024 |
| 47k | 2 | $0.004 | $0.002 | $0.0012 |
| 33pF | 2 | $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.