1. 程式人生 > >與微控制器研發密不可分的常見的晶振21個問題解析

與微控制器研發密不可分的常見的晶振21個問題解析

在初學51微控制器的時候,總是伴隨很多有關與晶振的問題,其實晶振就是如同人的心臟,是血液的是脈搏,把微控制器的晶振問題搞明白了,51微控制器的其他問題迎刃而解……

有關51微控制器有關晶振的問題一併總結出來,希望對學51的童鞋來說能有幫助。

一,為什麼51微控制器愛用11.0592MHZ晶振?

其一:因為它能夠準確地劃分成時鐘頻率,與UART(通用非同步接收器/傳送器)量常見的波特率相關。特別是較高的波特率(19600,19200),不管多麼古怪的值,這些晶振都是準確,常被使用的。

其二:用11.0592晶振的原因是51微控制器的定時器導致的。用51微控制器的定時器做波特率發生器時,如果用11.0592Mhz的晶振,根 據公式算下來需要定時器設定的值都是整數;如果用12Mhz晶振,則波特率都是有偏差的,比如9600,用定時器取0XFD,實際波特率10000,一般 波特率偏差在4%左右都是可以的,所以也還能用STC90C516 晶振12M 波特率9600 ,倍數時誤差率6.99%,不倍數時誤差率8.51%,資料肯定會出錯。 這也就是串列埠通訊時大家喜歡用11.0592MHz晶振的原因,在波特率倍速時,最高可達到57600,誤差率0.00%。 用12MHz,最高也就4800,而且有0.16%誤差率,但在允許範圍,所以沒多大影響。

二,在設計51微控制器系統PCB時,晶振為何被要求緊挨著微控制器?

原因如下:晶振是通過電激勵來產生固定頻率的機械振動,而振動又會產生電流反饋給電路,電路接到反饋 後進行訊號放大,再次用放大的電訊號來激勵晶振機械振動,晶振再將振動產生的電流反饋給電路,如此這般。當電路中的激勵電訊號和晶振的標稱頻率相同時,電 路就能輸出訊號強大,頻率穩定的正弦波。整形電路再將正弦波變成方波送到數位電路中供其使用。

問題在於晶振的輸出能力有限,它僅僅輸出以毫瓦為單位的電能量。在 IC(積體電路) 內部,通過放大器將這個訊號放大幾百倍甚至上千倍才能正常使用。

晶振和 IC 間一般是通過銅走線相連的,這根走線可以看成一段導線或數段導線,導線在切割磁力線的時候會產生電流,導線越長,產生的電流越強。現實中,磁力線不常見, 電磁波卻到處都是,例如:無線廣播發射、電視塔發射、手機通訊等等。晶振和IC之間的連線就變成了接收天線,它越長,接收的訊號就 越強,產生的電能量就越強,直到接收到的電訊號強度超過或接近晶振產生的訊號強度時,IC內的放大電路輸出的將不再是固定頻率的方波了,而是亂七八糟的信 號,導致數位電路無法同步工作而出錯。

所以,畫PCB(電路板)的時候,晶振離它的放大電路(IC管腳)越近越好。

三,微控制器電路晶振不起振原因分析

遇到微控制器晶振不起振是常見現象,那麼引起晶振不起振的原因有哪些呢?

① PCB板佈線錯誤;②微控制器質量有問題;③ 晶振質量有問題;

④負載電容或匹配電容與晶振不匹配或者電容質量有問題;⑤PCB板受潮,導致阻抗失配而不能起振;⑥ 晶振電路的走線過長;

⑦晶振兩腳之間有走線;⑧外圍電路的影響。

解決方案,建議按如下方法逐個排除故障:

① 排除電路錯誤的可能性,因此可以用相應型號微控制器的推薦電路進行比較。② 排除外圍元件不良的可能性,因為外圍零件無非為電阻,電容,很容易鑑別是否為良品。③ 排除晶振為停振品的可能性,因為不會只試了一二個晶振。④試著改換晶體兩端的電容,也許晶振就能起振了,電容的大小請參考晶振的使用說明。

⑤在PCB佈線時晶振電路的走線應儘量短且儘可能靠近IC,杜絕在晶振兩腳間走線。

四,51微控制器時鐘電路用12MHZ的晶振時那電容的值是怎樣得出來的?拿內部時鐘電路來說明吧!

