STM32 / Ders 6 / I2C

Slave’i bul, ACK’i oku, NACK’in nedenini ayırt et.

I2C laboratuvarında amaç yalnızca veri okumak değil, işlemin neden bazen hiç başlamadığını ya da adres aşamasında koptuğunu ayırabilmektir. Burada fiziksel bus koşulu ile protokol düzeyi hata aynı ekranda görünür.

İlk tur için kısa rota
1. Başarıyı kur Sıcaklık sensörünü seç, ADDR pinini `LOW` bırak ve `0x48` adresinden `TEMP` register'ını oku.
2. Sonra yanlış adrese geç Master hedef adresini değiştir; bu kez adres aşamasında `NACK` geldiğini transcript içinde gör.
3. Pull-up'ı kapat Bus artık high seviyeye dönemediği için daha protokol başlamadan fiziksel hata oluştuğunu fark et.
Öğrenme Çıktısı Adresleme, ACK/NACK, register okuma ve pull-up mantığını tek işlem akışında yorumlayabilmek.
Kart Karşılığı Bu akış, STM32 master ile tipik bir I2C sıcaklık sensörü ya da EEPROM arasında kurulan başlangıç laboratuvarlarını temsil eder.
Pedagojik Hedef Hatanın fiziksel mi, adresleme mi, yoksa mod/sürat kaynaklı mı olduğunu ayırt etmeyi öğretmek.

Bus Görünümü ve Transaction

Bu görsel, master ile slave arasındaki I2C işlemini; bus hatları, işlem fazları ve transcript üzerinden özetler.

STM32 Master Adres gönderir, register seçer ve okuma işlemini başlatır.
SCL / SDA
Sıcaklık sensörü ADDR pinine göre adres değişir. Register temelli okuma yapar.
7-bit: 0x48
SCL
SDA
Son Paket

Henüz transaction başlatılmadı.

Slave 7-bit 0x48
HAL Adresi 0x90
Register 0x00
Sonuç Bekliyor
Register Yorumu

Seçilen register'ın anlamı burada görünür.

Pull-up Var
Adres eşleşmesi Uyumlu
Bus hızı Güvenli
İşlem durumu Hazır
I2C Transcript

Mini Quiz

I2C sezgisini üç kısa kontrol ile yerleştir.

1. Pull-up neden gerekir?

Open-drain hattı düşün.

2. Slave adresi yanlışsa tipik sonuç nedir?

Adres fazına odaklan.

3. STM32 HAL’de neden adres çoğu zaman sola kaydırılır?

7-bit ve 8-bit temsil farkını düşün.