Farklı sonuçlar, sürücü devresinin her teknoloji için farklı olmasıdır.
100kHz I2C tipik olarak sinyali yüksek bir düzeye getirmek için bir çekme direnci ve sinyali düşük bir düzeye getirmek için açık tahliye sürücüleri kullanır.
Çekme dirençleri tipik olarak birkaç kilo-ohm'dur. Bir kablo ne kadar uzun olursa, o kadar fazla kapasiteye sahip olur. Çizginin 0'dan 1'e geçmesi için geçen süre, hattaki toplam kapasitans ve çekme direnci değeri ile orantılı olacaktır. Yaklaşık T = 2 * R * C aralığında bir yerde yaklaşık doğru olur.
Örneğin, ayak başına 20pF kapasitansa sahip 10 ayaklı bir kablonuz varsa ve 10K çekme direnci kullandıysanız, düşükten yükseğe doğru geçiş yapmak için T = 2 * 20pF / ft * 10 ft * 10K = 3.6us gerekir.
Bu durumda, 3.6us'tan daha geniş bir sıfır biti takip eden tek bir bitiniz olamazdı, bu nedenle iletim hızınız 277kHz ile sınırlı olacaktır.
Gerçek bir I2C sisteminde I2C spesifikasyonu ayrıca veri ve saat geçişleri etrafında kurulum ve bekleme sürelerini zorunlu kılar. O zamanlar yüzlerce nanosaniye veya mikrosaniye. Zamanlama, cihazların ucuz bir şekilde (peni) uygulanabilmesi ve çok az güç (miliwatt) tüketebilmesi için çok yavaş yapıldı.
Diğer yandan Ethernet, kablo kapasitansına rağmen daha hızlı çalışabilir çünkü bir çekme direnci kullanmaz. Kabloya yüksek veya düşük aktif olarak gider. Sürücü düşük empedanslıdır ve herhangi bir hat kapasitansını çok hızlı bir şekilde şarj edebilir. Tabii ki her şeyin bir bedeli var. Ethernet genellikle yüzlerce mW güç tüketir ve uygulanması için port başına en az birkaç dolar maliyeti vardır.
I2C'ye benzer bir kurulum daha hızlı çalışabilir mi, elbette, 10K çekmeyi 100 ohm olarak değiştirin ve şimdi 10 ft kabloya yükselme süreniz 3,6us'tan 36ns'a düşer. Daha sonra muhtemelen 10MHz'de çok fazla sorun olmadan çalışabilirsiniz (normal I2C çiplerinin bu kadar hızlı konuşamaması dışında).