Donanımcı ve yazılımcının ayrı dünyası, bench’te ilk ADC ölçümünde sık duyulan “Bu pin ADC değil miydi?” cümlesiyle somutlaşır. Şemada sensör hattı doğru görünür, firmware derlenir; ancak pin aslında UART TX, JTAG veya başka bir alternatif fonksiyona mux edilmiştir ve analog ölçüm ya sabit kalır ya da tamamen saçmalır.
Revan Mühendislik’te PCB tasarımı ile yazılım geliştirme aynı proje dosyasında birleşmediğinde bu sınıf hatalar haftalar kaybettirir. Aşağıdaki örnekler gerçek bring-up ve saha devreye alma notlarından derlenmiştir; müşteri adı ve kart markası yoktur.

Donanımcı ve yazılımcının ayrı dünyası, donanım gerçeği ile yazılım varsayımının senkronize edilmediği süreçleri anlatır. MCU pinleri çok fonksiyonludur: aynı fiziksel pad ADC kanalı, SPI MOSI veya GPIO olabilir. Şemada net adı `AI_TEMP` olsa bile, firmware’de `SENSOR_ADC_CH3` tanımı yanlış porta map edilmişse ölçüm hattı dijital çıkış gibi davranır.
“Bu pin ADC değil miydi?” sorusu genelde şema sayfası ile `board.h` / device tree satırının yan yana konmadığı anlarda sorulur. Co-design, bu iki kaynağı tek “pin gerçeği” altında toplamayı hedefler; aksi halde prototip “çalışıyor gibi” görünüp seri kartta farklı BOM revizyonu ile patlar.
Sensörlü bir endüstriyel kartta sıcaklık girişi için 0–3,3 V analog sinyal beklenir. Donanım ekibi önceki projeden kopyalanan şema bloğunu kullanır; yazılım ekibi referans kartın header dosyasını taşır. Rev B’de sensör pin’i layout kısıtından dolu başka bir porta taşınmıştır; şema güncellenmiş, firmware commit’i bir sprint gecikmiştir.
Bench’te yazılımcı `adc_read()` ile sabit 4095 veya rastgele gürültü görür. Oscilloscope’ta pin doğru sinyali taşır; sorun mux ve kanal numarasıdır. Donanımcı “PA3 ADC1_IN3, şemada yazıyor” der; yazılımcı “bizim driver PA4 kullanıyor” der. Toplantı saatlerce sürer; asıl maliyet, saha sevkiyat tarihinin ötelenmesidir.
Benzer kırılma noktaları: debug için JTAG pin’ine geçici GPIO ataması, bootloader UART pin’i ile RS-485 transceiver’ın çakışması, ve “geçici” diye bırakılan alternatif fonksiyon seçiminin production image’da unutulması.
Pin mux ve alternatif fonksiyon tablosu: STM32, ESP32, PIC ve benzeri ailelerde her pin için AF matrisi vardır. Layout pin swap yapıldığında sadece netlist değil, `ADC_CHANNEL_x` → port eşlemesi değişir. Şemada `ADC1_IN3` etiketi, firmware’de `LL_ADC_CHANNEL_3` ile aynı fiziksel padi göstermeyebilir; kanal numarası ile port numarası karıştırılır.
Tek kaynak gerçeği eksikliği: IDE pin konfigüratörü çıktısı (`ioc`, `pinmux.csv`) repo’da yaşamıyorsa, donanım revizyonu yazılıma iletilmez. Excel’de tutulan pin listesi güncellenmez; CI derlemesi eski header ile devam eder.
Analog vs dijital init sırası: Pin önce GPIO output olarak init edilirse ADC moduna geçişte sürücü sessizce başarısız olabilir veya internal sample-and-hold bozulur. “ADC değil miydi?” sorusunun cevabı bazen “evet, ama önce push-pull çıkış yaptınız” olur.
Donanım koruma ve ölçüm yolu: Op-amp çıkışı MCU pin’ine gelmeden önce seri direnç ve filtre vardır; yazılım kalibrasyonu farklı referans gerilimine göre yazılmıştır. Pin doğru mux edilse bile Vref ve ölçek hatası “ADC bozuk” sanılır.
Test ve görünürlük: Factory test jig’i dijital loopback ile pin’i doğrular; analog yol ICT’de ölçülmez. Yanlış mux, otomasyon testinden geçip sahadan “sensör ölü” olarak döner.
Co-design’da pin listesi şema onayı ile aynı gün güncellenir: port, alternatif fonksiyon, net adı, ADC kanalı, pull-up ihtiyacı ve test noktası tek CSV veya YAML’de tutulur. Firmware bu dosyadan üretilen header’ı kullanır; manuel `#define` kopyası azaltılır.
Bring-up checklist’ine “pin gerçeği walkthrough” eklenir: donanımcı, yazılımcı ve test mühendisi birlikte oscilloscope ve `adc_read` log’unu ayni pin üzerinde doğrular. Rev değişiminde pin diff’i release note’a zorunlu satır olur.
Revan sürecinde PCB tasarımı revizyonu ile yazılım geliştirme sprint’i aynı ticket’ta izlenir; pin mux değişikliği firmware merge olmadan kart spin’i onaylanmaz. Erken prototipte pin konfigüratör çıktısı repo kökünde versiyonlanır.
Donanımcı ve yazılımcının ayrı dünyası tek pin gerçeği ile kapatıldığında bring-up süresi günlerden saatlere iner, yanlış ADC kanalı kaynaklı saha iade oranı düşer, rev B/C geçişlerinde regresyon görünür olur. Ölçülebilir hedef: ilk bench oturumunda tüm analog kanalların beklenen mV aralığında doğrulanması ve production image’ın pin CSV ile otomatik diff kontrolünden geçmesi.
Donanım ekibi “şemada net adı var” derken yazılım ekibi “header’da çalışıyordu” demesi, organizasyonel değil teknik borçtur. Pin swap layout’ta dakikalar sürer; firmware ve test güncellemesi yapılmazsa maliyet katlanır. JTAG/UART paylaşımlı pin’lerde debug kablosu takılıyken ADC ölçümünün bozulması, saha teknisyenini yanıltır.
“Geçici” firmware hack’leri production branch’e sızarsa, müşteri dokümantasyonu ile gerçek pinout asla örtüşmez. Co-design toplantısı kısa tutulmalı; uzun tartışma yerine tek tablo ve birlikte ölçüm tercih edilmelidir.
Donanımcı ve yazılımcının ayrı dünyası, pin mux ve dokümantasyon ayrışmasıyla “Bu pin ADC değil miydi?” sorusuna dönüşür. Şema, pin konfigüratör çıktısı ve firmware header’ını tek kaynakta birleştirmek, revizyon disiplini ve ortak bring-up ölçümü ile hata sahadan önce yakalanır. Kart spin’i ile firmware’i aynı release hattında kilitlemek, bench başarısını seri üretim güvenilirliğine taşır.
🔗 Lütfen Bizimle İletişim Kurmaktan Çekinmeyin:
WhatsApp: +90 543 735 31 75
☎️ ✉️ E-Posta: info@revantechnology.com
Elektronik Kart Tasarımı (PCB Baskı Devre Tasarımı) Hizmetimiz Konusunda Ayrıntılı Bilgi İçin:
Revan Teknoloji – Elektronik Kart Tasarımı (PCB Baskı Devre Tasarımı) Hizmetimiz