其實這兩個電容沒人能夠解釋清楚到底怎麼選值,因為22pF實在是太小了。這個要說只能說和內部的振盪電路自身特性有關係,搭配使用,用來校正波形,沒有人去深究它到底為什麼就是這麼大的值。

19.89c52微控制器如果不接晶振會有什麼後果?

微控制器不工作了 程式無法燒入……等等

五,微控制器晶振電路中兩個微調電容不對稱會怎樣?相差多少會使頻率怎樣變化?在檢測無線滑鼠的接受模組時,發現其頻率總是慢慢變化(就是一直不鬆探頭的手,發現頻率慢慢變小)晶振是新的!

電容不對稱也不會引起頻率的漂移,說的頻率漂移可能是因為晶振的電容的容量很不穩定引起的,可以換了試,換兩電容不難,要不就是的晶振的穩定性太差了,或者測量的方法有問題.

六,微控制器晶振與速度的疑問,執行一條指令的週期不是由晶振決定的嗎。那麼比如51微控制器和MSP430,給51接高速晶振,430接低速的,是不是51跑的要快?是不是速度微控制器速度僅僅與晶振有關,關鍵是微控制器能不能支援那麼大的晶振?

每個微控制器的速度是受到內部邏輯閘電平跳變速度限制的。兩個晶片同時使用同樣的晶振,比如12M的。因為AVR是RISC指令集,它在同樣外部晶振頻率下,比51要快。

比如,51最快能接40M,AVR是16M的晶振。

STC89C52大都用12MHz晶振,但由於其12個時鐘週期才是一個機器週期,相當於其主頻只有1MHz。

MSP430採用RISC精簡指令集, 430微控制器若採用內部DCO震盪可達21MHz主頻。單個時鐘週期就可以執行一條指令,相同晶振,速度較51快12倍。

對於一個51,給他用更高的晶振,速度會快些。但是對於高階的微控制器就不一樣了。高階微控制器內部,一般都是有頻率控制暫存器的,所以,簡單的增加晶振,可能達到微控制器的極限,導致跑飛。

七,請問:有什麼方法可以確定某一款微控制器在某一大小的晶振下是否能正常工作?

晶振選擇太高不太合適,具體晶振上限是多少,恐怕測不出來,只能按照人家微控制器的要求,一般STC系列微控制器上限是35M或40M,stc單憑上寫的有,如STC11F16XE 35I-LQFP44G其中35I就是晶振最高35M的工業級晶片。

超過上限會出現什麼樣的問題,沒有測試過,一般晶振選擇12M的比較多,如果選擇STC 1T指令的,就相當於12*12=144M的晶振。如果用於串列埠通訊,建議選用11.0592M的或22.184M,選擇晶振最主要還是參照人家的說明書。

八,4個AT89C51微控制器能否用一個12M的晶振使其都正常工作?一個採用內部時鐘方式,其餘三個用外部方式...那四個都用內部方式可以不(將4個微控制器都並聯在一個晶振上)?

可以,其中一個正常接晶振,他的XTAL2輸出接到另外三個的XTAL1輸入上。

九,微控制器的執行速度和晶振大小的關係,若微控制器的最高工作頻率是40M,晶振是否可以選擇24M或更高,但不超過40M,這樣微控制器的執行速度是否大增?長期在此工作頻率下對微控制器是否有不良影響?微控制器對晶振的選擇的原則是怎樣的?

當然是有影響的,微控制器的工作速度越快,功耗也越大,受干擾也會越厲害,總之最高能跑40M的,跑不超過40M的是沒有問題的,只是對相關的技術(如PCB的設計元件的選取等)會高去很多.

十,89c51微控制器的復位電路中常採用12MHZ的晶振,實際上市場上稍小於12MHZ,為什麼呢?

答:需要串列埠通訊時一般是用11.0582MHZ的,這樣波特率才好算。

用12MHZ的工作週期就容易計算。

十一,微控制器晶振上電不起振,但是手碰一下晶振就起振了,為什麼?怎麼判斷微控制器晶振是否起振呀?

看看晶振配的電容焊了沒有,值有沒有錯誤?

最簡單是用示波器,另外可以看一下電源是否正常。

十二,怎樣判斷微控制器外部晶振有沒有起振?的STC89C52微控制器本來是好好的後來不行了,換了個晶振就好了。但是過了幾個小時後又不行了,是怎麼回事。還有就是怎樣判斷晶振是否起振?

