Osiloskop ile I2C Sinyali Nasıl Ölçülür? SDA, SCL ve Protokol Analizi Rehberi
Osiloskop ile I2C haberleşmesindeki SDA ve SCL sinyalleri aynı anda görüntülenerek clock frekansı, rise time, Start/Stop koşulları, ACK/NACK cevapları ve kısa süreli haberleşme hataları analiz edilebilir. Bu rehberde I2C fiziksel katmanının nasıl ölçüleceğini, pull-up dirençlerinin sinyal kalitesine etkisini ve protocol decode özelliklerinin arıza tespitinde nasıl kullanılabileceğini inceliyoruz.
I2C haberleşmesi; mikrodenetleyiciler, sensörler, EEPROM’lar, ADC/DAC devreleri ve birçok gömülü sistemde yaygın olarak kullanılır. Haberleşme çalışmadığında sorun her zaman yazılımdan kaynaklanmaz. Yanlış pull-up direnci, yüksek hat kapasitansı, gürültü, zamanlama problemi veya sinyal seviyelerindeki bozulmalar da iletişimin kararsız hale gelmesine neden olabilir.
Bu tür problemlerin gerçek nedenini görebilmek için osiloskop kullanılarak SDA ve SCL hatlarının elektriksel davranışı doğrudan incelenebilir.
I2C Nedir?
I2C, elektronik cihazların kısa mesafelerde birbirleriyle haberleşmesini sağlayan senkron seri haberleşme protokolüdür.
Temel olarak iki hat kullanılır:
SDA – Serial Data
Verilerin taşındığı hattır.
SCL – Serial Clock
Haberleşmenin zamanlamasını belirleyen clock hattıdır.
Tek bir I2C veri yolu üzerinde birden fazla cihaz bulunabilir. Bu nedenle sensör, mikrodenetleyici ve çevre birimlerinin aynı iki hat üzerinden haberleşmesi mümkündür.
Osiloskop ile I2C Ölçümü Nasıl Yapılır?
I2C analizi için en pratik yöntem iki kanallı bir osiloskop kullanmaktır.
Örneğin:
CH1 → SCL
CH2 → SDA
şeklinde bağlantı yapılabilir.
Böylece clock ve data sinyalleri aynı zaman ekseninde görüntülenir.
İlk aşamada Volt/Div ayarı kullanılan logic seviyesine uygun şekilde ayarlanmalıdır. I2C devresi 3,3 V ile çalışıyorsa ekran ölçeği buna göre seçilebilir.
Ardından Time/Div değeri birkaç veri paketinin aynı anda görülebileceği seviyeye getirilir.
I2C Sinyalinde Neler Kontrol Edilir?
Osiloskop ile I2C hattında yalnızca verinin var olup olmadığına bakılmaz.
Aynı zamanda;
- SDA gerilim seviyeleri,
- SCL gerilim seviyeleri,
- Clock frekansı,
- Rise time,
- Fall time,
- Start condition,
- Stop condition,
- ACK ve NACK durumları,
- Gürültü,
- Glitch,
- Zamanlama problemleri
incelenebilir.
Bu ölçümler özellikle zaman zaman çalışan ancak aralıklı olarak haberleşme hatası veren devrelerde oldukça değerlidir.
I2C’de Start ve Stop Condition Nedir?
I2C haberleşmesinde veri aktarımının başlangıcı ve bitişi belirli sinyal koşullarıyla ifade edilir.
Genel olarak SCL yüksek seviyedeyken SDA hattının:
HIGH → LOW
geçişi Start Condition olarak değerlendirilir.
SCL yüksek durumdayken SDA hattının:
LOW → HIGH
geçişi ise Stop Condition oluşturur.
Osiloskop kullanılarak bu geçişler doğrudan görüntülenebilir.
Eğer Start veya Stop koşulları beklenen zamanlamada oluşmuyorsa mikrodenetleyici yazılımı, çevre birimi veya fiziksel haberleşme hattı birlikte incelenmelidir.
I2C Clock Frekansı Nasıl Ölçülür?
SCL hattı ölçülerek haberleşmenin clock frekansı belirlenebilir.
Modern dijital osiloskoplarda Frequency ölçüm fonksiyonu kullanılarak clock frekansı otomatik olarak görüntülenebilir.
Örneğin hedeflenen haberleşme hızı 400 kHz ise fakat ölçülen clock önemli ölçüde farklıysa mikrodenetleyici konfigürasyonu veya clock kaynağı kontrol edilmelidir.
Ancak yalnızca frekansın doğru olması haberleşmenin sağlıklı olduğu anlamına gelmez.
Clock sinyalinin rise time, fall time ve logic seviyeleri de değerlendirilmelidir.
I2C Hatlarında Pull-up Direnci Neden Önemlidir?
I2C haberleşmesinin önemli özelliklerinden biri SDA ve SCL hatlarının genellikle pull-up dirençleriyle yüksek seviyeye çekilmesidir.
Pull-up değeri uygun değilse sinyal kenarları bozulabilir.
Direnç değeri çok yüksek olduğunda hat HIGH seviyesine yavaş çıkabilir.
Bunun sonucunda:
- Rise time uzayabilir,
- Yüksek haberleşme hızlarında veri bozulabilir,
- Logic seviyeleri zamanında oluşmayabilir,
- Haberleşme aralıklı şekilde hata verebilir.
Direncin gereğinden düşük olması ise daha fazla akım akmasına neden olabilir.
Bu nedenle I2C sorunlarında osiloskopla özellikle yükselen sinyal kenarlarının incelenmesi oldukça önemlidir.
Rise Time Problemi Nasıl Görünür?
İdeal bir dijital sinyalde LOW’dan HIGH seviyesine geçiş oldukça hızlı görünür.
Ancak I2C hattında kapasitans veya yanlış pull-up değeri nedeniyle yükselen kenar belirgin şekilde yuvarlak hale gelebilir.
Osiloskop ekranında bu durum kolaylıkla fark edilir.
Örneğin SCL sinyali LOW seviyesine hızlı düşüyor ancak HIGH seviyesine oldukça yavaş yükseliyorsa pull-up direnci ve bus kapasitansı kontrol edilmelidir.
Bu durum özellikle;
- Uzun bağlantı yollarında,
- Çok sayıda I2C cihazının bulunduğu sistemlerde,
- Uzun kablolarda,
- Yüksek kapasitanslı PCB tasarımlarında
daha belirgin hale gelebilir.
ACK ve NACK Nasıl Analiz Edilir?
I2C haberleşmesinde veri aktarımı sırasında alıcı cihazın gönderilen byte’ı aldığını bildiren ACK mekanizması bulunur.
Beklenen ACK sinyali oluşmuyorsa sistemde;
- Yanlış cihaz adresi,
- Bağlantı problemi,
- Besleme problemi,
- Çevre biriminin cevap vermemesi,
- Sinyal bütünlüğü problemi
gibi durumlar bulunabilir.
Protokol decode destekleyen bir osiloskop kullanıldığında ACK ve NACK olayları otomatik olarak işaretlenebilir.
Bu özellik özellikle uzun veri paketlerinin analizinde manuel incelemeye göre önemli kolaylık sağlar.
I2C Protocol Decode Ne İşe Yarar?
Gelişmiş dijital ve mixed signal osiloskoplarda I2C protocol decode özelliği bulunabilir.
Bu özellik ham SDA ve SCL sinyallerini yorumlayarak ekranda;
- Adres,
- Read/Write bilgisi,
- Data byte’ları,
- ACK,
- NACK,
- Start,
- Stop
gibi bilgileri gösterebilir.
Böylece her biti manuel olarak incelemek yerine haberleşme paketleri daha hızlı analiz edilebilir.
Analog ve dijital sinyallerin birlikte incelenmesi gereken projelerde Mixed Signal Osiloskop Nedir? MSO ile Analog ve Dijital Sinyal Analizi Rehberi içeriğimizi de inceleyebilirsiniz.
I2C Trigger Özelliği Neden Faydalıdır?
I2C haberleşmesindeki bir hata sürekli oluşmayabilir.
Örneğin cihaz binlerce veri paketini doğru gönderirken yalnızca belirli bir adres veya veri kombinasyonunda hata verebilir.
Normal edge trigger kullanıldığında bu olayın yakalanması zor olabilir.
I2C trigger destekleyen osiloskoplarda ölçüm;
- Belirli cihaz adresinde,
- Belirli data değerinde,
- Start condition oluştuğunda,
- Stop condition oluştuğunda,
- ACK veya NACK durumunda
tetiklenebilir.
Bu özellik aralıklı haberleşme problemlerinin bulunmasını büyük ölçüde kolaylaştırır.
Glitch Problemleri Nasıl Yakalanır?
SDA veya SCL hattında çok kısa süreli parazit darbeleri oluşabilir.
Bu küçük glitch sinyalleri mikrodenetleyici tarafından yanlış clock veya veri geçişi olarak algılanabilir.
Osiloskop ile sinyal yakından incelendiğinde bu olaylar görülebilir.
Özellikle;
- Motor sürücülerinin yakınında,
- Anahtarlamalı güç kaynaklarında,
- Röle ve kontaktör bulunan sistemlerde,
- Uzun bağlantı kablolarında
elektromanyetik gürültü I2C haberleşmesini etkileyebilir.
Gelişmiş trigger seçenekleri kısa süreli glitch olaylarının yakalanmasında önemli avantaj sağlar.
Prob Bağlantısı Ölçümü Etkiler mi?
Evet.
Hızlı dijital sinyallerde prob bağlantısının kendisi de ölçüm sonucunu değiştirebilir.
Özellikle uzun ground kablosu istenmeyen ringing veya gürültü oluşturabilir.
Bu nedenle:
- Prob bağlantısı kısa tutulmalı,
- Doğru kompanzasyon yapılmalı,
- Uygun bant genişliğine sahip prob kullanılmalı,
- Ground bağlantısı doğru noktadan alınmalıdır.
Hassas zamanlama ölçümlerinde ölçüm sisteminin tamamı birlikte değerlendirilmelidir.
I2C Analizi İçin Hangi Osiloskop Özellikleri Önemlidir?
I2C ve diğer seri haberleşme protokollerinde kullanılacak bir osiloskop seçerken aşağıdaki özellikler faydalıdır:
- En az iki analog kanal
- Yeterli örnekleme hızı
- Derin hafıza
- I2C protocol decode
- I2C trigger
- Gelişmiş glitch trigger
- History veya segmented memory
- Otomatik rise/fall time ölçümü
Özellikle uzun süre çalışan sistemlerde yalnızca birkaç mikro saniyelik hata aranıyorsa derin hafıza ve gelişmiş trigger fonksiyonları önemli avantaj sağlar.
I2C, SPI, UART ve diğer elektronik sinyallerin ölçümü için farklı bant genişliği ve analiz özelliklerine sahip osiloskop ürünlerini inceleyebilirsiniz.
I2C Ölçümü Hangi Uygulamalarda Kullanılır?
I2C analizi özellikle;
- Mikrodenetleyici projelerinde,
- Sensör kartlarında,
- IoT cihazlarında,
- Batarya yönetim sistemlerinde,
- Otomotiv elektroniğinde,
- Endüstriyel kontrol kartlarında,
- FPGA sistemlerinde,
- Ar-Ge çalışmalarında
yaygın olarak kullanılır.
Örneğin sıcaklık sensörünün zaman zaman veri göndermediği bir sistemde yalnızca yazılım kodunu incelemek yeterli olmayabilir.
Osiloskop ile SDA ve SCL hatlarına bakıldığında problemin aslında yavaş rise time, parazit veya NACK cevabı olduğu görülebilir.
Multimetre ile I2C Hatası Bulunabilir mi?
Multimetre SDA veya SCL hattındaki ortalama gerilim seviyesini gösterebilir ancak hızlı veri değişimlerini görüntüleyemez.
Bu nedenle multimetre ile hat üzerinde gerilim bulunduğu doğrulanabilir fakat;
- Start/Stop condition,
- Clock zamanlaması,
- ACK/NACK,
- Glitch,
- Rise time,
- Veri paketleri
ayrıntılı şekilde görülemez.
Bu tür dinamik ölçümler için osiloskop kullanılması gerekir.
Sonuç
I2C haberleşmesinde karşılaşılan problemlerin önemli bir bölümü yalnızca yazılım seviyesinde değildir. Pull-up direnci, bus kapasitansı, gürültü, zamanlama ve fiziksel bağlantı problemleri de haberleşmenin güvenilirliğini etkileyebilir.
Osiloskop kullanılarak SDA ve SCL sinyalleri aynı anda görüntülenebilir; clock frekansı, rise time, logic seviyeleri, Start/Stop koşulları, ACK/NACK durumları ve kısa süreli glitch olayları ayrıntılı şekilde analiz edilebilir.
Protocol decode ve gelişmiş trigger özelliklerine sahip bir osiloskop kullanılması ise özellikle gömülü sistem geliştirme ve arıza analizinde sorunların çok daha hızlı bulunmasını sağlar.
Uygulamanıza uygun cihazı belirlemek için TestOne’un osiloskop çözümlerini inceleyebilir ve farklı teknik özelliklere sahip modelleri karşılaştırabilirsiniz.
