Mikrofab SuiteMikrofab SuiteÖlçüm & Analiz
Kilavuz  /  10. Donanım, Cihazlar ve Bağlantı
Simülasyon · v5.85.0

Donanım, Cihazlar ve Bağlantı

Bu bölüm, Mikrofab yarıiletken/TFT/PV ölçüm ve analiz yazılımının donanım katmanını kullanıcının bakış açısından ele alır: hangi cihazların desteklendiği, cihazların nasıl bulunduğu ve bağlandığı, anahtar matrisi (switch matrix) röle kartının nasıl yönetildiği, cihazlara rol atanması, enstrüman konsolu, firmware güncellemesi, cihaz profilleri, simülasyon (mock) modu ve güvenli bağlantı ilkeleri. Amaç, hiçbir donanım bağlamadan (simülasyon) başlayabilmeniz, sonra gerçek tezgâha geçtiğinizde aynı arayüzü birebir kullanabilmenizdir.

ℹ️
Not Yazılım varsayılan olarak simülasyon (mock) modunda açılır. Böylece cihaz bağlamadan tüm iş akışını (keşif, ekleme, rol atama, konsol, ölçüm) deneyebilirsiniz. Gerçek cihaza geçmek için yalnızca Simülasyon kutucuğunu kaldırmanız ve geçerli bir VISA kaynağı/COM portu girmeniz yeterlidir.
Mikrofab Donanım sayfası: cihaz kartları, durum rozetleri ve sekmeler
Şekil. Kart tabanlı Donanım sayfası: envanter kartları, keşif ve rol/profil yönetimi tek yerde.
🎓 Ne işe yarar? — Donanım Katmanı: SMU, Switch Matrix ve VISA

Bir ölçüm yazılımının laboratuvardaki cihazlarla konuşabilmesi için ortak bir "dil" ve "kablo düzeni" gerekir. Bu bölüm o köprüyü anlatır: numuneye gerilim/akım uygulayıp aynı anda ölçen SMU (Source-Measure Unit), birçok numuneyi tek cihaza sırayla bağlayan Switch Matrix röle kartı ve tüm bu cihazlara USB/GPIB/LAN üzerinden erişmeyi standartlaştıran VISA katmanı. Bunu, farklı markadan cihazların hepsiyle konuşabilen evrensel bir telefon santralı gibi düşünün.

  • Neden yapılır: doğru cihazı bulmak, güvenle bağlanmak ve hangi cihazın hangi işi yapacağını yazılıma tanıtmak için.
  • Ne öğretir / ne ölçer: cihazların nasıl keşfedildiğini, bağlandığını ve rollere atandığını; SMU'nun ölçümün kalbi olduğunu.
  • Nerede kullanılır: her ölçümden önceki kurulum adımında — ister tek bir SMU, ister çok cihazlı bir tezgah.

1. İki Bağlantı Yüzeyi

🎓 Ne işe yarar? — İki Bağlantı Yüzeyi

Yazılım donanıma iki ayrı ekran üzerinden eriştirir: hızlı tek-SMU kurulumu için sade bir "Cihaz Bağlantıları" paneli ve çok cihazlı tezgahları yöneten kart tabanlı bir "Donanım" sayfası. İkisi de aynı motoru kullanır; aynı arabanın hem basit hem de tam donanımlı kontrol paneli gibi yalnızca sunum farklıdır.

  • Neden yapılır: basit işlerde hız, karmaşık tezgahlarda düzen sağlamak için iki farklı zorluk seviyesi sunar.
  • Ne öğretir / ne ölçer: hangi senaryoda hangi ekranı kullanacağınızı.
  • Nerede kullanılır: tek diyot ölçümünden çok-istasyonlu üretim tezgahına kadar.

Yazılım, donanıma iki tamamlayıcı arayüz üzerinden erişir:

YüzeyNeredeNe işe yarar
Cihaz Bağlantıları paneli (klasik)Kontrol/Bağlantı paneliSMU kurulum modu seçimi (çift/tek kanal), Switch Matrix, Hall Effect ve PV multiplekser kartlarının doğrudan bağlanması. Ölçüm motoruna aktif SMUDriver örneğini verir.
Donanım sayfası (kart tabanlı)Donanım çalışma alanıKart tabanlı envanter, otomatik/periyodik keşif, rol haritalama, profil, enstrüman konsolu, firmware güncelleme, self-test ve sorun giderme.

Her iki yüzey de aynı sürücü ve keşif altyapısını kullanır; sadece sunum farklıdır. Bu bölümde önce desteklenen cihazları ve keşfi, ardından iki yüzeyin özelliklerini ayrıntılandırıyoruz.

İpucu Tek bir SMU ile hızlı ölçüm yapacaksanız klasik Cihaz Bağlantıları paneli en kısa yoldur. Çok cihazlı bir tezgâh (SMU + röle kartı + sıcaklık denetleyici + LCR) kuruyorsanız Donanım sayfası envanter + rol + profil yönetimini tek yerde toplar.

2. Desteklenen Cihazlar ve Model Eşleştirme

Donanım katmanı, çok-üretici bir enstrüman kayıt defterine (instrument_registry) dayanır. Bir cihaz kayıt defterinde tanımlıysa, *IDN? yanıtından otomatik tanınır, doğru protokol ve kanal sayısı atanır.

2.1 SMU (Source-Measure Unit) Aileleri

🎓 Ne işe yarar? — SMU (Source-Measure Unit) Aileleri

SMU, aynı anda hem kaynak (gerilim/akım uygular) hem de ölçü aleti (akım/gerilim okur) olan özel bir laboratuvar cihazıdır. Tek elle hem musluğu açıp hem de akan suyu ölçen bir cihaz gibi düşünebilirsiniz; bu yüzden diyot, transistör ve güneş hücresi karakterizasyonunun temelidir. Yazılım Keithley, Keysight ve R&S ailelerini tanır ve doğru komut setini otomatik seçer.

  • Neden yapılır: bir cihazla hem uyarı vermek hem tepkiyi ölçmek (I–V eğrisi çıkarmak) için.
  • Ne öğretir / ne ölçer: akım–gerilim ilişkisi; 4-telli (Kelvin) ölçümle kablo direncini eler.
  • Nerede kullanılır: yarıiletken araştırması, TFT/FET ve PV karakterizasyonu, kalite kontrol.

SMU'lar yazılımın birincil ölçüm cihazlarıdır (kaynak + ölçüm + 4-telli Kelvin desteği). Aşağıdaki modeller kayıtlıdır:

AileModellerProtokolKanalSCPI ProfiliNot
Keithley 2400 SCPI2400, 2401, 2410, 2420, 2425, 2430, 2440SCPI1genericKlasik 2400 serisi. 2400 Mode (DDC) eski protokolü katalogda izlenir; güvenlik için varsayılan SCPI ile sürülür.
Keithley 2400 Graphic2450, 2460, 2461, 2470SCPI1keithley_graphicalCompliance için klasik :SENS:...:PROT yerine source limit (ILIM/VLIM) komutları kullanır; aksi hâlde cihaz -113 (Undefined header) döner.
Keithley 2600 TSP (tek kanal)2601A/B, 2611A/B, 2635BTSP1tspCihaz üzerinde script çalıştırma. TSP-Link topolojilerinde node olabilir.
Keithley 2600 TSP (çift kanal)2602B, 2612A/B, 2614B, 2634B, 2636BTSP2tspÇift kanallı native SMU. TSP-Link master/node. Gerçek autorange yalnız bu ailede desteklenir (bkz. §2.5).
Keysight B2900B2901A/B, B2911A/B (tek); B2902A/B, B2912A/B (çift)SCPI1 / 2keysight_b29xxKeysight grafik SMU ailesi. *IDN? içinde "AGILENT" jetonu da otomatik eşleştirilir.
Rohde & Schwarz NGU/NGMNGU201, NGU401, NGM201 (tek); NGM202 (çift)SCPI1 / 2rs_instrument_selectKaynak-ölçüm PSU'su (klasik SMU değil). Resmî MIT lisanslı RsNgx sürücüsü (RsNgxSMUAdapter) kullanılır; kurulu değilse native SCPI'ye düşer.
ℹ️
Not (Legacy 2600A) 2601A / 2611A / 2612A gibi "A" sürümleri, topluluk QCoDeS Keithley2600 sürücüsü tarafından reddedilir; yazılım bunları otomatik olarak 2601B/2611B/2612B eşdeğer takma adlı bir sarmalayıcı (keithley2600a) ile açar. 2612A'da USB-TMC yoktur — GPIB / LAN / RS-232 kullanın.

