Supermicro X7DWA anakartımdaki Winbond W83793 chip sıcaklık verilerini okumak için OpenHardwareMonitor almaya çalışıyorum. Sorun şu ki, düşük seviyeli bir programlama deneyimim yok ve mevcut çevrimiçi dokümanlar, sıcaklıklara nasıl erişileceğini açıklamakta yeterli görünmüyor. Ancak, bu sorun üzerinde çalıştığım ay boyunca, sorunumu çözmenin anahtarı olabilecek birkaç değer ve düşük düzeydeki yöntemleri keşfettim. Sadece istediğimi almak için onları nasıl kullanacağımı bulmalıyım. İşte sana dönüyorum, çünkü bu bilginin ne anlama geldiğini ve nasıl uygulanacağını bana anlayabiliyorsun. Çok sayıda mavi ekran ve bilgisayar yeniden başlatılmasıyla sonuçlanan, etrafta dolanmamdaki payımı çoktan yaptım. Yeterli tahmin, bu ipuçlarını birlikte eklemem gerek. İşte ben bugüne kadar bildiklerimiz: böyle CPUID HWMonitor olarak yolu izleme programları, bilgi alıyorsanız çünküWinbond W83793 yongasından çıkan sıcaklıkları okumama yardımcı olmak için aşağıdaki ipuçlarını bir araya getirebilir misiniz?
yonga okumak için, bir şekilde, SMBus erişmek gerekir. OpenHardwareMonitor, bildiğim kadarıyla, SMBus'a erişmek için herhangi bir kod içermiyor, bu yüzden de çipten okunamayabilir. Ancak, OpenHardwareMonitor, diğer çiplerden gelen bilgilere erişmek için kullandığı Ring0 class'da aşağıdaki yöntemlere sahiptir.
Kayıt Alanı: Benim için avantaj bu yöntemleri kullanmak mümkün olabilir: Bir raporu kaydetmek, diğer bilgiler arasında
void Ring0.WriteIOPort(uint port, byte value); byte Ring0.ReadIOPort(uint port);
, HWMonitör bana Winbond W83793 çipi hakkında aşağıdaki bilgileri raporlar : SMBus, taban adresi = 0x01100
SMBus isteği: kanal 0X0, adres 0x2F
Bu t benzeyen hese önemli değerlerdir, ancak tam olarak ne anlama geldiklerini ve yukarıdaki Ring0 yöntemleriyle nasıl kullanabileceğimi bilmiyorum. Hmm ... pek çok ipucu. HWMonitor'un bana gösterdiği diğer değerler, gerçek voltajlar, sıcaklıklar ve fan hızları ve çipin üzerindeki bir yerden gelen verileri temsil eden onaltılık bir değer dizisi olup, bunlara bakmak isterseniz burada yeniden üreteceğim. (Açık belge varsa)
Son olarak, W83793 bilgi formunda, sayfa 53, burada sıcaklıkların hex adresleri (sanırım) Ben okumak istiyorum şunlardır:
TD1 Okuma - Banka 0 Adres 1C
TD2 Okuma - Banka 0 Adres 1D
TD3 Okuma - Banka 0 Adres 1E
TD4 Okuma - Banka 0 Adres 1F
Düşük bit Okuma - Banka 0 Adres 22
TR1 Okuma - Banka 0 Adres 20
TR2 Okuma - olan Banka 0 Adres 21
tüm biliyorum defa .OpenHardwareMonitor, W83793 yongası ve Ring0 kodu, yukarıda verilen linkler aracılığıyla kullanılabilir. Daha önce de söylediğim gibi, bir aydır çalışıyorum ve henüz bu gizemi çözemedim. Umarım bana yardım edebilirsin. Tüm bu bilgiler biraz korkutucu görünebilir, ama eminim ki, bazı düşük seviyeli programlama deneyimlerine sahip biri için mantıklı olacaktır.
Sorumu özetlersek, OpenHardwareMonitor'un W83793 yongası dışındaki sıcaklıkları okumasını öğrenmek için yukarıda verilen ipuçlarını kullanın. OpenHardwareMonitor'da bir çip oluşturma konusunda detaylara ihtiyacım yok. Zaten hazır bir sınıfım var. Ring0 komutlarını yazmak için sıraya ve formata ihtiyacım var, eğer yapmam gereken buysa.
DÜZENLEME: Daha fazla bilgi buldum. Ben HWMonitor bir SMBus cihaz raporunu basılı ve diğer şeylerin yanı sıra, bu çizgiyi var, 0x2F diyor çünkü buraya dahil:
SMB cihazı: I/O = 0x1100, adres 0x2F, kanal = 0
Bu, bir şekilde I/O adreslerini çipin adresiyle birleştirmek zorunda olduğum anlamına gelir, ki bu 0x2F gibi görünüyor. Onları toplamaya çalıştım ama sonra tüm sıcaklık okumalarını 255 olarak aldım, bu doğru tahmin değildi.
Bu çok yararlı, teşekkürler! Bu yöntemleri belirttiğiniz şekilde kullanmaya çalıştım, ancak ilk 4 sıcaklık (1C - 1F) ve son ikisi için 255 (20 ve 21) için tüm 0'larla bitti. Ancak yeni bir keşif yaptım (yukarıdaki soruya yaptığım düzenlemeleri kontrol et). 0x1100 çipin adresi değil, SMBus kanalının (ya da bir şeyin) adresi değil, çipin 0x2F adresidir. Yanlış olabilirim. Temel adresi sözde çip adresine eklemeyi denedim, ancak sonuçlar hala yanlıştı. Herhangi bir fikir? – Dalal
SMBus ipucunu özledim; Benim anlayışım, okumak istediğiniz SMBus denetleyicisine belirli bir aygıttaki belirli bir adrese yazmanız veya yazmanız gerektiğidir. SMBus şartname (http://smbus.org/specs/) bir SMBus kontrolör x86 dünyasında bir CPU konuşmak nasıl tanımlamıyor kaçınılmaz SMBus üzerinde cihazlar sözlü olarak nasıl öngören ve yanıt verir ama. Bu durumda, bir sonraki ana kartınızın SMBus denetleyicisine ait bir veri sayfası ya da herhangi bir eski veri sayfasının yapacağı kadar genel olup olmadıklarını öğrenmek. İlk iki Googles çalışmadı, ama bakmaya devam edeceğim. – Tommy
Ben göre, benim anakart için bir 'Bellek Denetleyici Hub' gibi görünüyor, Intel 5400 MCH (http://www.intel.com/Assets/PDF/datasheet/318610.pdf) için bir fiş bulundu benim anakartın veri sayfası. İhtiyacımız olan şey bu olduğundan emin değilim. – Dalal