①先換一塊微控制器試試,問題還在則排除微控制器;②可能是虛焊造成的,這點要注意;③用STC89C52也碰到過類似的問題,換了塊晶振就OK 了,好像STC起振不橡AT89S52那麼順。其實對於STC89C52可以直接看30腳(ALE),接個燈,起振一下子就能看出來了。

十三,51微控制器晶振上接的電容大小該如何選擇?是晶振越大,電容值也要大一些嗎,一般常用多大的。有人說常用的從15-33pf,具體如何選擇效果最好?比如分別用一個6M和12M的晶振,用多大電容更合適?

15-33pf都可以 們一般用的是15P和30P 晶振大小影響不大 們常用的4M 和12M 以及11.0592M和20M 24M 們都用的 30P 微控制器內部有相應的整形電路 們不比擔心

23.給51微控制器12M晶振接2200pF電容會怎麼樣?電路圖裡貌似是22pF的,但是沒有22pF的...接2200pF會不會不正常工作?

不可以,晶體會不工作的。15-33p是合理範圍。可以試試看,對微控制器不會有損壞。

十四,沒有程式的空白微控制器,外部晶振能起振麼?

沒有內部晶振的微控制器,外部晶振可以起振,如傳統類MS51系列微控制器有內部晶振的微控制器,外部晶振不會起振,需要對外部晶振進行配置後才會起振,如果不對外部晶振進行配置仍使用內部晶振,如silicon lab系列C8051F020微控制器

十五,為什麼at89c52 P1.0輸出2.5v電壓,微控制器好像未工作,晶振波形是不規則的正弦波可不可以?線路板沒有達到預想效果,發光二極體一直亮,感覺還是微控制器的問題,P1.0輸出2.5v電壓,看門狗用的X5045。怎麼回事?

將看門狗拿掉,暫時做成最小系統,既只有電源、8952、晶振和兩隻30P左右的電容。

①將P1.0口置1,測試該口的電壓是否在2.5V以上;

②將P1.0口置0,測試改口電壓是否約為0V。

是的話就是OK的,否則就要看看電源電壓、晶振、8952了。電源電壓是5+、-0.25V,且紋波一定要小

十六,製作max232下載微控制器,工作電壓都正常,要外加晶振嘛?

當然要加,如果沒有外加晶振,那麼微控制器的時鐘電路就沒有了,導致微控制器串列埠就不能進行資料傳輸了,最終這個下載器具就不能下載程式了。

十七,若89c52微控制器使用外接晶振,應如何設定?

晶振的兩個管腳各接一個20~30pf的電容後分別接入微控制器的XTAL1和XTAL2,兩個電容的另一端並接後接地即可,不再需要任何設定

十八,晶振的原理,如何產生正弦訊號的,詳細一點,從電路方面分析?

晶體可以等效為一個電感,與裡面的電容形成振盪迴路,能量從電感慢慢到電容,再從電容慢慢到電感,周而復始形成振盪。正半周是電容的充放電過程,負半周是電感的充放電過程。

十九,現在要用52微控制器做一個交通燈電路。要求是紅燈,綠燈30s,黃燈3s。迴圈變化。那麼外界晶振怎樣選擇?單指令週期多少比較合適?圖中外接的兩個電容的作用是什麼?大小多少合適?

如果選擇晶振的話,那兩個電容值可以選擇:30加減10PF左右的(頻率在0~33MHZ之間);

如果選擇陶瓷晶振的話,電容值可以選擇:40加減10PF左右的(頻率在1.2~12MHZ)振盪器應儘量靠近電容。指令週期是可以算的,這個是有公式的!

二十,89c52微控制器 晶振頻率才12兆,太小了,怎樣能改大晶振頻率?

外接18.432或者24MHz的晶振。或者換4T的W77E58微控制器,這樣相當於把工作頻率提高3倍。或者換1T的DS89C4XX     微控制器,這相當於把工作頻率提高8倍!用1T的STC12C5A60S2微控制器也有這樣的效果。

二十一,微控制器不能正常工作,晶振問題?如何去檢查晶振正常還是不正常?另外看到說晶振跟兩個小電容要離得很近,幾乎都沒剪引腳(就是買回來多長就多長)就插上去了,這個也有關係嗎?

用萬用表測量微控制器連線晶振的兩個引腳,正常起振的狀態下電壓大概比供電電壓的1/2略低一些,如果其中一個或全部引腳為電源電壓或零就表明沒起振。那個引腳長些一般不會有什麼影響,相比之下接地更關鍵些,兩個諧振電容接地端到微控制器的電源地要儘量近些。