這有可能是主板的問題,也有可能是電源的問題,那么先從電源入手,檢測一下電源的輸出電壓。首先我們從電腦機箱里面把電源拆下來。
拔掉主板電源插頭
拔掉各種電源插頭 硬盤 主板 cpu 等
拆下電源后,用導線把20/24槽接頭中的綠色和黑色兩條線短接,如下圖
然后把電源插頭插入220V市電中,如果電源風扇轉動,說明電源開啟了,這時候就可以使用萬用表來測量電源輸出的電壓了。
把萬用表的檔位調整到直流電壓檔,萬用表的黑色表筆接20/24槽接頭中的黑色,有很多黑色槽,我們人選一個就可以。使用萬用表紅色表筆量分別測量不同插槽,橙色槽為+3.3V,紅色槽為+5V,黃色槽為+12V,紫色槽為+5V,藍色槽為-12V,白色槽為-5V,如果測量結果和如上標準想打不大為正常。如下圖測量:
然后硬盤、光驅等的電壓,也可以使用上邊時候的方法來測量。
第 7 節,我們討論了借助于單片機和傳感器,電腦也能獲取環境參數,例如室內的溫度和濕度等信息。
不過不知道大家注意到沒有,環境的溫濕度應該是無時無刻都在變化的,而我們使用單片機采集的溫濕度值卻是離散的(大約1秒個溫度值),這其實就是將模擬信息數字化的過程。
相當一部分單片機都帶有 ADC 外設,ADC 的功能就是將模擬信息數字化。恰好我使用的這款 51 單片機就有 ADC 功能,本節將介紹該模塊。目的是讓我們的電腦具備測量電壓的能力。
ADC 的全稱是 Analog-to-Digital Converter,即“模擬到數字轉換器”,它可以將連續不斷變化的模擬信號轉換為離散的數字信號,供計算機進一步處理。
將模擬信號數字化之后,才能使用計算機處理之,因為計算機本身就是數字電路組成的運算機器。
其實說將模擬信號“轉換”為離散信號并不合適,更恰當的說法應該是 ADC 從模擬信號中取出“一部分”信息,請看下面右圖的黑點即為 ADC 采集的數字信號。
這么看來,ADC的重要參數有兩個:采樣頻率和精度。采樣頻率決定了 ADC 從模擬信號中取數據的“密集”程度,一般來說肯定越密集越好,因為這樣更能還原信號的特性。精度則決定了取數據的時的精確性。
以我的 51 單片機為例,它有 8 路 10 位的 ADC,采樣頻率為 250K/s。所以它能從每秒的模擬信號中取出 25 萬個數字信號,也就相當于在坐標系中用 25 萬個點描繪出 1 秒的信號。
精度為 10 位,也就是說它利用 1~1024(2的十次方)的數字表示信號,我的 51 單片機 ADC 的參考電壓信號為 5V,所以它能夠表示的最小電壓為 5V/1024 約為 5mV。
現在知道了什么是 ADC,怎么使用它呢?請繼續往下看。我使用的這款 51 單片機自帶的 ADC 模塊結構如下圖所示:
可以看出,最終得到的數字信號其實是經過逐次比較的來的。下圖是 ADC 相關寄存器的信息:
所以,在 keil4 中可以寫出如下C語言代碼:
sfr ADC_CONTR=0xbc; sfr ADC_RES=0xbd; // 高 8 位結果 sfr ADC_LOW2=0xbe; // 低 2 位結果 sfr P1ASF=0x9d; //
我的這款 51 單片機的 ADC 轉換通道與 P1 口復用,上電復位后 P1 口為弱上拉型 IO 口,我們可以通過 C語言編程設置這 8 路的任意一路做 ADC 轉換。
void adc_init() { P1ASF=0xff; // 8 個通道都開 ADC_RES=0; ADC_CONTR=ADC_POWER|ADC_SPEEDLL; delay_about_100ms(2); }
上面的C語言代碼中,我們將 P1ASF 賦值為 0xff,表示 P1 的 8 個 IO 口都可以作為 ADC 采樣口。然后延時一段時間,等待 ADC 模塊初始化。
因為我使用的這款 51 單片機是一個 8 位單片機,傳送 10 位的 ADC 值需要兩次,當 AUXR1.1/ADRJ=0 時,ADC 轉換結果寄存器格式如下:
當 AUXR1.1/ADRJ=1 時,ADC 轉換結果寄存器格式如下:
這么看來,獲取一次 ADC 的采樣值高 8 位的 C語言代碼可以如下寫:
// 獲取高 8 位的 adc 值 BYTE get_adc_h8bit(BYTE ch) { ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch; _nop_();_nop_();_nop_();_nop_(); // 等待轉換完成 while(!(ADC_CONTR & ADC_FLAG)); ADC_CONTR &=~ADC_FLAG; return ADC_RES; }
然后將之與余下 2 位 ADC 值組合一下,就得到了一次完整的ADC采樣值:
// 獲取 10 位 adc WORD get_adc_res(BYTE ch) { WORD res=0; res=get_adc_h8bit(ch); res <<=2; res |=ADC_LOW2; return res; }
上面一小部分介紹了單片機的 ADC 模塊使用方法,結合之前介紹的單片機的串口 printf,我們已經能夠把外界的電壓值轉換為 1~1024 之間的數值并傳送到電腦了,但是如何將之轉換為電壓值呢?
其實很簡單,我的這款單片機 ADC 模塊的參考電壓為 5V,假設 ADC 采集的數值為 n,那么對應的電壓值為:
U=n*5V / 1024
如此一來,C語言控制程序可以如下寫:
void main() { init_uart(9600); adc_init(); while(1){ delay_about_100ms(2); printf("adc: %0.2f\r\n", 5.0*((float)get_adc_res(0))/1024.0); } }
如上圖,為了方便測試,將可變電阻和定電阻串聯,將單片機的 P10 口與中間相連,即可在電腦端的串口調試助手得到電壓信息:
使用電壓表測量該點的電壓值,發現的確在 3.05V 附近:
現在調節可變電阻,發現串口傳來的電壓值也隨之改變:
至此就實現了使用電腦測量電壓,相信大家也應該明白了 ADC 的功能。
歡迎在評論區一起討論,質疑。文章都是手打原創,每天最淺顯的介紹C語言、linux等嵌入式開發,喜歡我的文章就關注一波吧,可以看到最新更新和之前的文章哦。
在電腦維修中,經常會用萬用表來測量電腦主機中的一些電源電壓、系統信號測試點的對地阻抗,電源、信號的導通狀態以及各類電子器件的阻抗、電氣參數等。電腦故障診斷的信息來源,絕大部分時候都是賴于萬用表的。對筆記本電腦的故障診斷、維修一樣,也是離不開萬用表的使用。那么怎么用萬用表測主板呢?下面小編給大家介紹一下用萬用表檢測主板的方法。
怎么用萬用表測主板 圖1
第一,測量CPU供電上管判斷是否損壞,紅表筆接小12V,黑表筆接上管控制極,哪個為0就干哪個!(福祿克17b+可判斷為短路)
第二,測量CPU供電下管判斷是否損壞,紅表筆接地,黑表筆接下管控制極,哪個為0就干哪個!(福祿克17b+可判斷為短路)
第三,CPU供電上管擊穿的,首先各大供電打值,注意橋供電是否值偏低(10以下肯定不正常,自己工具誤差多少要有數!),上管擊穿容易燒北橋。
怎么用萬用表測主板 圖2
第四、外觀檢查、打值非常重要,二修的主板一定要打值。有些被換過電容的主板要檢查一下更換容量、耐壓是否正確,還要注意更換電容時是否被搞斷線,是否有被刮破絕緣漆連到電容腳。
第五,不觸發的主板首先強制觸發看是否電源保護(其實應該先打值),如果不保護按照時序查待機條件,觸發信號。
第六、上電瞬間掉電的主板,首先拔掉小12V的CPU供電不掉電的檢查CPU供電部分。注意小12V對地為0的拆12V電容。檢查上下管驅動芯片是否正常。
第七、拔掉12V仍然瞬間掉電的主板,首先強制上電(其實應該3V、5V、12V打值),用手摸IO、網卡、聲卡、橋、專用芯片等等。溫度高的拆掉。溫度沒有明顯偏高的測量電源3V、5V、12V是否哪路電壓被略微拉低,然后可調電源燒機。實在不行依次拆掉那路供電所到的芯片。
第八、供電、時鐘、復位正常不跑碼的用示波器抓(八腳)BIOS一腳的片選(32腳)BIOS的13、14、15、17和23腳是否有波形(32腳的抓23波形LFRAME#)。有波形的先刷BIOS。沒有波形的(如果有圖紙測量ADS#是否有1-0-1跳變)無圖紙檢測各項供電,注意六小供電。壓橋,775的壓CPU座等等。
第九、一定要注意,有些AMD的主板CMOS電池沒電會引起不跑碼或者跑亂碼。
怎么用萬用表測主板 圖3
第十、Intel775芯片組的主板(915、945等變形的主板),總線供電正常沒有CPU供電的。可以嘗試按壓CPU座看是否有反應,如果有變化測量VRM芯片的VID組合是否有高低高組合。如果全為高的加焊CPU座。
第十一、intel六系列、有核心顯卡的CPU時,核心顯卡不輸出獨立顯卡正常,首先刷BIOS可以解決很大一部分。如果不行再詳細排查。
第十二、千萬別低估了電容懷孕的問題。有時候在南橋或者北橋附件的一個電解電容懷孕就會造成(花屏、死機、掉電等等現象)。在CPU周圍會造成(滾動條后藍屏、死機、重啟等現象)。電容濾波不良還會造成過壓保護(內存供電電容不正常就會造成內存高壓保護,致使全板無供電故障)使用示波器單次觸發功能可以抓到過壓保護瞬間。在維修PWM電路使用示波器可以快速判斷芯片故障、反饋故障還是濾波不良)
怎么用萬用表測主板 圖4
第十三、自動上電的主板,只要短接開關針持續4秒左右可以關機的是正常的。(部分主板CMOS信息被復位首次通電會自動上電,還有一些是上次沒有正常關機的再次通電也會自動上電,只要短接開關針4-6秒可以關機不用理會)如果不正常檢查綠線到IO之間元元器件和IO。
第十四、部分主板采用專用芯片的如MS-X、W83304D等芯片保護會造成掉電(有時會造成無待機電壓)檢查是否有MOS管附近發黃、冒錫珠。嘗試更換MOS管或者專用芯片。
怎么用萬用表測主板 圖5
第十五、查圖紙時常用的CPU供電EN高電平開啟信號名稱有:EN、ENLL、DVD、VR_ENABLE、OUTEN、ENABLE、SHDN#、DIS等等,低電平一般使用:SD。高電平1V以上的屬于正常。
第十六、關于時鐘的測量(主板工作不正常千萬不要忽略時鐘),100MHz以上的0.4V 100MHz以下的1.6V。
intel雙橋的主板時鐘由時鐘芯片發出。
intel單橋5系列的由時鐘芯片發給橋再由橋輸出各路時鐘,橋會自己發出一個33MHz的時鐘給自己。
intel6系列的主板橋集成時鐘芯片,由橋發出各路時鐘。
AMD雙橋的主板測量時鐘要注意,PCI插槽所測到的時鐘(33MHz)由南橋發出,時鐘芯片管理告訴時鐘(南北橋、PCI-E、網卡等)。
AMD單橋主板橋內部集成時鐘芯片,所有時鐘也是均由橋發出。nvidia單橋的主板集成時鐘芯片,均由橋發出。
第十七、更換橋后一定要先打值再上電。更換橋后造成的其他故障最好檢查一下是否在夾取芯片時搞掉件。(建議焊接IO芯片、更換南北橋前先拍照留念)
怎么用萬用表測主板 圖6
第十八、測量各大供電正常后仍然無復位或者不跑碼等等問題的,一定要檢查以下幾個部分:
1、內存負載供電(常見芯片:RT9173,RT9199,W83310,UP7711,KRT9405,FP6137,APL5336等)電壓為內存主供電的一半。
2、1155,1156,1366的PLL供電,電壓1.8V一般采用運算放大器+MOS管降壓方式,缺少這個供電會不跑嗎掉電等。
3、1155的VCCSA供電,電壓0.9V一般采用運算放大器+MOS管降壓方式,缺少這個供電一般會造成不跑碼。
4、AMD的VDDA供電,電壓2.5V一般采用1117穩壓器降壓方式,缺少這個供電會造成不跑碼、無CPU供電等等。
5、AM3的VDDR_1.2V供電,電壓1.2V一般采用運算放大器+MOS管降壓方式,這個是AM3的CPU使用的一個內存控制器供電。
6、部分南橋的第二個待機電壓,待機時在南橋周邊某個(沒圖紙找不到)電容測量,無此電壓通常會造成無復位等,nvidia南橋有一個1.5/1.2/1.1V(+1.5V_DUAL/+1.2V_DUAL/+1.1V_DUAL)的待機電壓,AMD(ATI)南橋有一個1.8/1.2/1.1V(S5_1.8V/S5_1.2V/VDDCR_11_S)的待機電壓,VIA南橋有一個2.5V(VSUS25)的待機電壓,SIS南橋有一個1.8V(IVDD_AUX)的待機電壓。