Skip to content

Latest commit

 

History

History
110 lines (76 loc) · 4.65 KB

File metadata and controls

110 lines (76 loc) · 4.65 KB

🕵️‍♂️ Bölüm 4: Sorun Giderme ve Tersine Mühendislik

Sistemi kurdunuz, kodları yüklediniz ama terminalde sadece anlamsız karakterler akıyor... Ya da daha kötüsü, hiçbir şey yok. Endişelenmeyin, UART sorunlarının %90'ı aşağıdaki 3 sebepten kaynaklanır.

Bu bölümde, görünmez sinyalleri nasıl görünür kılacağımızı öğreneceğiz.


4.1 "Çince Karakter" Sorunu (Garbage Data) 🧧

Terminalde `` veya RW¥å gibi anlamsız semboller görüyorsanız, iletişim var ama anlaşma yok demektir.

Olası Sebepler:

  1. Baud Rate Uyuşmazlığı (En Sık):
    • Verici 9600, Alıcı 115200 ile dinliyorsa veri çöp olur.
    • Çözüm: Cihazın datasheet'ini kontrol edin veya Logic Analyzer ile hızı ölçün (Bkz: 4.3).
  2. GND (Toprak) Eksikliği:
    • İki cihazın toprağı birleşmezse, voltaj seviyeleri "yüzer" (floating). 0 mı 1 mi olduğu belli olmaz.
    • Çözüm: Hemen bir jumper kablo ile iki cihazın GND pinlerini birleştirin.
  3. Hatalı Kristal:
    • Ucuz Arduino klonlarında kristal kalitesiz olabilir ve %2'den fazla frekans kayması yaşatabilir.

4.2 Hiç Veri Yok (Sessizlik) 🔇

Ekranda hiçbir şey akmıyorsa durum daha ciddidir. Donanımsal bir kopukluk olabilir.

Olası Sebepler:

  1. TX-RX Çapraz Bağlanmadı:
    • TX -> TX ve RX -> RX bağlamak en klasik hatadır. İki kişi aynı anda konuşursa kimse duymaz.
    • Çözüm: Kabloları ters çevirip deneyin.
  2. Voltaj Seviyesi Hatası (RS232 vs TTL):
    • Sensör RS232 (±12V) ise ve siz bunu ESP32'ye (3.3V) direk bağladıysanız, ESP32'nin pini yanmış olabilir.
  3. Kötü Lehim / Temassızlık:
    • Breadboard üzerindeki jumper kabloların içi bazen kopuk olabilir. Multimetre ile "Kısa Devre Testi" (Buzzer) yapın.

4.3 Tersine Mühendislik: Bilinmeyen Cihazı Çözmek 🔓

Elinizde dokümanı olmayan, siyah kutu bir cihaz var. Sadece 3 kablosu (TX, RX, GND) çıkıyor. Hızı nedir? Protokolü nedir? Bunu bulmak için 5$'lık bir Logic Analyzer (Saleae Klonu) hayat kurtarır.

Adım Adım Hız Bulma (Logic Analyzer ile)

  1. Bağlantı: Cihazın TX pinini Logic Analyzer'ın CH1 pinine, GND'yi GND'ye bağlayın.
  2. Örnekleme: Logic yazılımını (PulseView) açın ve yüksek bir hızda (örneğin 24 MHz) kayıt başlatın.
  3. Ölçüm: Cihazı açıp kapatarak veri göndermesini sağlayın. Ekranda dijital dalgalar göreceksiniz.
  4. Analiz:
    • En DAR (kısa) darbe genişliğini bulun. Bu, tek bir bitin süresidir ($T_{bit}$).
    • Formül: $\text{Baud Rate} = \frac{1}{T_{bit}}$

Örnek: En kısa darbeyi 8.68 µs ölçtünüz. $1 / 0.00000868 = 115,207$ Tebrikler! Cihazın hızı 115200 Baud.

graph TD
    subgraph SIGNAL [Sinyal Analizi]
    P1[Darbe Genişliği: 104 µs] --> R1[1 / 0.000104 = 9615] --> C1{Sonuç: 9600 Baud}
    P2[Darbe Genişliği: 8.68 µs] --> R2[1 / 0.00000868 = 115207] --> C2{Sonuç: 115200 Baud}
    end
    
    style C1 fill:#c8e6c9,stroke:#2e7d32
    style C2 fill:#c8e6c9,stroke:#2e7d32
Loading

4.4 USB-TTL Dönüştürücü Tuzakları ⚠️

Bilgisayardan ESP32'ye bağlanmak için kullandığımız o renkli USB çeviriciler (CP2102, CH340, FTDI) bazen sahte çıkabilir.

  • Sahte FTDI Çipleri: Windows güncellemesiyle "brick" olabilir (çalışmaz hale gelebilir).
  • 3.3V / 5V Jumper: Bazı dönüştürücülerde voltaj seçimi için minik bir jumper vardır. ESP32 için bunun 3.3V konumunda olduğundan emin olun. 5V verirseniz modülü yakabilirsiniz.

✅ Seri Özeti (Final Checklist)

Artık bir UART ustasısınız. Sahaya çıkmadan önce son kontrol listeniz:

  1. GND Bağlı mı? (En kritik madde)
  2. TX -> RX'e gidiyor mu? (Çapraz bağlantı)
  3. Voltaj Seviyeleri Eşit mi? (3.3V <-> 3.3V)
  4. Baud Rate Aynı mı? (9600, 115200...)
  5. Kablo Mesafesi Uygun mu? (TTL için max 50cm, RS485 için 1km)


Bölüm 3: Entegrasyon Menüye Dön Destek Ol