Bu teknik doküman B107AA R6 için hazırlanmış olup yeni yapılacak olan tasarımlara kaynak niteliğindedir.
I2C Katmanı Mimarisi
Bu bölüm, B107AA-R6 üzerindeki I2C (TWI) haberleşme omurgasını ve bu omurgaya bağlı çevre birimlerini (Serial ID, RTC, çevresel sensör, fuel‑gauge, şarj/power‑path) yapısal bazlı olarak dokümante eder.
I2C katmanı; üretimde kart kimliklendirme, zaman damgası, çevresel ölçüm ve batarya yönetimi gibi fonksiyonları tek bir iki telli bus üzerinde birleştirir. Bu mimaride kritik konu; bus pull‑up seçimi, EMI kaynaklarının doğru yönetimi ve test noktaları üzerinden hızlı teşhis yapılabilmesidir.
Adres Haritası
B107AA-R6’da I2C bus üzerinde yer alan temel çevre birimleri aşağıdaki gibidir.
| Cihaz | Fonksiyon | I2C Adresi | Interrupt |
|---|---|---|---|
| DS28CM00 | Serial ID (ana cihaz kimliği) | 0x50 | |
| RV-3028-C7 | RTC (tarih/saat + alarm) | 0x52 | Alarm/wake-up |
| HDC2010 | Sıcaklık/Nem | 0x40 | |
| MAX17055 | Fuel‑gauge (SoC/V/I) | 0x36 | |
| BQ24298 | Şarj + power‑path | 0x6A |
İlgili birimler alt sayfalarda detaylandırılmıştır. Revizyona özel uygulamalar için ilgili sayfalara göz atınız.
Bus Hızı
Bu tasarım single‑master (MCU master) yaklaşımındadır. Teorik olarak I2C multi‑master desteklese de B107AA’da multi‑master kullanılmamıştır.
R6 standardı, saha kararlılığı ve varyasyonlar (kablo/konnektör, ölçüm probu, montaj toleransı) düşünülerek 100kHz üzerinden tanımlanmıştır. Fast Mode (400kHz) desteği mevcuttur fakat hızlı mod I2C kullanılacağında pull-up dirençleri yeniden seçilmesi gerekmektedir.
Neden Standard‑mode?
Bu kartta I2C bus; RTC, çevresel sensör, fuel‑gauge ve şarj entegresi gibi cihazlardan düşük hacimli telemetri okur. Tipik bir “polling turu” onlarca byte mertebesindedir ve 100kHz’de bu işlemin süresi çoğu senaryoda ~5–10ms bandındadır.
Fast‑mode (400kHz) ile bu süre teorik olarak 3–4× kısalsa bile, B107AA sahasında toplam enerji/zaman bütçesini belirleyen ana etken I2C değil; GSM modem TX burst’leri ve güç katının davranışıdır. Bu nedenle 400kHz’in pratik kazancı sınırlıdır.
Buna karşılık 400kHz, şu riskleri artırabilir:
- Toplam bus kapasitansı ve kenar hızları nedeniyle rise‑time margin daralır (pull‑up daha agresif seçilmelidir).
- Kart üzerindeki güçlü EMI kaynakları (GSM, şarj SW düğümü, SMPS) nedeniyle NACK / bus kilitlenmesi ihtimali artabilir.
- Bazı alt bloklarda kullanılan küçük EMI kapasitörleri (örn. 22–47pF) fast‑mode’da dalga şeklini daha fazla yavaşlatabilir.
Fast‑mode’a geçilecekse; pull‑up değerleri (örn. 4.7k → 3.3k/2.2k) ve dalga şekli, özellikle GSM TX sırasında, ölçümle doğrulanmalıdır.
Interrupt Stratejisi
R6 revizyonunda I2C çevre birimlerinden MCU’ya gelen interrupt hatları bilinçli olarak sadeleştirilmiştir.
Bu tasarımda interrupt yalnızca RTC için anlamlı bir kazanım sağlar; çünkü RTC, “bir sonraki veri gönderim zamanı” gibi periyodik görevleri alarm ile tetikleyebilir. Bu nedenle RTC interrupt hattı kullanılacaktır. Diğer I2C slave’lerde (şarj, fuel‑gauge, T/H) interrupt kullanılmaz. Bunun iki nedeni var:
- Bu veriler zaten telemetri paketinin parçası olarak her paket gönderiminde okunuyor (polling).
- R5 sahasında da bu hatlar pratikte neredeyse hiç kullanılmadı; sahada ek kablo/hat/EMI karmaşıklığına değecek bir kazanım üretmedi.
Özet karar:
- RTC INT: Alarm interruptı → veri gönderim tetikleme / wake‑up amaçları ile kullanılacaktır.
- HDC2010 INT: Interrupt Kullanılmayacaktır → periyodik ölçüm/polling
- BQ24298 INT: Interrupt Kullanılmayacaktır → periyodik ölçüm/polling
- MAX17055 ALERT: Interrupt Kullanılmayacaktır → periyodik ölçüm/polling
Bu yaklaşım; sahada ek hat/EMI kaynaklarını azaltır ve firmware entegrasyonunu sadeleştirir.
I2C Bus omurgası
I2C bus, MCU’nun TWI pinlerinden çıkan iki hat ile taşınır:
- I2C_SCL: Saat hattı (open-drain sürüş mantığı)
- I2C_SDA: Veri hattı (open-drain sürüş mantığı)
Bu bus, 3V3 domaininde çalışacak şekilde tasarlanmıştır. I2C doğası gereği hatlar “push-pull” sürülmez; hat seviyesi yalnız pull-up dirençleri ile HIGH’a çıkar, cihazlar yalnız LOW’a çekerek haberleşir.
Pull-up dirençleri
Şematikte I2C hatlarının pull-up’ları 3V3’e bağlı iki direnç ile sağlanır:
| Eleman | Net | Değer | Not |
|---|---|---|---|
| SDA Pull-Up | I2C_SDA | 4.7kΩ, 1% (0402) | 3V3’e pull-up |
| SCL Pull-Up | I2C_SCL | 4.7kΩ, 1% (0402) | 3V3’e pull-up |
R5 de kullanılan 10kΩ pull-up dirençleri daha stabil bir hat için 4.7kΩ olarak değiştirilmiştir.
Pull-up mühendislik kontrolü
R6’da I2C hızı 100kHz (Standard‑mode) olarak standardize edildiği için pull‑up seçimini de bu moda göre değerlendirilmiştir. I2C’de HIGH seviyesi, pull‑up dirençleri ile oluştuğu için yükselme zamanı () bus kapasitesiyle doğrudan ilişkilidir.
Kaba mertebe kontrolü:
Standard‑mode için tipik sınırı ~1000ns kabul edilirse, farklı pull‑up değerleri için izin verilen toplam bus kapasitesi yaklaşık:
| 4.7kΩ | ||
| 2.2kΩ | ||
| 10kΩ |
Sink akım mertebesi kontrolü:
3v3 ve 4.7kΩ için olur. Bu değer, tipik I2C pinlerinin sink kapasitesi içinde kalır.
R6 için 4.7kΩ standardize edilmiştir. GSM/SMPS gibi EMI kaynakları olan kartlarda, 10kΩ’a göre daha düşük pull‑up; rise‑time margin’i artırır ve sahada “nadiren olan” NACK/bus hang riskini azaltır. Bu seçim, 100kHz standard‑mode hedefiyle uyumludur ve tipik I2C sink akımlarını zorlamaz.
Test noktaları
I2C hattında üretim/debug için doğrudan ölçüm noktaları bulunur:
| TP | Net | Amaç |
|---|---|---|
| TP4 | SDA | I2C_SDA gözlem / logic analyzer |
| TP9 | SCL | I2C_SCL gözlem / logic analyzer |
I2C hatları yüksek hızlı diferansiyel (USB gibi) değildir; ancak prob kapasitansı (özellikle uzun krokodil kablo) rise-time’ı bozabilir. Teşhiste mümkünse logic analyzer + kısa GND yayı kullanılmalıdır.
EMI / Yerleşim Notları
I2C hatları düşük hızlı olsa da, B107AA üzerinde GSM modem, anahtarlamalı regülatörler ve şarj anahtarlama düğümü (SW) gibi güçlü EMI kaynakları vardır.
Saha kararlılığı için pratik kurallar:
- SDA/SCL hatlarını SW düğümünden ve modem TX/RF bölgesinden mümkün olduğunca uzak tut.
- Pull‑up dirençlerini ve (varsa) küçük EMI kapasitörlerini bus’un “merkez” noktasına yakın konumlandır.
- Şüpheli kilitlenme senaryolarında, SDA/SCL’ye küçük kapasitör (örn. 22–47pF) eklemek paraziti azaltabilir; ancak rise‑time’ı da yavaşlatır → ölçerek karar ver (gerekirse footprint koy DNP etiketi ekle).
Maliyet Özeti
Aşağıdaki tablo; I2C katmanına bağlı tüm alt bloklardaki (Serial ID, RTC, T/H sensör, fuel‑gauge, şarj/power‑path) maliyet analizlerinin özetidir. Fiyatlar; tedarikçi, stok, paket tipi ve adetlere göre değişir.
Bazı alt bloklarda “opsiyonel” pasifler (TS bölücü vb.) ve LED’ler bulunmaktadır. Bu tabloda, alt sayfalardaki toplamlar aynen alınmıştır (örn. BQ24298 için LED dahil toplam). Ek olarak R6’da standardize edilen I2C bus pull‑up (2×4.7k) maliyeti ayrı satırda gösterilmiştir.
| Alt blok | Prototip (1–10) | Pilot (100) | Seri (1k+) |
|---|---|---|---|
| Serial ID | $0.61 | $0.455 | $0.353 |
| RTC | $1.33 | $0.964 | $0.759 |
| T/H | $1.11 | $0.805 | $0.603 |
| Fuel‑Gauge | $2.58 | $1.93 | $1.61 |
| Şarj + Power‑Path | $3.245 | $2.416 | $1.818 |
| I2C Bus | $0.01 | $0.006 | $0.004 |
| TOPLAM | $8.885 | $6.576 | $5.147 |
Bu toplam, B107AA-R6 üzerinde “I2C katmanı ve ona bağlı çevre birimleri”nin BOM maliyetini verir. I2C omurgasının kendisi (2× pull‑up dirençleri, test point’ler) çok küçük bir paya sahiptir; maliyetin büyük kısmını fuel‑gauge + şarj/power‑path + RTC belirler.