2.2 Genişletilmiş Envanter (PSU, LCR, AWG, Lock-In, Sıcaklık)

🎓 Ne işe yarar? — Genişletilmiş Cihaz Envanteri (PSU, LCR, AWG, Lock-In, Sıcaklık)

Bir ölçüm tezgahında SMU tek başına yetmez; bazen güç beslemek, kapasitans ölçmek, sinyal üretmek, zayıf sinyali gürültüden ayıklamak veya numuneyi ısıtmak gerekir. Bu alt-bölüm, SMU dışındaki yardımcı cihazları tanıtır ve yazılımın bunları da görüp temel düzeyde kontrol edebildiğini gösterir.

  • Neden yapılır: ölçümü tek cihazın ötesine taşıyıp tam bir deney düzeneği kurmak için.
  • Ne öğretir / ne ölçer: her cihaz sınıfının ne işe yaradığını (LCR → kapasitans/empedans, Lock-In → çok küçük AC sinyaller, sıcaklık denetleyici → kontrollü ısıtma).
  • Nerede kullanılır: empedans/foto-iletkenlik ölçümleri, sıcaklığa bağlı karakterizasyon, çok-cihazlı düzenekler.

SMU dışındaki cihazlar keşif ve ham (raw) kontrol için kayıtlıdır; bazıları ölçüm slotlarına da bağlanır:

SınıfÖrnek modellerSürücü ailesiNot
DC Güç KaynağıB&K 9115 (0–80 V / 0–60 A), Owon SPM6103 (0–60 V / 0–10 A / 300 W + 4.5-hane DMM), Tenma 72-13210 (2 kanal, Korad ASCII)dc_supplyKaynak-only; toplulukta olmayanlar kendi QCoDeS-stili sürücümüzle sürülür.
LCR / EmpedansB&K 894/895, Keysight E4980AlcrSMU değildir; yalnız measure_impedance + measure_c kabiliyeti taşır.
Dalga Üreteci (AWG)Owon DGE2070 (70 MHz, 2 kanal), Keysight/Agilent 33500 serisi (33509B…33522B)awgSinyal kaynağı; ölçüm modu kullanmaz, yalnız ham/manuel kontrol.
Lock-In YükselticiZurich Instruments MFLI (5 MHz)lockinRPS iş akışı (foto-iletkenlik). zhinst-toolkit ile sürülür.
Sıcaklık DenetleyiciEurotherm 3504/3508 (Modbus RTU PID fırın), Sun EC10 (GPIB termal oda)temperature_controllerNative ramp denetleyiciye aittir; ısıtma (+soğutma).
Termometre (salt-okunur)Keithley 2000 (Tip-K termokupl okuyucu)thermometerNumune sıcaklığı okumak için.
⚠️
Uyarı Genişletilmiş envanterdeki bazı cihazların (MFLI, Eurotherm, Sun EC10, K2000) gerçek VISA/IDN eşlemesi ilgili iş paketinde doğrulanır. Şu an bunlar keşif + ham kontrol için kayıtlıdır; tam ölçüm entegrasyonu sürüm notlarında belirtilir.

2.3 Protokol Desteği

🎓 Ne işe yarar? — Haberleşme Protokolleri (VISA / SCPI / TSP)

Cihazlarla konuşmak için ortak kurallar gerekir: VISA fiziksel bağlantıyı (USB/GPIB/LAN/seri) standartlaştırır, SCPI cihaza verilen metin komutlarının dilbilgisidir, TSP ise Keithley 2600 ailesinde cihazın içinde küçük script çalıştırmaya izin verir. VISA telefon hattı, SCPI ise konuşulan ortak dil gibidir.

  • Neden yapılır: farklı marka/model cihazların hepsiyle tek bir tutarlı yoldan konuşabilmek için.
  • Ne öğretir / ne ölçer: hangi protokolün çalışma zamanında aktif, hangisinin yalnız katalog bilgisi olduğunu.
  • Nerede kullanılır: her cihaz bağlantısının altında; doğrudan görmeseniz de her komut bu katmanlardan geçer.
ProtokolKatmanDurumAçıklama
VISAG/Ç (I/O)Çalışma zamanıUSB/GPIB/LAN/RS-232 için PyVISA tabanlı ortak G/Ç katmanı.
SCPIKomutÇalışma zamanıKeithley, Keysight ve R&S profilleriyle kaynak/ölçüm komutları.
TSPKomutÇalışma zamanıKeithley 2600 serisi için cihaz üzerinde script çalıştırma.
TSP-LinkSenkr.KatalogTSP master cihaza bağlanan node topolojileri (kayıt defterinde temsil edilir).
DDC (2400 Mode)Eski komutKatalog2400 serisi için eski protokol; güvenli akış için varsayılan SCPI.
IVISürücüKatalogYüksek seviye sürücü standardı; çalışma zamanı VISA/SCPI üzerinden.

2.4 Model Eşleştirme (*IDN? Çözümleme)

🎓 Ne işe yarar? — Model Eşleştirme (*IDN? ile Otomatik Tanıma)

Bir cihaz bağlandığında yazılım ona "kimsin?" diye sorar (*IDN? komutu) ve gelen yanıttan üreticiyi, modeli ve yeteneklerini çözer. Tıpkı bir kimlik kartı okutmak gibi; böylece doğru komut seti ve kanal sayısı elle ayar gerektirmeden atanır.

  • Neden yapılır: her cihazı elle tanımlama zahmetini ortadan kaldırıp hataları önlemek için.
  • Ne öğretir / ne ölçer: veriyolundaki cihazın tam kimliğini; tanınmasa bile cihaz ham adıyla listelenir.
  • Nerede kullanılır: keşif ve bağlantı sırasında, her yeni cihaz eklendiğinde.

