Skip to main content
Revizyon Bilgisi

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.

CihazFonksiyonI2C AdresiInterrupt
DS28CM00Serial ID (ana cihaz kimliği)0x50
RV-3028-C7RTC (tarih/saat + alarm)0x52Alarm/wake-up
HDC2010Sıcaklık/Nem0x40
MAX17055Fuel‑gauge (SoC/V/I)0x36
BQ24298Şarj + power‑path0x6A
info

İ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.
tip

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:

  1. Bu veriler zaten telemetri paketinin parçası olarak her paket gönderiminde okunuyor (polling).
  2. 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:

ElemanNetDeğerNot
SDA Pull-UpI2C_SDA4.7kΩ, 1% (0402)3V3’e pull-up
SCL Pull-UpI2C_SCL4.7kΩ, 1% (0402)3V3’e pull-up
info

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ı (t_rt\_r) bus kapasitesiyle doğrudan ilişkilidir.

Kaba mertebe kontrolü:

tr0.8473RPUCBUSt_r \approx 0.8473 \cdot R_{PU} \cdot C_{BUS}

Standard‑mode için tipik t_rt\_r sınırı ~1000ns kabul edilirse, farklı pull‑up değerleri için izin verilen toplam bus kapasitesi yaklaşık:

CBUS,max1000ns0.8473RPUC_{BUS,max} \approx \dfrac{1000ns}{0.8473\cdot R_{PU}}

RpuR_{pu}CBUS,maxC_{BUS,max}ILOW,3v3I_{LOW,3v3}
4.7kΩ251pF\approx251 pF0.70mA\approx0.70 mA
2.2kΩ536pF\approx536 pF1.50mA\approx1.50 mA
10kΩ118pF\approx118 pF0.33mA\approx0.33 mA

Sink akım mertebesi kontrolü:

ILOWVRPUI_{LOW} \approx \dfrac{V}{R_{PU}}

info

3v3 ve 4.7kΩ için ILOW0.7mAI_{LOW}\approx 0.7mA olur. Bu değer, tipik I2C pinlerinin sink kapasitesi içinde kalır.

tip

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:

TPNetAmaç
TP4SDAI2C_SDA gözlem / logic analyzer
TP9SCLI2C_SCL gözlem / logic analyzer
tip

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.

tip

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 blokPrototip (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.