मैं अपने सुपरमिक्रो X7DWA मदरबोर्ड पर Winbond W83793 chip से तापमान डेटा पढ़ने के लिए OpenHardwareMonitor प्राप्त करने का प्रयास कर रहा हूं। समस्या यह है कि मेरे पास कोई निम्न स्तर का प्रोग्रामिंग अनुभव नहीं है, और उपलब्ध दस्तावेज़ों को ऑनलाइन तापमान तक पहुंचने के तरीके में पर्याप्त प्रतीत नहीं होता है।क्या आप Winbond W83793 चिप से तापमान को पढ़ने में मेरी सहायता के लिए निम्न संकेतों को एक साथ जोड़ सकते हैं?
हालांकि, इस समस्या पर काम करने वाले महीने में, मैंने कुछ मूल्यों और निम्न-स्तरीय विधियों की खोज की है जो मेरी समस्या को हल करने की कुंजी हो सकती हैं। मुझे बस यह पता लगाने की जरूरत है कि मैं जो चाहता हूं उसे पाने के लिए उनका उपयोग कैसे करें। यही वह जगह है जहां मैं आपको बदलता हूं, क्योंकि आप समझ सकते हैं कि इस जानकारी का अर्थ क्या है, और इसे कैसे लागू करें, मेरे विपरीत। मैंने पहले ही पोकिंग के अपने उचित हिस्से को पूरा कर लिया है, जिसके परिणामस्वरूप कई नीली स्क्रीन और कंप्यूटर पुनरारंभ होता है। पर्याप्त अनुमान है, मुझे इन सुरागों को एकसाथ टुकड़ा करने की जरूरत है। यहाँ मैं अब तक क्या पता है:
चिप से पढ़ने के लिए, मैं किसी भी तरह, SMBus में पहुंचना होगा क्योंकि है कि इस तरह के CPUID HWMonitor के रूप में जिस तरह से निगरानी कार्यक्रम,, जानकारी हो रही है। जहां तक मुझे पता है, OpenHardwareMonitor, SMBus तक पहुंचने के लिए इसमें कोई कोड नहीं है, यही कारण है कि यह चिप से नहीं पढ़ा जा सकता है। हालांकि, OpenHardwareMonitor में निम्न विधियों को Ring0 class में शामिल किया गया है, जो यह अन्य चिप्स से जानकारी तक पहुंचने के लिए उपयोग करता है। मैं अपने लाभ के लिए इन तरीकों का उपयोग करने में सक्षम हो सकता है:
void Ring0.WriteIOPort(uint port, byte value); byte Ring0.ReadIOPort(uint port);
अन्य जानकारी के अलावा, HWMonitor मेरे लिए Winbond W83793 चिप के बारे में निम्नलिखित जानकारी की रिपोर्ट जब मैं एक रिपोर्ट को सहेजने:
रजिस्टर अंतरिक्ष : SMBus, आधार का पता = 0x01100
SMBus अनुरोध: चैनल 0x0, पता 0x2F
यह टी की तरह दिखता है हेस महत्वपूर्ण मूल्य हैं, लेकिन मुझे नहीं पता कि उनका क्या मतलब है, और मैं उन्हें ऊपर की रिंग 0 विधियों के साथ कैसे उपयोग कर सकता हूं। हम्म ... इतने सारे सुराग। एचडब्ल्यू मॉनिटर के अन्य मूल्य मुझे दिखाते हैं कि वास्तविक वोल्टेज, तापमान और प्रशंसक गति, और हेक्साडेसिमल मानों की एक सरणी है जो चिप पर कहीं से डेटा का प्रतिनिधित्व करती है, जिसे मैं यहां देखना चाहूंगा यदि आप इसे देखना चाहते हैं।
अंत में, W83793 डाटा शीट में, पेज 53 पर (यदि आप दस्तावेज़ खुला है), यहां तापमान के हेक्स में पते मैंने पढ़ा करना चाहते हैं (मेरा मानना है कि):
TD1 पढ़ा गया - बैंक 0 पता 1C
TD2 पढ़ा गया - बैंक 0 पता -1 डी
TD3 पढ़ा गया - बैंक 0 पता 1E
TD4 पढ़ा गया - बैंक 0 पता 1F
कम बिट पढ़ा गया - बैंक 0 पता 22
TR1 पढ़ा गया - बैंक 0 पता 20
TR2 पढ़ा गया - बैंक 0 पता 21
है बस इतना ही मैं अब तक पता ।ओपनहार्डवेयर मॉनिटर, W83793 चिप, और रिंग 0 कोड ऊपर दिए गए लिंक के माध्यम से उपलब्ध हैं। जैसा कि मैंने पहले कहा था, मैं एक महीने के लिए इस पर रहा हूं, और मैं अभी तक इस रहस्य को हल करने में सक्षम नहीं हूं। मुझे आशा है आप मेरी मदद कर सकते हैं। यह सारी जानकारी थोड़ा डरावनी प्रतीत हो सकती है, लेकिन मुझे यकीन है कि यह किसी निम्न स्तर के प्रोग्रामिंग अनुभव वाले किसी व्यक्ति को समझ जाएगा।
मेरे प्रश्न को संक्षेप में सारांशित करने के लिए ऊपर दिए गए संकेतों का उपयोग करें ताकि यह पता चल सके कि W83793 चिप से तापमान को पढ़ने के लिए OpenHardwareMonitor को कैसे प्राप्त किया जाए। मुझे OpenHardwareMonitor में चिप बनाने के विवरण की आवश्यकता नहीं है। मेरे पास पहले से ही एक कक्षा तैयार है। मुझे बस रिंग 0 कमांड लिखने के लिए अनुक्रम और प्रारूप की आवश्यकता है, अगर मुझे ऐसा करने की ज़रूरत है।
संपादित करें: मुझे कुछ और जानकारी मिली है। मैं HWMonitor से एक SMBus डिवाइस रिपोर्ट मुद्रित, और अन्य बातों के अलावा, मैं इस लाइन है, यहाँ शामिल है क्योंकि यह 0x2F का कहना है:
एसएमबी डिवाइस: मैं/हे = 0x1100, पता 0x2F, चैनल = 0
इसका मतलब यह होगा कि मुझे किसी भी तरह चिप के पते के साथ I/O के पते को गठबंधन करने की आवश्यकता है, जो 0x2F प्रतीत होता है। मैंने उन्हें एक साथ जोड़ने की कोशिश की लेकिन फिर मुझे सभी तापमान रीडिंग 255 होने के लिए मिल गया, इसलिए यह सही अनुमान नहीं था।
यह बेहद सहायक है, धन्यवाद! मैंने आपके द्वारा निर्दिष्ट तरीके से उन विधियों का उपयोग करने का प्रयास किया, लेकिन पिछले दो (20 और 21) के लिए पहले 4 तापमान (1 सी -1 एफ) और 255 के लिए सभी 0 के साथ समाप्त हो गया। लेकिन मैंने एक नई खोज की है (उपरोक्त प्रश्न पर मेरे संपादन की जांच करें)। ऐसा लगता है कि 0x1100 चिप का पता नहीं है लेकिन एसएमबीस चैनल (या कुछ) का पता है, जबकि 0x2F चिप का पता है। मै गलत हो सकता हूँ। मैंने अनुमानित चिप पते पर आधार पता जोड़ने का प्रयास किया लेकिन परिणाम अभी भी गलत थे। कोई विचार? – Dalal
मुझे एसएमबीस सुराग याद आया; मेरी समझ यह है कि आपको उस SMBus नियंत्रक को निर्देश देने की आवश्यकता है जिसे आप किसी विशिष्ट डिवाइस पर किसी विशिष्ट पते से पढ़ना या लिखना चाहते हैं। एसएमबीस विनिर्देश (http://smbus.org/specs/) यह निर्धारित करता है कि एसएमबीस पर डिवाइस किस प्रकार बोली जाएंगे और जवाब देंगे लेकिन अनिवार्य रूप से परिभाषित नहीं करता है कि कैसे एक एसएमबीस नियंत्रक को x86 दुनिया में एक सीपीयू से बात करनी चाहिए। तो खोजने के लिए अगली चीज़ आपके मदरबोर्ड के एसएमबीस नियंत्रक के लिए डेटाशीट है, या यह पता लगाने के लिए कि क्या वे सामान्य हैं कि कोई पुराना डेटाशीट करेगा। मेरे पहले दो गूगल्स ने काम नहीं किया है, लेकिन मैं देख रहा हूं। – Tommy
मुझे इंटेल 5400 एमसीएच (http://www.intel.com/Assets/PDF/datasheet/318610.pdf) के लिए डेटा शीट मिली, जो मेरे मदरबोर्ड के लिए 'मेमोरी कंट्रोलर हब' प्रतीत होता है, मेरे अनुसार मदरबोर्ड की डेटा शीट। मुझे यकीन नहीं है कि क्या हमें यही चाहिए। – Dalal