<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="tr">
  
  <title>Eren SOYLU</title>
  <subtitle>Gömülü sistemler ve yazılım üzerine notlar</subtitle>
  <link href="https://www.erensoylu.com/tr/feed.xml" rel="self" />
  <link href="https://www.erensoylu.com/" />
  <updated>2026-06-09T00:00:00Z</updated>
  <id>https://www.erensoylu.com/</id>
  <author>
    <name>Eren SOYLU</name>
  </author>
  <entry>
    <title>Elektrik mühendisi olmadan devre şeması okumak</title>
    <link href="https://www.erensoylu.com/tr/blog/sema-okumak/" />
    <updated>2026-06-09T00:00:00Z</updated>
    <id>https://www.erensoylu.com/tr/blog/sema-okumak/</id>
    <content type="html">&lt;p&gt;Gömülü yazılım geliştiriyorum. Arada bir masama bir kart, devre şeması, yarım
kalmış bir ilk çalıştırma belgesi ve şu soru geliyor: Sensör neden cevap
vermiyor? Bunu yanıtlamak için elektrik mühendisliği diplomasına ihtiyacınız
yok. Bir yönteme ihtiyacınız var.&lt;/p&gt;
&lt;h2&gt;Köşeden değil, konektörden başlayın&lt;/h2&gt;
&lt;p&gt;Şemalar onları tasarlayan kişinin bakış açısıyla çizilir; çizimin sırası sizin
için her zaman anlamlı değildir. Sol üst köşeden başlamayın. Sorun yaşadığınız
bileşenden başlayıp dışarı doğru ilerleyin:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bileşeni şemada &lt;strong&gt;referans koduyla&lt;/strong&gt; (&lt;code&gt;U7&lt;/code&gt;, &lt;code&gt;J3&lt;/code&gt;) bulun.&lt;/li&gt;
&lt;li&gt;Besleme pinlerini bulun. Besleme hattının adını not edin: &lt;code&gt;+3V3&lt;/code&gt;, &lt;code&gt;VDDA&lt;/code&gt;, &lt;code&gt;VBUS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;O hattın regülatörünü bulun. Etkinleştirme pinini ve onu neyin sürdüğünü not edin.&lt;/li&gt;
&lt;li&gt;Ancak bundan sonra ilgilendiğiniz sinyali takip edin.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Üçüncü adım, şaşırtıcı sayıda “çevre birimi çalışmıyor” hatasını yakalar.
Etkinleştirme pini bir GPIO&#39;ya bağlı olan besleme hattı, yazılımınız onu açana
kadar kapalıdır.&lt;/p&gt;
&lt;h2&gt;Asıl dizin, bağlantı adlarıdır&lt;/h2&gt;
&lt;p&gt;Her iletken bir &lt;strong&gt;elektriksel bağlantıya (net)&lt;/strong&gt; aittir ve bu bağlantıların
adları vardır. İyi bir şema, farklı sayfalar da dahil olmak üzere bağlantının
geçtiği her yerde aynı adı kullanır. Sayfalar arası bağlantı okları da sırada
nereye bakacağınızı gösterir. PDF içinde arama yapabiliyorsanız &lt;code&gt;I2C1_SDA&lt;/code&gt;
aramak, çizgileri imleçle takip etmekten daha hızlıdır.&lt;/p&gt;
&lt;p&gt;Şu iki noktaya dikkat edin:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Veri yolları.&lt;/strong&gt; &lt;code&gt;SPI2_MOSI&lt;/code&gt;, yalnızca &lt;code&gt;SPI2[0..3]&lt;/code&gt; grubunun bir parçası
olarak görünebilir. Pinin bağlı olmadığına karar vermeden önce veri yolu
etiketinin hangi sinyalleri kapsadığını kontrol edin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bağlantı adları arasındaki köprüler.&lt;/strong&gt; Sıfır ohmluk bir direnç veya lehim
köprüsüyle birleştirilen iki farklı ad, &lt;em&gt;köprü takılıysa&lt;/em&gt; aynı elektriksel
bağlantıyı ifade eder. Malzeme listesinde (BOM) “DNP” ibaresini arayın:
“do not populate”, yani bileşeni takmayın. DNP işaretli bir direnç,
gerçekte orada olmayan bir iletkendir.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pull-up dirençleri yapılandırmanın parçasıdır&lt;/h2&gt;
&lt;p&gt;I²C veri yolundaki pull-up dirençleri süs değildir; yükselme süresini,
dolayısıyla kullanılabilecek en yüksek saat hızını belirlerler. İki yaygın hata:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hiç pull-up olmaması.&lt;/strong&gt; Tasarımcı, mikrodenetleyicinin dahili dirençlerine
güvenmiştir. Dahili pull-up dirençleri genellikle onlarca kΩ değerindedir;
400 kHz için fazla zayıf kalırlar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;İki kartta da pull-up olması.&lt;/strong&gt; Her birinde 4,7 kΩ direnç bulunan bir
taşıyıcı kartla sensör kartını birleştirirseniz eşdeğer direnç 2,35 kΩ olur.
Bazı bileşenler bu yük altında hattı yeterince düşük gerilime çekemez.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Veri yolu 100 kHz&#39;de çalışıp 400 kHz&#39;de çalışmıyorsa sürücüden önce pull-up
dirençlerinden şüphelenin.&lt;/p&gt;
&lt;h2&gt;Yazılıma dokunmadan önce üç ölçüm&lt;/h2&gt;
&lt;p&gt;Bir multimetre ve beş dakikayla:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Ölçüm&lt;/th&gt;
&lt;th&gt;Beklenen&lt;/th&gt;
&lt;th&gt;Yanlışsa olası neden&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kart açıkken her besleme hattı&lt;/td&gt;
&lt;td&gt;Nominal değerden en fazla birkaç yüzde sapma&lt;/td&gt;
&lt;td&gt;Regülatör etkin değil veya kısa devre var&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boştayken reset pini&lt;/td&gt;
&lt;td&gt;Boşta kalmamalı, besleme geriliminde tutulmalı&lt;/td&gt;
&lt;td&gt;Pull-up eksik veya hata ayıklayıcı pini düşük seviyede tutuyor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Veri yolu boştayken SDA ve SCL&lt;/td&gt;
&lt;td&gt;İkisi de besleme geriliminde&lt;/td&gt;
&lt;td&gt;Pull-up eksik veya bir cihaz hattı düşük seviyede tutuyor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En sık unuttuğum son satır. İşlemin ortasında takılan bir cihaz SDA&#39;yı sürekli
düşük seviyede tutar. Sonraki bütün aktarımlar, tam bir sürücü hatasına benzeyen
şekilde başarısız olur. SCL üzerinden dokuz saat darbesi göndermek hattı
kurtarabilir; birçok üreticinin donanım soyutlama katmanında (HAL) tam da bunun
için bir &lt;code&gt;bus_recover()&lt;/code&gt; işlevi bulunur.&lt;/p&gt;
&lt;h2&gt;Edinmeye değer alışkanlık&lt;/h2&gt;
&lt;p&gt;Ne ölçtüğünüzü, nerede ve ne zaman ölçtüğünüzü şemadaki referansın yanına yazın:&lt;/p&gt;
&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;2026-06-08  rev B, seri no 004
  +3V3   3,29 V   tamam
  VDDA   0,00 V   -&gt; U4&#39;ün EN pini PA8&#39;e bağlı; yazılım pini hiç sürmüyor. Düzeltildi.
  SDA    3,28 V   tamam (R21/R22 takılı, 4k7)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Altı ay sonra bu not, elinizde hangi kart revizyonunun olduğunu ve hangi
olasılıkları zaten elediğinizi anlatır. Kalibrasyon sabitlerini kod yerine
yapılandırmada tutmamın nedeni de aynı: Bağlamı olmayan bir ölçüm yalnızca
bir sayıdır.&lt;/p&gt;
</content>
  </entry>
</feed>