Bir VISA kaynağı açıldığında *IDN? sorgusu yapılır. IEEE 488.2'ye göre yanıt VENDOR,MODEL,SERIAL,FIRMWARE biçimindedir. Eşleştirme şu mantıkla yapılır:

  • Sağlayıcı (vendor) jetonu yanıtta aranır. Keysight için otomatik olarak AGILENT, R&S için ROHDE, SCHWARZ, R&S jetonları da eklenir.
  • Model jetonu kelime/numara sınırıyla (2612A, 2612'yi yanlışlıkla kapsamayacak şekilde) aranır; en uzun (en spesifik) eşleşme tercih edilir.
  • Eşleşme bulunamazsa cihaz "UNKNOWN" değil, kendi ham kimliğiyle (ör. "B&K Precision 894" veya *IDN? model alanı) listelenir; böylece veriyolundaki her cihazı her zaman görebilirsiniz.
ℹ️
Girdi → İşlem → Çıktı Girdi *IDN? metni → sağlayıcı+model jeton eşleşmesi → Çıktı InstrumentModel (model anahtarı, protokol, kanal sayısı, gösterim adı). Eşleşme yoksa cihaz "rol atanamaz" durumunda yalnız bilgi amaçlı gösterilir.

2.5 Sürücü Backend Seçimi ve Autorange

🎓 Ne işe yarar? — Sürücü Seçimi ve Autorange (Otomatik Kademe)

Aynı cihaz, simülasyonda sahte bir fizik motoruyla, gerçekte ise uygun bir sürücü (harici veya QCoDeS) ile sürülür; yazılım hangisini kullanacağına otomatik karar verir. Autorange ise ölçüm aletinin, sinyalin büyüklüğüne göre en uygun ölçüm kademesini kendiliğinden seçmesidir — fotoğraf makinesinin pozlamayı otomatik ayarlaması gibi.

  • Neden yapılır: kademeyi elle seçme derdini kaldırıp doğru çözünürlükte ölçüm almak için.
  • Ne öğretir / ne ölçer: hangi cihaz ailesinin gerçek autorange desteklediğini (şu an yalnız TSP/Keithley 2600).
  • Nerede kullanılır: geniş aralıklı I–V taramalarında, sinyal büyüklüğü önceden bilinmediğinde.

Bir model için sürücü mock/gerçek ayrımına göre seçilir:

  • Simülasyon (mock): kanonik fizik-mock MockSMUDriver — gerçek G/Ç yok; diyot/Schottky/güneş-hücresi/transistör fiziği.
  • Gerçek G/Ç:
    1. Modelin bir harici sürücüsü varsa (ör. R&S → RsNgxSMUAdapter) ve çözülebiliyorsa o kullanılır.
    2. Aksi hâlde QCoDeS topluluk sürücüsü (QCoDeSSMUDriver) kullanılır.

Autorange (otomatik kademe) yeteneği. UI'daki autorange kutusu yalnız, seçili modelin sürücü ailesi gerçek kaynak/ölçüm autorange uyguluyorsa etkin olur. Tek doğruluk kuralının kaynağı family_supports_autorange'tir:

Formül family_supports_autorange(driver_family) == (driver_family.lower() == "tsp")

Yani şu an yalnız TSP ailesi (Keithley 2600) gerçek autorange uygular; SCPI 2400/2450, Keysight, dc_supply ve R&S aileleri için bu kutu pasiftir. Çift-SMU kurulumunda her iki alt sürücü de desteklemiyorsa kutu pasif kalır (yanıltıcı seçenek sunulmaz).

Donanım taraması ekranı: kaynak/ölçüm kademeleri ve autorange seçenekleri
Şekil. Donanım taraması: autorange kutusu yalnız TSP ailesi seçiliyken etkinleşir.

3. VISA Kaynakları ve Cihaz Keşfi

3.1 VISA Arabirim Türleri ve Kaynak Adlandırma

🎓 Ne işe yarar? — VISA Kaynak Adları ve Arabirim Türleri

Her cihazın benzersiz bir "adresi" vardır ve bu adresin baş kısmı cihaza nasıl ulaşıldığını söyler: USB, GPIB, Ethernet veya seri port. Tıpkı bir posta adresinin şehir/sokak/numara bölümleri gibi, yazılım adresin önekine bakıp doğru arabirimi seçer.

  • Neden yapılır: cihaza hangi fiziksel yoldan bağlanılacağını belirlemek için.
  • Ne öğretir / ne ölçer: kaynak adının nasıl okunacağını (ör. USB0::..., GPIB0::..., TCPIP0::...).
  • Nerede kullanılır: manuel adres girerken veya keşif sonuçlarını yorumlarken.

Yazılım, kaynak adının önekinden arabirim türünü otomatik türetir (interface_type):

ArabirimKaynak öneki / şemaKlasik panel ön-ekiTipik kullanım
USB (USBTMC)USB0::...USB0::0x05E6::Keithley/Keysight masaüstü SMU (0x05E6 = Keithley sağlayıcı kimliği)
GPIBGPIB0::<adres>::INSTRGPIB0::2612A gibi USB-TMC'siz cihazlar
Ethernet (VXI-11)TCPIP0::<ip>::INSTRTCPIP0::LAN üzerinden enstrüman
Ethernet (Ham Soket)TCPIP0::<ip>::<port>::SOCKETTCPIP0::Ham soket cihazlar
Seri (RS-232)ASRL<n>::INSTR veya COM<n>ASRLSeri cihazlar, röle/PV kartları
Manuel(serbest)(boş)Adresi elle yazma

Bir dize geçerli bir VISA kaynağı gibi görünmüyorsa (boş, bilinmeyen şema, :: içermiyor) yazılım bunu open_resource'a göndermez; bu, kriptik VI_ERROR_INV_RSRC_NAME (Parsing error) hatasını önler. sim://... ve MOCK... kaynakları geçerli (simüle) sayılır.

⚠️
Uyarı VISA keşfinin çalışması için tezgâha bir VISA runtime kurulu olmalıdır: NI-VISA, Keysight IO Libraries veya R&S VISA. Yoksa keşif boş liste döner (hata vermez) ve simülasyon modu sorunsuz çalışmaya devam eder.

3.2 Otomatik Keşif (*IDN? aç-sorgula-kapat)

🎓 Ne işe yarar? — Otomatik Cihaz Keşfi (Tara)

Tara düğmesi, bilgisayara bağlı tüm enstrümanları tek tek yoklayıp listeler; her birine kısaca "kimsin?" diye sorar ve hemen bırakır. Bir odaya girip "burada kim var?" diye yoklama yapmak gibidir — kalıcı bir oturum açmaz, yalnız sayar ve tanır.

  • Neden yapılır: cihaz adreslerini elle bulup yazma zahmetinden kurtulmak için.
  • Ne öğretir / ne ölçer: veriyolundaki cihazların listesini ve adaylarını; yanıt vermeyenlere takılıp kalmaması için sıkı timeout korumaları vardır.
  • Nerede kullanılır: yeni bir tezgah kurarken veya cihaz takıp çıkardıktan sonra.

Keşif (Tara), bağlı enstrümanları sayar ve her birini bir aday cihaz kaydına eşler. Önemli özellikler:

  • Keşif salt-okunurdur: kalıcı bir ölçüm oturumu açmaz. Her kaynak açılır, *IDN? sorgulanır, kapatılır.
  • Her kaynak iki denemeyle yoklanır: (1) varsayılan ayarlar (USBTMC SMU'ların kanıtlı yolu), (2) boş dönerse \n sonlandırma + daha uzun timeout (yavaş/seri cihazlara şans verir).
  • Seri (ASRL/COM) kaynaklarda akış-kontrolü kapatılır; aksi hâlde yanıt vermeyen bir kart (ör. CH340 anahtar-matrisi) CTS bekleyerek süresiz bloklayabilir.

Timeout korumaları (cihaz-haberleşme kuralı #1):

Kaynak açma1500ms
Yoklama duvar-saati8,0s
Varsayılan VISA3000ms
ParametreBirimDeğerAçıklama
Kaynak açma timeout'ums1500Yanıt vermeyen seri/USB portun viOpen'da takılmasını önler
Yoklama duvar-saati sınırıs8.0Tüm aç+sorgu+kapat bunu aşarsa thread terk edilir, tarama devam eder
Varsayılan VISA timeoutms3000Per-cihaz override yoksa kullanılır (Ayarlar > Donanım visa_timeout_ms)

Seri portlar ayrıca pyserial ile listelenir; açıklama/üretici/donanım kimliğinde CH340, USB Serial, USB-SERIAL, USB-UART, CP210 jetonlarından biri geçerse cihaz Switch Matrix adayı olarak işaretlenir.

3.3 Manuel Kaynak Girişi

🎓 Ne işe yarar? — Manuel Kaynak Girişi

Bazı cihazlar (özellikle seri portlu kartlar) otomatik keşifte görünmeyebilir; bu durumda adresi elle yazıp *IDN? ile sınayarak cihazı eklersiniz. Telefon rehberinde bulamadığınız bir numarayı elle çevirmek gibidir.

  • Neden yapılır: otomatik bulunamayan veya özel ayar isteyen cihazları yine de ekleyebilmek için.
  • Ne öğretir / ne ölçer: doğru port/baud/parity ile cihazın gerçekten yanıt verip vermediğini.
  • Nerede kullanılır: RS-232/USB-seri kartlar, eski cihazlar ya da keşif başarısız olduğunda.

Cihaz otomatik bulunamazsa adresi elle girebilirsiniz:

  • Klasik panel: ilgili SMU alanında Bağlantı türünü seçince adres alanına doğru ön-ek otomatik yazılır; gerisini siz tamamlarsınız. Bul ile tarayıp listeyi log'a dökebilirsiniz.
  • Donanım sayfası — RS-232 manuel ekleme: Cihaz Ekle penceresinde port (COM3 / /dev/ttyUSB0), baud, parity ve stop bit girip *IDN? Gönder ile yoklarsınız. Yanıt gelirse IDN alanı dolar ve Ekle ile cihaz NEEDS_SETUP (kurulum gerekli) durumunda envantere eklenir.

3.4 Bağlantı Testi, Gecikme ve Geri-Çekilme (Back-off)

🎓 Ne işe yarar? — Bağlantı Testi, Gecikme ve Geri-Çekilme

Test, bir cihaza kısa bir sinyal gönderip ne kadar sürede yanıt verdiğini (gecikme/latency) ölçer; arka planda da cihazlar düzenli yoklanır. Sürekli yanıt vermeyen bir cihaz giderek daha seyrek denenir (üstel geri-çekilme), cevap vermeyen birini sürekli değil, gitgide artan aralıklarla aramak gibi.

  • Neden yapılır: bağlantının sağlığını doğrulamak ve yanıt vermeyen tek cihazın sistemi yormasını önlemek için.
  • Ne öğretir / ne ölçer: cihazın ulaşılabilirliğini ve yanıt gecikmesini (ms).
  • Nerede kullanılır: kurulum sorunlarını teşhis ederken, kararsız/uzak cihazlarda.

Bir cihazı Test ettiğinizde veya Yeniden Bağlan dediğinizde, salt-okunur bir *IDN? yoklaması yapılır ve gecikme (latency) ölçülür:

Formül latency_ms = (t_son − t_başlangıç) × 1000
  • Girdi: *IDN? gidiş-dönüş süresi (monotonik saat) · Çıktı: latency_ms (ms). Başarısız yoklamada gecikme anlamsızdır ve kaydedilmez.
  • Simüle cihazlar her zaman (True, "<simulated>", None) döner — G/Ç yapılmaz.

Periyodik arka plan yoklaması (~2 sn): Donanım sayfası, ulaşılabilir cihazları sürekli yeniden yoklar. Sürekli ulaşılamayan bir cihaz üstel geri-çekilme ile gitgide daha seyrek denenir:

Formül aralık(n) = min( taban × 2(n−1) , tavan )     taban = 5 sn, tavan = 300 sn

Yani: 1. başarısızlık → 5 sn, 2. → 10 sn, 3. → 20 sn, … en fazla 5 dakika. Başarılı bir yoklama sayacı sıfırlar. Bu, yanıt vermeyen tek bir cihazın tarama döngüsünü meşgul etmesini önler.

ℹ️
Not Bir cihazın enstrüman konsolu açık bir oturum tutuyorsa veya Switch Matrix kartı uygulamanın paylaşılan röle oturumunca tutuluyorsa, arka plan yoklaması o cihazı atlar. Aksi hâlde ikinci bir *IDN? mevcut oturumla çakışıp çalışır durumdaki bir kartı hatalı olarak HATA boyardı.

4. SMU Kurulum Modları

🎓 Ne işe yarar? — SMU Kurulum Modları

Bir ölçüm bir, iki ya da çift-kanallı SMU gerektirebilir (ör. bir transistörde drain ve gate'i ayrı sürmek için iki kanal gerekir). Kurulum modu, yazılıma "elimde kaç SMU var ve hangisi neyi sürecek?" bilgisini verir; ölçüm motoru bu farkı görmeden hep tek bir sürücü görür.

  • Neden yapılır: donanım kurulumunuzu (tek diyot mu, çift kanallı transistör mü) ölçüm yazılımına doğru tanıtmak için.
  • Ne öğretir / ne ölçer: kanal–elektrot eşlemesini (a=drain, b=gate).
  • Nerede kullanılır: iki-uçlu cihazlar (diyot/PV) ile üç-uçlu cihazlar (TFT/FET) arasında geçişte.

Ölçüm motoru her zaman tek bir SMUDriver arayüzü görür; arkasında kaç fiziksel cihaz olduğu kurulum modu ile belirlenir. Klasik panelde üç mod radyo düğmesiyle seçilir.

Modsmu_setup_modeFiziksel cihazKanal eşlemesiVarsayılan model
Çift kanaldual_channel1 adet çift-kanallı SMUa=drain, b=gate (native)2614B
Tek kanal çiftisingle_channel_pair2 adet tek-kanallı SMUa=drain (SMU1), b=gate (SMU2)2450 + 2450
Tek kanal diyotsingle_channel_diode1 adet tek-kanallı SMUyalnız a2450
Klasik Cihaz Bağlantıları / Kontrol paneli: SMU kurulum modu ve bağlantı alanları
Şekil. Klasik Cihaz Bağlantıları paneli: SMU kurulum modu radyo düğmeleri ve adres alanları.

4.1 Çift Kanal (dual_channel)

Tek bir native çift-kanallı cihaz (ör. Keithley 2614B) hem drain hem gate kanalını sağlar. Bağlan düğmesi modeli kurar, connect(resource) çağırır, *IDN? ile doğrular ve aktif sürücüyü ölçüm motoruna verir.

4.2 Tek Kanal Çifti (single_channel_pair)

İki ayrı tek-kanallı SMU, bir DualSMUAdapter ile tek bir çift-kanallı sürücü gibi sunulur:

  • channel="a" → drain SMU (SMU1), channel="b" → gate SMU (SMU2).
  • Her alt sürücü kendi VISA kaynağıyla bağımsız bağlanır (connect_each(res1, res2)); iki ayrı adres girersiniz.
  • Autorange yeteneği yalnız her iki alt sürücü de destekliyorsa raporlanır.
  • Mock modunda gate (b) gerilimi, drain alt-sürücüsünün gate referansına yansıtılır; böylece Ids(Vds, Vgs) doğru hesaplanır (yalnız simülasyonda geçerli; gerçek donanımda her SMU kendi değerini okur).
⚠️
Uyarı Tek kanal çifti modunda iki geçerli adres girmek zorunludur (mock dışında). Eksik adres "her iki kaynağı da girin" hatası verir.

4.3 Tek Kanal Diyot (single_channel_diode)

Yalnız a kanalı kullanılır; iki-uçlu cihazlar (diyot, Schottky, güneş hücresi) için idealdir. Tek bir adres yeterlidir.

5. Switch Matrix / Röle Kartı

🎓 Ne işe yarar? — Switch Matrix / Röle Kartı

Bir vitüy üzerinde onlarca TFT/numune olabilir ama genelde tek bir SMU vardır. Switch Matrix, röleler (elektronik anahtarlar) sayesinde SMU'yu sırayla istenen numuneye bağlar. Bir telefon santralının görüşmeleri doğru hatta yönlendirmesi gibi, ölçülecek cihazı kabloları elle değiştirmeden seçer.

  • Neden yapılır: tek cihazla çok sayıda numuneyi otomatik, sırayla ölçebilmek için.
  • Ne öğretir / ne ölçer: hangi numunenin SMU'ya bağlı olduğunu; kendisi bir ölçüm yapmaz, yönlendirir.
  • Nerede kullanılır: dizi (array) testleri, TFT panel karakterizasyonu, otomatik tarama.

Switch Matrix, 16 kanallı bir low-trigger relay kartıdır (Mikrofab TFT anahtar-matrisi). DUT'ları (ör. bir vitüye dizilmiş TFT'ler) sırayla SMU'ya yönlendirir.

Donanım TFT ölçümü: Switch Matrix ile DUT seçimi ve yönlendirme
Şekil. Donanım TFT iş akışı: Switch Matrix röle kartı DUT'ları sırayla SMU'ya yönlendirir.

5.1 Donanım ve Protokol

  • Kart, Arduino tabanlı tft_switchmatrix firmware'ini (v3.0.0) çalıştırır ve PySerial ile COM port üzerinden sürülür.
  • Beklenen cihaz modeli: TFT-SWITCHMATRIX-16 (kimlik doğrulaması bunu arar).
  • İki komut katmanı vardır:
    • Eski token protokolü"<pin><a|b>..." (ör. "3b16b6b8b") ve "a" (tüm-kapat). Röle seçimi ve PV haritaları bunu kullanır.
    • SCPI / IEEE-488.2 sorgu katmanı*IDN?, STATE?, SYST:ERR? (kapalı-çevrim doğrulama için).

Röle pinleri: kartın röle-pinleri 2…17 arasıdır (toplam 16 kanal).

5.2 COM Port, Baud ve Port Keşfi

ParametreBirimVarsayılanAçıklama
COM port(boş)Bul ile listelenir; CH340/USB-Serial adayları öne çıkarılır
Baud ratebit/s9600Arayüzden 9600 veya 115200 seçilir
Newline eklemeKapalıKomut sonuna \n ekleme; Ayarlar sekmesinden açılır/kapatılır

Bul düğmesi seri portları tarar; açıklamasında Switch Matrix, Mega, CH340, USB Serial, USB-SERIAL geçen port aday olarak seçilir.

ℹ️
Not Mock modunda kart her zaman "bağlı" raporlar (açılacak fiziksel donanım yoktur) ve röle durumunu yazılımda aynalar; böylece okuma/doğrulama yardımcıları donanımsız da çalışır.

5.3 TFT Eşleştirme Tablosu ve Token Sözdizimi

🎓 Ne işe yarar? — TFT Eşleştirme Tablosu ve Token Sözdizimi

Her numuneye (ör. "TFT 3") ulaşmak için belirli rölelerin kapanması gerekir; bu eşleştirme, kısa bir komut dizisiyle (token) ifade edilir. Bir asansörde kat düğmesine basmak gibi: "TFT 3" dersiniz, yazılım arkada doğru pinleri kapatan komutu üretir.

  • Neden yapılır: fiziksel röle numaralarını ezberlemeden mantıksal numune adıyla çalışabilmek için.
  • Ne öğretir / ne ölçer: token sözdizimini (3b16b6b8b → 3, 16, 6, 8 pinlerini kapat) ve hangi pinin geçerli olduğunu (2–17).
  • Nerede kullanılır: cihaz haritası tanımlarken ve röle yollarını düzenlerken.

Her mantıksal TFT kimliği, bir röle komut dizisine eşlenir (tft_mapping). Varsayılan eşleştirme:

TFTRöle komutu
TFT 13b16b6b8b
TFT 22b17b6b8b
TFT 35b14b6b8b
TFT 44b15b6b8b
TFT 57b12b6b8b
Cihaz/DUT haritası: mantıksal TFT kimliklerinin röle kanallarına eşlenmesi
Şekil. Cihaz haritası: her mantıksal TFT, kapatılacak röle pinleri kümesine eşlenir.

Token sözdizimi: rakamla başlayan bir satır break-before-make'tir (önce tüm röleler açılır, sonra uygulanır). Her token <pin><eylem> çiftidir:

  • b (veya B) → pini kapat (close)
  • a (veya A) → pini (open)

Örnek: 3b16b6b8b → 3, 16, 6 ve 8 numaralı pinleri kapatır (gerisi açık). Yalnız 2–17 arası pinler geçerlidir.

ℹ️
Girdi → İşlem → Çıktı Girdi token dizesi → firmware-aynalı çözümleyici → Çıktı "kapalı pinler kümesi". verify_route, bu beklenen kümeyi gerçek STATE? okumasıyla karşılaştırır.

5.4 Tüm Röleleri Kapat (a)

Tüm Kapat düğmesi (veya güvenli-durum akışı) karta tek harflik a komutunu gönderir; bu tüm röleleri açar (DUT'u SMU'dan ayırır). Bu komut, güvenli-durum sırasının (output OFF → röle OFF → bağlantı kapat) ikinci adımıdır.

5.5 Röle Durumu Okuma ve Yol Doğrulama

🎓 Ne işe yarar? — Röle Durumu Okuma ve Yol Doğrulama

Numuneye gerilim uygulamadan önce yazılım, doğru rölelerin gerçekten kapandığını karta sorarak doğrular. Trene binmeden önce rayların doğru yöne ayarlandığını kontrol etmek gibi; eşleşmezse ölçüm durdurulur.

  • Neden yapılır: takılı/arızalı bir röle yüzünden yanlış numuneye gerilim uygulanmasını önlemek için.
  • Ne öğretir / ne ölçer: kartın gerçek anahtar durumunu (kapalı kanallar) ve hata kuyruğunu.
  • Nerede kullanılır: her otomatik yönlendirme adımında — güvenli, kapalı-çevrim ölçümün temelidir.

Profesyonel kapalı-çevrim yardımcıları, SMU biasları uygulanmadan önce yönlendirmenin gerçekten gerçekleştiğini doğrular:

  • read_state() / closed_channels()STATE? ile 16 kanalı geri okur (mock'ta aynalanır).
  • verify_route(beklenen_kapalı) — geri okur, eşleşmezse veya firmware hata kuyruğunda bir kayıt varsa SwitchMatrixError fırlatır (hata asla yutulmaz — cihaz-haberleşme kuralı #4).
  • drain_errors()SYST:ERR? kuyruğunu (en fazla 32 yineleme) boşaltır; +0,"No error" görülünce durur.
⚠️
Uyarı Bir röle takılırsa ya da aktüasyon yapmazsa, verify_route SMU biasını engeller. Böylece yanlış kanala gerilim uygulanmaz. Bu doğrulamayı atlamak güvenli değildir.

5.6 Newline Ekleme Ayarı

Bazı firmware sürümleri komut sonunda satır sonu bekler. Ayarlar sekmesindeki newline ekleme seçeneği açıkken her send_command çıktısına \n eklenir (varsayılan kapalı). Van der Pauw / Probe-IV gibi ham yollar (send_raw) bu ayardan bağımsız her zaman \n ekler.

6. Cihaz Rolleri ve Atama

🎓 Ne işe yarar? — Cihaz Rolleri ve Atama

Ölçüm modülleri "kaynak", "ölçer", "anahtar", "sıcaklık" gibi işlevler ister; rol sistemi, hangi fiziksel cihazın hangi işlevi üstleneceğini bağlar. Bir tiyatro oyununda rolleri oyunculara dağıtmak gibidir — böylece ölçüm, "Keithley 2614B" değil, soyut "SMU rolü" ile konuşur.

  • Neden yapılır: ölçümleri belirli cihaz modellerinden bağımsız kılıp cihaz değiştirmeyi kolaylaştırmak için.
  • Ne öğretir / ne ölçer: her görevin (rolün) hangi cihaza atandığını ve eksik bir rol varsa anlaşılır uyarı verilmesini.
  • Nerede kullanılır: çok cihazlı tezgah kurarken, cihaz değiş-tokuşunda, profil yüklerken.

Yazılım, "hangi cihaz hangi işi yapar" sorusunu rol soyutlamasıyla çözer. İki sözcük dağarcığı vardır.

6.1 Kabiliyet Rolleri (11 Kanonik Rol)

Kart tabanlı Donanım sayfası, ince taneli 11 kabiliyet rolü kullanır:

RolKısaltmaAnlam
SOURCESRCGerilim/akım kaynağı
METERMEASAkım/gerilim ölçümü
FOUR_WIRE4WKelvin / 4-telli algılama
SWITCHSWYönlendirme / multiplekser
TEMPERATURETEMPSıcaklık denetim/okuma
MAGNETIC_FIELDFBManyetik alan
ELECTRIC_FIELDFEElektrik alan
LIGHTLIGHTAydınlatma / solar simülatör
LOADLOADElektronik yük
SPECTRALSPECSpektral analiz
SENSESENSEPotansiyometrik / pH

Bir SMU otomatik olarak SOURCE + METER + FOUR_WIRE kabiliyetlerini sağlar; röle kartı SWITCH; termometre TEMPERATURE.

6.2 Eski (Legacy) Cihaz Rolleri

Ölçüm modülleri ve RoleBinding ayrıca cihaz-düzeyli kaba rolleri kullanır: SMU, RELAY_CONTROLLER, THERMOMETER, LOCK_IN, TEMPERATURE_CONTROLLER, DMM, DAQ, OSCILLOSCOPE. Her biri bir kabiliyet kümesine genişler (ör. SMU → {SOURCE, METER, FOUR_WIRE}).

6.3 Rol Haritalama (Role Mapping Sekmesi)

Donanım sayfasının Rol Haritalama sekmesinde, her kabiliyet rolüne envanterdeki bir cihazı atarsınız. Atama anlık kaydedilir ve "N / 11" kapsam göstergesi güncellenir. Bir cihaz silindiğinde, o cihaza işaret eden tüm roller otomatik olarak temizlenir (çözümleyici eksik bir cihaz kimliğine referans vermesin diye).

6.4 RoleBinding

Ölçüm başlatıldığında atamalar tek bir RoleBinding nesnesine çözülür: smu, relay, thermometer birincil alanları + kabiliyet erişim haritası. Bir modül ihtiyaç duyduğu bir rolü bulamazsa MissingHwRoleError (eksik rol) ile anlaşılır bir uyarı verilir.

7. Kart Tabanlı Donanım Sayfası

🎓 Ne işe yarar? — Kart Tabanlı Donanım Sayfası

Donanım sayfası, tezgahtaki her cihazı renkli bir durum rozeti taşıyan bir "kart" olarak gösterir; böylece tüm envanteri, bağlantı durumunu ve eylemleri tek bakışta görürsünüz. Bir uçuş bilgi ekranındaki "kalkışta/gecikti/iptal" tabelası gibi, her cihazın anlık halini renkle bildirir.

  • Neden yapılır: çok cihazlı bir tezgahı tek merkezden görmek ve yönetmek için.
  • Ne öğretir / ne ölçer: cihaz durumlarını (Bağlı/Beklemede/Hata/Kurulum gerekli) ve kart başına yapılabilecek işlemleri.
  • Nerede kullanılır: kurulum, izleme ve sorun giderme sırasında.

Donanım sayfası, envanteri cihaz kartları olarak gösterir ve üç sekme sunar: Genel Bakış (kartlar + özet), Rol Haritalama, Profiller.

7.1 Cihaz Kartları ve Durum Rozetleri

Her kart cihazın kimliğini, kabiliyet çiplerini ve bir durum rozetini (status pill) gösterir:

DurumAnlam
CONNECTED (Bağlı)Son yoklamada *IDN? yanıt verdi
PENDING (Beklemede)Keşfedildi, henüz yoklanmadı
IDLE (Boşta)Bilinen-boşta (açılışta varsayılan)
ERROR (Hata)Yoklama başarısız; last_error saklanır
NEEDS_SETUP (Kurulum gerekli)Tanımlanmamış seri port / profil-geri-yüklemede ulaşılamayan cihaz

Kart eylem menüsünden: Panel aç (enstrüman konsolu), Tanı / Test, Self-test, Yapılandır, Firmware güncelle, Sil, Sorun gider seçenekleri sunulur (cihaz türüne göre).

7.2 Simüle Cihaz Rozeti

Simüle cihazlar kartlarında mor zeminli beyaz bir SIM rozeti taşır. Bu rozet, kontrast (WCAG AA) için dolu-pill biçimindedir. Simüle bir cihaz gerçek bağlantı değildir: enstrüman konsolu açılsa bile session_opened sinyali yayınlanmaz ve kart asla yanıltıcı şekilde CONNECTED boyanmaz.

Simüle ekleme: Cihaz Ekle penceresindeki Simüle ekle düğmesi, bağlı kabiliyet rollerini kapsayan sabit bir mock cihaz kümesi ekler (SMU 2614B, Switch Matrix, termometre, DC kaynak, LCR, PV multiplekser, MFLI, Eurotherm, Sun EC10, K2000) — hiçbir G/Ç yapılmadan.

7.3 Cihaz Ekleme Yolları

  • Tara: arka planda salt-okunur keşif çalışır; bulunan adaylar işaretlenip eklenir.
  • Simüle ekle: sıfır-G/Ç mock cihazlar.
  • RS-232 manuel: port/baud/parity/stop + *IDN? yoklaması (§3.3).

Tarama süresince animasyonlu çubuk ve geçen-süre sayacı gösterilir; biten taramada "{n} cihaz bulundu · {s} sn" özeti yazılır.

7.4 Profil Kaydet/Yükle (Station Profiles)

🎓 Ne işe yarar? — İstasyon Profilleri (Kaydet/Yükle)

Bir kez kurduğunuz cihaz envanteri ve rol atamalarını adlandırılmış bir "istasyon profili" olarak kaydedip sonra tek tıkla geri yükleyebilirsiniz. Bir oyunun kayıt dosyası gibi; ertesi gün tezgahı sıfırdan kurmak zorunda kalmazsınız.

  • Neden yapılır: tekrarlayan kurulum işini ortadan kaldırıp tutarlılık sağlamak için.
  • Ne öğretir / ne ölçer: profilin geri yüklendiğinde hangi cihazların hazır, hangilerinin eksik (NEEDS_SETUP) olduğunu.
  • Nerede kullanılır: paylaşılan laboratuvarlar, farklı deney düzenleri arasında hızlı geçiş.

Profiller sekmesi, mevcut envanter + rol atamasını adlandırılmış bir istasyon profili olarak kaydeder/yükler (config + .yml dışa/içe aktarma). Bir profili geri yüklerken cihazlar yeniden yoklanır; ulaşılamayan beklenen cihazlar NEEDS_SETUP olarak işaretlenir (hata değil — sadece şu an veriyolunda değiller) ve eksik cihazlar adlarıyla özetlenir.

8. Cihaz Yapılandırma (Configure)

🎓 Ne işe yarar? — Cihaz Yapılandırma (Configure)

Yapılandır penceresi, bir cihazın bağlantı ayarlarını (adres, timeout, baud/parity gibi seri parametreler ve sürücüye özel seçenekler) düzenlemenizi sağlar. Bir cihazın "ayarlar" menüsü gibidir; her alan, geçersiz değer girilirse anında uyarır.

  • Neden yapılır: cihazı doğru ve kararlı haberleşecek şekilde ince ayarlamak için.
  • Ne öğretir / ne ölçer: hangi ayarların geçerli olduğunu; canlı sürücü varsa parametreler şemadan üretilir ve sınırlanır.
  • Nerede kullanılır: seri cihazları kurarken, takma ad verirken, timeout sorunlarını çözerken.

Bir cihazın Yapılandır penceresi, kimliği salt-okunur gösterir ve düzenlenebilir bağlantı alanları sunar. Donanım G/Ç yapmaz; OK'te sahibi (Donanım sayfası) ayarı uygular.

AlanTürAralık / SeçenekNot
AliasmetinserbestKullanıcı-dostu mantıksal ad; cihaz değiş-tokuşunda korunur (rol atamalarını sürdürür)
Kaynak / busmetingeçerli VISA/seriSatır-içi doğrulama; geçersizse OK pasif
Timeoutsayı500–30000 ms, adım 500Varsayılan 3000 ms
Baud rateliste9600 / 19200 / 38400 / 57600 / 115200Yalnız seri/ASRL kaynakta etkin
ParitylisteNone(N) / Even(E) / Odd(O) / Mark(M) / Space(S)Yalnız seri/ASRL
Stop bitsliste1 / 1.5 / 2Yalnız seri/ASRL

Dinamik şema formu: Cihaz için canlı bir QCoDeS sürücüsü varsa, sürücünün parametre şemasından (get_parameter_schema()) per-parametre alanlar üretilir (her biri min/max sınır doğrulamasıyla). Canlı sürücü yoksa yukarıdaki temel form gösterilir. Tüm doğrulama hataları satır-içi (kırmızı etiket) gösterilir ve hepsi temizlenene kadar OK pasiftir.

ℹ️
Not Seri olmayan bir bus'a geçince bayat baudrate düşürülür (veri gürültüsü olmasın); probe_resource zaten yalnız seri kaynakta baud uygular.

9. Enstrüman Konsolu (Instrument Console)

🎓 Ne işe yarar? — Enstrüman Konsolu

Enstrüman konsolu, bir cihaza doğrudan ham komut (ör. *IDN?) gönderip yanıtını görebileceğiniz bir terminal penceresidir. Cihazla birebir sohbet etmek gibidir; ölçüm akışına dokunmadan cihazı sınamanızı veya elle sürmenizi sağlar.

  • Neden yapılır: cihaz davranışını teşhis etmek, komutları denemek ve sorun gidermek için.
  • Ne öğretir / ne ölçer: Write/Query/Read farkını ve cihazın komutlara verdiği gerçek yanıtları.
  • Nerede kullanılır: hata ayıklama, yeni cihaz tanıma, ileri düzey manuel kontrol.

Enstrüman konsolu, NI-MAX "VISA Test Panel" tarzında, cihaz başına bağımsız bir üst-düzey penceredir. Bir cihaz IDLE iken ona komut gönderirken başka bir cihazda ölçüm sürebilir. Tüm G/Ç, GUI thread'i dışında çalışır.

Enstrüman / komut konsolu: Write, Query, Read ve günlük penceresi
Şekil. Enstrüman konsolu: cihaz başına bağımsız komut penceresi ve canlı günlük.

9.1 Genel Komut Konsolu

DenetimAçıklama
WriteKomutu yazar (yanıt beklemez)
QueryKomutu yazar + bir satır yanıt okur (Enter tuşu = Query)
ReadYalnız okuma yapar
Identify*IDN? sorgular
Read STBDurum baytını (*STB?) okur
Clear DeviceCihaz temizleme (device clear)
Hex görünümYanıtı onaltılık (hex) göster
Clear LogGünlüğü temizle (her zaman etkin)

Seçenekler satırı:

SeçenekBirimAralık / SeçenekVarsayılan
Sonlandırma (termination)\n (LF) / \r\n (CR+LF) / \r (CR) / YokLF
Okunacak bayt (bytes-to-read)bayt0 – 1.000.0000
Timeoutms100 – 300003000

9.2 Oturum Yaşam Döngüsü ve Meşgul Koruması

  • Pencere açıldığında tutulan bir oturum açılır (cihaz meşgul değilse). Ölçüm o cihazı kullanmaya başlayınca oturum bırakılır, gövde devre dışı kalır ve cihaz serbest kalınca otomatik yeniden açılır (~1 sn'lik meşgul yoklaması).
  • Gerçek bir cihaza karşı oturum başarıyla açılınca session_opened yayınlanır ve Donanım sayfasındaki kart CONNECTED boyanır (başarılı açılış canlılığın pozitif kanıtıdır). Simüle oturumda bu yayınlanmaz.

9.3 Switch Matrix (TFT Board) Konsol Gövdesi

Switch Matrix için özel bir gövde, tam komut konsolunun üstüne TFT seçim butonları ekler. Bir TFT'ye tıklayınca: (1) host'un aktif TFT'si ayarlanır (ölçüm bunu okur), (2) o TFT'nin röle komutu (None"a") konsol üzerinden yazılır ve günlüğe düşer. SCPI hızlı-eylemleri (Identify/STB/Clear Device) Switch Matrix için anlamsız olduğundan gizlenir (*IDN? bir röle komutu gibi ayrıştırılırdı).

10. Firmware Güncelleme

🎓 Ne işe yarar? — Firmware Güncelleme

Switch Matrix kartının içindeki gömülü yazılım (firmware), bir cihaz kartı üzerinden güvenle güncellenir. Bir cihazın işletim sistemini yenilemek gibidir; yazılım, yanlış kartın yanlışlıkla flash'lanmasını engelleyen güvenlik kapılarına sahiptir.

  • Neden yapılır: kart yazılımını hata düzeltmeleri/yeni özelliklerle güncel tutmak için.
  • Ne öğretir / ne ölçer: kartın doğru model olup olmadığını (*IDN? ile) ve flash'ın güvenli olup olmadığını.
  • Nerede kullanılır: ilk kurulum, kurtarma flash'ı veya firmware sürüm yükseltmesi.

Switch Matrix kartının Arduino firmware'i, bir cihaz kartı üzerinden (port o kartın bus'una kilitli) güncellenir. Böylece ilgisiz bir Arduino Mega kart yanlışlıkla flash'lanamaz.

10.1 Akış

  1. Açılışta kartın *IDN? kimliği okunur:
    • Beklenen modelle eşleşiyor → yeşil not, Flash etkin.
    • Farklı (boş olmayan) model → Flash engellenir (bu portta yanlış kart).
    • Yanıt yok (boş/eski firmware) → Flash izinli (ilk/kurtarma flash'ı).
  2. avrdude, gönderilen ön-derlenmiş .hex'i karta yazar (hedefte Arduino aracı gerekmez), canlı günlük akar.
  3. Flash sonrası *IDN? ile yeniden doğrulanır.

10.2 Kart ve Araç Parametreleri

ParametreDeğer
KartArduino Mega 2560 (atmega2560, programmer wiring, 115200 baud)
Firmware imajıtft_switchmatrix_mega2560.hex
Beklenen IDN modeliTFT-SWITCHMATRIX-16
Gönderilen firmware sürümü3.0.0

avrdude şu sırayla aranır: MIKROFAB_AVRDUDE ortam değişkeni → ürünle gelen tools/avrdude/win/ → Arduino15 paketi → PATH. Her gerçek flash bir timeout ile sınırlıdır (varsayılan 120 sn). Mock modda hiçbir alt-süreç/seri G/Ç çalışmaz; kısa bir sentetik günlük akar ve başarı raporlanır.

⚠️
Uyarı Yalnızca firmware kayıt defterinde (FIRMWARE_REGISTRY) listeli kartlar bir flash eylemi alır. Bu, flash'ı ilgisiz Arduino Mega kartlardan (ör. pv_mux 40-kanal kart) uzak tutan güvenlik kapısıdır — yanlış imaj kartı brickler'di.

11. Cihaz Profilleri (Catalog)

🎓 Ne işe yarar? — Cihaz Profilleri (Spesifikasyon Kataloğu)

Bir cihaz *IDN? ile kimliğini söyler ama doğruluk sınıfı, maksimum gerilim/akım gibi yetenek bilgilerini söylemez; bunlar makine-okunur bir katalogdan gelir. Cihazın teknik künyesi/veri sayfası gibi düşünün — çözümleyici, bir göreve en uygun cihazı bu künyelere bakarak puanlar.

  • Neden yapılır: bir rol için aday cihazlar arasından en uygununu otomatik seçebilmek için.
  • Ne öğretir / ne ölçer: cihazların kaynak/ölçüm zarflarını ve sınıf önceliklerini (bunlar güvenlik sınırı değildir).
  • Nerede kullanılır: cihaz–rol eşlemesi yapılırken, çok cihazlı tezgahta seçim kararlarında.

Kimlik (*IDN?) cihaz üzerinden okunabilir; ancak doğruluk sınıfı ve cihaz sınıfı SCPI ile sorgulanamaz. Bunlar, makine-okunur bir kayıt defterinden (specs/device_specs.json) import zamanında kurulan, model-anahtarlı bir katalogtan gelir. Çözümleyici, bir slot için aday cihazları şu girdilerle puanlar:

  • Kabiliyetler (ince yapraklar) — sert filtre.
  • Cihaz sınıfı + sınıf önceliği (precision / constant / fast tercihine göre sıralama).
  • Kaynak/ölçüm zarfları (v_max, i_max, çözünürlük) — aralık filtreleme + kalite puanlama.

Bilinmeyen bir model, envanterin bildirdiği kabiliyetlerden kurulan güvenli bir varsayılana düşer; bağlantı zamanında SCPI ile ölçülen değerler katalogun üzerine bindirilir (apply_probe). Bu sayısal değerlerin hiçbiri güvenlik sınırı değildir — güvenlik sınırları device_safety katmanında yaşar.

12. Mock (Simülasyon) Modu

🎓 Ne işe yarar? — Mock (Simülasyon) Modu

Simülasyon modu, hiçbir gerçek cihaz bağlı olmadan tüm yazılımı sahte ama gerçekçi cihazlarla çalıştırır. Uçuş simülatörü gibidir: tezgah başında olmadan keşfi, bağlantıyı, rol atamayı ve ölçümü güvenle öğrenebilir, deneyebilirsiniz.

  • Neden yapılır: donanımsız öğrenme, demo, geliştirme ve test için; gerçek cihazı riske atmadan.
  • Ne öğretir / ne ölçer: gerçek tezgahla birebir aynı arayüzü; yalnız veri, fizik-mock'tan üretilir.
  • Nerede kullanılır: eğitim, arayüzü tanıma, otomatik testler; gerçeğe geçiş tek kutucukla.

Simülasyon modu, donanımsız geliştirme, demo ve test içindir. Backend, kanonik fizik-mock MockSMUDriver'dır.

12.1 Davranış

  • Sürücü her zaman "bağlı" raporlar (connected == True) ve geçerli bir IDN döner: MOCK,<vendor>, <model>,0,0.1.
  • Tek-kanallı model channel="b" istenince ValueError fırlatır; çift-kanallı model a ve b'yi destekler.
  • send_raw makul sahte yanıtlar üretir (*IDN? → mock IDN; diğer sorgu → MOCK:0); konsol/yumuşak-panel mock'ta tam işlevseldir.
  • run_self_test anında PASS döner (test edilecek gerçek bir şey yoktur).

12.2 Mock Fizik Profilleri

🎓 Ne işe yarar? — Mock Fizik Profilleri

Simülasyondaki sahte cihaz, rastgele değil, gerçek fizik denklemlerine göre veri üretir: bir diyot diyot gibi, bir güneş hücresi ışığa tepki veren bir hücre gibi davranır. Gerçekçi bir bilgisayar oyunu motoru gibi, hangi profili seçerseniz o cihazın eğrisini üretir.

  • Neden yapılır: donanımsız ortamda anlamlı, fiziksel olarak tutarlı eğriler üretip analizleri sınamak için.
  • Ne öğretir / ne ölçer: profil tipine göre çıktıyı (TFT transfer eğrisi, diyot denklemi, güneş hücresi I–V).
  • Nerede kullanılır: analiz modüllerini test etme, eğitim materyali üretme, demo.

Mock ölçüm fiziği, profil ile yönlendirilir:

Profil tipiDavranış
None (varsayılan)TFT/FET: drain (a) çıkış/transfer eğrisi, gate (b) küçük kaçak akımı
diodeFiziksel diyot/Schottky tek-diyot denklemi (I0, n, R_s, R_sh, T_K) + gürültü
solar_cellTek-diyot güneş hücresi: I = Iph − I_dark(V); ışınıma orantılı Iph
ℹ️
Girdi → Formül → Çıktı Güneş hücresi için Girdi (V, Iph, diyot parametreleri) → I = Iph·(E/1000) − I_dark(V) → Çıktı akım (A). Burada E ışınım (W/m²), 1000 W/m² referans (1-Sun) alınır. Akım-kaynağı modunda hedef akıma karşılık gelen gerilim ikiye-bölme (bisection) ile çözülür.

12.3 Simüle Rozeti

Tüm simüle cihazlar/oturumlar arayüzde açıkça SIM olarak etiketlenir (§7.2) ve gerçek bağlantı gibi davranmaz. Mock'tan gerçeğe geçerken yalnızca Simülasyon kutusunu kaldırır ve geçerli adres girersiniz; arayüz aynıdır.

13. Güvenli Bağlantı, Timeout ve Güvenli Durum

🎓 Ne işe yarar? — Güvenli Bağlantı, Timeout ve Güvenli Durum

Donanımla konuşan her kod, değişmez güvenlik kurallarına uyar: her komut bir zaman sınırıyla (timeout) yapılır ve hata/kapanış anında cihazlar güvenli duruma alınır (önce çıkış kapatılır, sonra röleler açılır, sonra bağlantı kesilir). Bir laboratuvarda "çıkarken gazı kapat" kuralı gibi, anormal durumlarda bile numune ve cihaz korunur.

  • Neden yapılır: donanımı, numuneyi ve kullanıcıyı kilitlenme/aşırı sürüm gibi risklerden korumak için.
  • Ne öğretir / ne ölçer: timeout sınırlarını ve güvenli-durum sırasını; hataların yutulmayıp yüzeye çıktığını.
  • Nerede kullanılır: her ölçüm oturumunda; özellikle iptal, hata veya beklenmedik kapanışta.

Donanımla konuşan tüm kod, değişmez güvenlik kurallarına uyar (cihaz-haberleşme standardı):

13.1 Timeout Zorunlu

Cihaza giden her okuma/yazma/sorgu sınırlı bir timeout ile yapılır; sonsuz/bloklayan bekleme yoktur. Önemli sınırlar:

YerBirimDeğer
VISA kaynak açma (keşif)ms1500
Keşif yoklama duvar-saatis8.0
Varsayılan VISA timeoutms3000
Konsol timeout aralığıms100 – 30000
Switch Matrix okumas2.0
Firmware flashs120
Ayarlar sayfası: Donanım sekmesi ve visa_timeout_ms gibi timeout değerleri
Şekil. Ayarlar > Donanım: per-cihaz visa_timeout_ms ve genel timeout değerleri burada yönetilir.

13.2 Güvenli Durum Korunur

Hata, iptal veya kapanışta çıkışlar/biaslar güvenli değere alınır. Sıra:

  1. SMU output OFF (output_all_off),
  2. Switch Matrix tüm röleleri kapat (a),
  3. Bağlantıların güvenli kapatılması.

Bu sıra yalnız Qt closeEvent'te değil, yorumlayıcı çıkışında (atexit) ve yakalanmamış istisnada da (excepthook) çalışır; böylece anormal sonlanmalar da kapsanır.

13.3 Mock Mod Bozulmaz

Gerçek G/Ç ekleyen her yol mock karşılığını korur; testler donanım olmadan geçer.

13.4 Hata Yoklaması

SCPI/TSP işlemlerinden sonra cihaz hata/durum kuyruğu kontrol edilir; hatalar yutulmaz, anlamlı şekilde yüzeye çıkar (ör. read_error_queue, Switch Matrix drain_errors).

⚠️
Uyarı secure_connection alanı (TLS/SSH) şu an bir yer tutucudur; gelecekteki güvenli taşıma için ayrılmıştır ve mevcut sürümde varsayılan olarak kapalıdır.

Özet

Bu bölümde şunları ele aldık: çok-üretici cihaz desteği ve *IDN? model eşleştirme; VISA arabirimleri, otomatik/periyodik keşif ve timeout korumaları; üç SMU kurulum modu; Switch Matrix röle kartı (token + SCPI, tüm-kapat a, yol doğrulama); cihaz rolleri ve atama; kart tabanlı envanter, durum rozetleri ve simüle rozeti; cihaz yapılandırma; enstrüman konsolu; firmware güncelleme; cihaz profilleri/katalog; mock fizik modu; ve güvenli-durum/timeout ilkeleri. Tüm bu özellikler önce simülasyonda, sonra aynı arayüzle gerçek tezgâhta kullanılabilir.