<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機不起振原因分析

          單片機不起振原因分析

          作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
          1、單片機晶振不起振原因分析
          遇到單片機晶振不起振是常見現(xiàn)象,那么引起晶振不起振的原因有哪些呢?
          (1) PCB板布線錯誤;
          (2)單片機質(zhì)量有問題;
          (3)晶振質(zhì)量有問題;
          (4)負載電容或匹配電容與晶振不匹配或者電容質(zhì)量有問題;
          (5) PCB板受潮,導(dǎo)致阻抗失配而不能起振;
          (6)晶振電路的走線過長;
          (7)晶振兩腳之間有走線;
          (8)外圍電路的影響。
          解決方案,建議按如下方法逐個排除故障:
          (1)排除電路錯誤的可能性,因此你可以用相應(yīng)型號單片機的推薦電路進行比較。
          (2)排除外圍元件不良的可能性,因為外圍零件無非為電阻,電容,你很容易鑒別是否為良品。
          (3)排除晶振為停振品的可能性,因為你不會只試了一二個晶振。
          (4)試著改換晶體兩端的電容,也許晶振就能起振了,電容的大小請參考晶振的使用說明。
          (5)在PCB布線時晶振電路的走線應(yīng)盡量短且盡可能靠近IC,杜絕在晶振兩腳間走線。
          2、單片機晶振電路中兩個微調(diào)電容不對稱會怎樣?相差多少會使頻率怎樣變化?我在檢測無線鼠標的接受模塊時,發(fā)現(xiàn)其頻率總是慢慢變化(就是一直不松探頭的手,發(fā)現(xiàn)頻率慢慢變?。┚д袷切碌模?/div>
          答:電容不對稱也不會引起頻率的漂移,你說的頻率漂移可能是因為晶振的電容的容量很不穩(wěn)定引起的,你可以換了試,換兩電容不難,要不就是你的晶振的穩(wěn)定性太差了,或者你測量的方法有問題.
          3、51單片機時鐘電路用12MHZ的晶振時那電容的值是怎樣得出來的?拿內(nèi)部時鐘電路來說明吧!
          答:其實這兩個電容沒人能夠解釋清楚到底怎么選值,因為22pF實在是太小了。
          這個要說只能說和內(nèi)部的振蕩電路自身特性有關(guān)系,搭配使用,用來校正波形,沒有人去深究它到底為什么就是這么大的值。
          4、晶振為何被要求緊挨著IC,單片機晶振不起振?
          答:原因如下:
          晶振是通過電激勵來產(chǎn)生固定頻率的機械振動,而振動又會產(chǎn)生電流反饋給電路,電路接到反饋 后進行信號放大,再次用放大的電信號來激勵晶振機械振動,晶振再將振動產(chǎn)生的電流反饋給電路,如此這般。當電路中的激勵電信號和晶振的標稱頻率相同時,電 路就能輸出信號強大,頻率穩(wěn)定的正弦波。整形電路再將正弦波變成方波送到數(shù)字電路中供其使用。
          問題在于晶振的輸出能力有限,它僅僅輸出以毫瓦為單位的電能量。在IC(集成電路) 內(nèi)部,通過放大器將這個信號放大幾百倍甚至上千倍才能正常使用。
          晶振和IC間一般是通過銅走線相連的,這根走線可以看成一段導(dǎo)線或數(shù)段導(dǎo)線,導(dǎo)線在切割磁力線的時候會產(chǎn)生電流,導(dǎo)線越長,產(chǎn)生的電流越強。
          現(xiàn)實中,磁力線不常見,電磁波卻到處都是,例如:無線廣播發(fā)射、電視塔發(fā)射、手機通訊等等。晶振和IC之間的連線就變成了接收天線,它越長,接收的信號就 越強,產(chǎn)生的電能量就越強,直到接收到的電信號強度超過或接近晶振產(chǎn)生的信號強度時,IC內(nèi)的放大電路輸出的將不再是固定頻率的方波了,而是亂七八糟的信 號,導(dǎo)致數(shù)字電路無法同步工作而出錯。
          所以,畫PCB(電路板)的時候,晶振離它的放大電路(IC管腳)越近越好。
          5、單片機晶振與速度的疑問,執(zhí)行一條指令的周期不是由晶振決定的嗎。那么比如51單片機和MSP430,給51接高速晶振,430接低速的,是不是51跑的要快?是不是速度單片機速度僅僅與晶振有關(guān),關(guān)鍵是單片機能不能支持那么大的晶振?我的理解對嗎?
          答:每個單片機的速度是受到內(nèi)部邏輯門電平跳變速度的的。
          你說的沒錯,對于一個51,給他用更高的晶振,速度會快些。
          但是對于高級的單片機就不一樣了。高級單片機內(nèi)部,一般都是有頻率控制寄存器的,所以,簡單的增加晶振,可能達到單片機的極限,導(dǎo)致跑飛。
          6、單片機的運行速度和晶振大小的關(guān)系,若單片機的最高工作頻率是40M,晶振是否可以選擇24M或更高,但不超過40M,這樣單片機的運行速度是否大增?長期在此工作頻率下對單片機是否有不良影響?單片機對晶振的選擇的原則是怎樣的?謝謝!
          答:當然是有影響的,單片機的工作速度越快,功耗也越大,受干擾也會越厲害,總之最高能跑40M的,跑不超過40M的是沒有問題的,只是對相關(guān)的技術(shù)(如PCB的設(shè)計元件的選取等)會高去很多.
          7、請問:有什么方法可以確定某一款單片機在某一大小的晶振下是否能正常工作?
          答:晶振好比單片機的心臟
          晶振選擇太高不太合適,具體晶振上限是多少,恐怕測不出來,只能按照人家單片機的要求,一般STC系列單片機上限是35M或40M,stc單憑上寫的有,如STC11F16XE 35I-LQFP44G其中35I就是晶振最高35M的工業(yè)級芯片。
          超過上限會出現(xiàn)什么樣的問題,沒有測試過,一般晶振選擇12M的比較多,如果選擇STC 1T指令的,就相當于12*12=144M的晶振。如果用于串口通信,建議選用11.0592M的或22.184M,選擇晶振最主要還是參照人家的說明書。
          8、4個AT89C51單片機能否用一個12M的晶振使其都正常工作?一個采用內(nèi)部時鐘方式,其余三個用外部方式...那我四個都用內(nèi)部方式可以不(將4個單片機都并聯(lián)在一個晶振上)?
          答:可以,其中一個正常接晶振,他的XTAL2輸出接到另外三個的XTAL1輸入上。
          9、AT89C51單片機4兆的晶振能不能啟動?
          答:當然可以,看看datasheet吧,我估計1M的都可以
          還有的單片機如2051可能還可以低
          臺系日系有的可以到32.768kHz
          10、89c51單片機的復(fù)位電路中常采用12MHZ的晶振,實際上市場上稍小于12MHZ,為什么呢?急求
          答:需要串口通訊時一般是用11.0582MHZ的,這樣波特率才好算。
          用12MHZ的工作周期就容易計算。
          21、單片機晶振上電不起振,但是手碰一下晶振就起振了,為什么?
          答:看看晶振配的電容焊了沒有,值有沒有錯誤?
          22、怎么判斷單片機晶振是否起振呀?急急!!
          答:最簡單是用示波器,另外你可以看一下電源是否正常
          23、怎樣判斷單片機外部晶振有沒有起振?我的STC89C52單片機本來是好好的后來不行了,我換了個晶振就好了。但是過了幾個小時后又不行了,是怎么回事。還有就是怎樣判斷晶振是否起振?
          答: 第一點:先換一塊單片機試試,問題還在則排除單片機;
          第二點:可能是虛焊造成的,這點要注意;
          第三點:我用STC89C52也碰到過類似的問題,換了塊晶振就OK了,好像STC起振不橡AT89S52那么順。
          其實對于STC89C52可以直接看30腳(ALE),接個燈,起振一下子就能看出來了。24、我用msp430的單片機,可是外部的兩個晶振總是無法起振,沒用。請問是什么原因?線路連接是對的,32768HZ沒有接外接電容。8M的晶振接56PF的電容。
          答:32.768K的晶振接兩個30P的電容試試,還有8M的晶振的電容也換成30P的。
          25、MSP430單片機8MHz的晶振,計數(shù)器TAR增加一次 需要多少時間?
          答:MSP430單片機的晶振頻率可以自己設(shè)置的,是使用外部晶振還是內(nèi)部振蕩器做始終源,還有MCLK,SMCLK,ACLK的選擇,分不分頻等都有影響 我現(xiàn)在有點忘了,不過你可以看看文檔,計數(shù)器是使用mclk,smclk,ACLK的哪一個,在判斷是否分頻設(shè)置,一般在1Mhz TAR加一次是1us,那么8M是1/8us自己算吧。
          26、如果MSP430單片機不初始化晶振,那么單片機用什么作為時鐘?DCO的頻率大概是多少呢?
          答:內(nèi)部DCO,不同系列的DCO默認頻率不同,要參看手冊。4系列的好像是1M。
          27、沒有程序的空白單片機,外部晶振能起振么?
          答:沒有內(nèi)部晶振的單片機,外部晶振可以起振,如傳統(tǒng)類MS51系列單片機有內(nèi)部晶振的單片機,外部晶振不會起振,需要對外部晶振進行配置后才會起振,如果不對外部晶振進行配置仍使用內(nèi)部晶振,如silicon lab系列c8051f單片機
          28、dspic30f6014單片機能夠燒寫程序,卻不能運行。晶振沒有起振(換過了也沒用),復(fù)位電壓測量為5v,電源正常,(是成熟產(chǎn)品,只是偶爾會出現(xiàn)這種情況)
          答:01、重新檢討振蕩電路所用零件(晶振與電容)及晶振附近的pcb布局
          02、檢查配置位是否正確
          03、還可找FAE諮詢
          29、為什么at89c52 P1.0輸出2.5v電壓,單片機好像未工作,晶振波形是不規(guī)則的正弦波可不可以?線路板沒有達到預(yù)想效果,發(fā)光二極管一直亮,感覺還是單片機的問題,P1.0輸出2.5v電壓,看門狗用的X5045,不知何原因找了好幾天了。
          答:將看門狗拿掉,暫時做成最小系統(tǒng),既只有電源、8952、晶振和兩只30P左右的電容。
          1.將P1.0口置1,測試該口的電壓是否在2.5V以上;
          2.將P1.0口置0,測試改口電壓是否約為0V。
          是的話就是OK的,否則就要看看電源電壓、晶振、8952了。電源電壓是5+、-0.25V,且紋波一定要小
          30、單片機測試晶振電壓時會對工作狀態(tài)有影響嗎?
          我的51單片機從P2口連了兩個發(fā)光二極管,正常時是只有一個亮。我插上電源后,結(jié)果兩個都亮了。于是我就測量晶振電壓,但是我黑表筆接地,紅表筆一碰晶振引腳時,兩個發(fā)光二極管中,就有一個會熄滅,一放開就兩個都亮。
          每次剛插電源的時候,兩個晶振引腳分別時1.9V,1.5v,但是稍微過了一會兒,兩個引腳就分別成了5.4V和0.02V了。
          答:會有一點影響,對頻率會有影響,嚴重的會導(dǎo)致晶振停振。因為你萬用表一加上去相當于在振蕩電路上又并上或串上了分部電容電阻電感等,就影響到了原來電路的狀態(tài)。
          31、制作max232下載單片機,工作電壓都正常,要外加晶振嘛?c
          答:當然要加,如果沒有外加晶振,那么單片機的時鐘電路就沒有了,導(dǎo)致單片機串口就不能進行數(shù)據(jù)傳輸了,最終你這個下載器具就不能下載程序了。
          32、靜態(tài)工作點對晶振振蕩有什么影響?
          答:具有高Q值的晶振對放大器的選擇并不敏感,但在過驅(qū)動時很容易產(chǎn)生頻率漂移(甚至可能損壞)。影響振蕩器工作的環(huán)境因素有:電磁干擾(EMI)、機械震動與沖擊
          33、我用的是外置4M晶振加兩個30pf瓷片電容,用示波器測頻率正常,但峰峰值有的板子是6V左右,有的是3V左右,板子功能正常但我怕電壓低的不穩(wěn)定,不知道 晶振測試有沒有依據(jù)可查或相關(guān)資料,多謝大家啦?。?!
          答: 沒關(guān)系的.峰峰值不同是電容和晶振的參數(shù)離散導(dǎo)致的.只要正常工作,就可以.單片機里面都有放大處理的,它們都是放大展成方波來使用的.峰峰值多高都沒用.
          你那電壓高的倒應(yīng)該看看,pic一般工作電壓是5V,怎么振蕩器會進來這么高電壓?我一般都是在CPU晶振輸入端串聯(lián)一個電阻使用的.
          34、我用的是外置4M晶振加兩個30pf瓷片電容,用示波器測頻率正常,但峰峰值有的板子是6V左右,有的是3V左右,板子功能正常但我怕電壓低的不穩(wěn)定,不知道 晶振測試有沒有依據(jù)可查或相關(guān)資料,多謝大家啦?。?!
          答: 沒關(guān)系的.峰峰值不同是電容和晶振的參數(shù)離散導(dǎo)致的.只要正常工作,就可以.單片機里面都有放大處理的,它們都是放大展成方波來使用的.峰峰值多高都沒用.
          你那電壓高的倒應(yīng)該看看,pic一般工作電壓是5V,怎么振蕩器會進來這么高電壓?
          我一般都是在CPU晶振輸入端串聯(lián)一個電阻使用的.
          35、pic單片機AD采樣程序 有源晶振應(yīng)該如何選擇?
          如果使用片內(nèi)振蕩器,是不是必須要外接諧振器?
          我如果外接有源晶振,選用那種頻率較好?我聽說4MHz的并不理想。外接20MHz的可以嗎?這個是怎樣選擇的啊。
          答:用片內(nèi)振蕩器不需要外接諧振器。
          如果你的單片機只做AD采集轉(zhuǎn)換,那就不需要太高的頻率,內(nèi)部4Mhz振蕩器即可。
          但如果還要做其他對時序要求較嚴的工作比如說總線通信,那就要考慮使用外部振蕩器,因為內(nèi)部振蕩器的誤差太大(即使校準了還有1%的誤差) ,而用多大的晶振要看工作要求,頻率越高單片機功耗越大。但只做AD的話,4M夠了。
          36、大家好。我想問個pic單片機的問題:晶振頻率不一樣。編譯器自己帶的庫延時函數(shù)延時一樣嗎?比如晶振20MHZ delayus(1)和5MHZ delayus(1)是同是1us嗎?
          答: 應(yīng)該一樣.
          因為頻率不一樣,編譯時候你的設(shè)置不一樣,編譯時候自然計算需要的倍數(shù),參數(shù)就不一樣了.
          但可能因為頻率除不盡的緣故,有一點點差異
          37、單片機外接24M的晶振,1ms的基準延時函數(shù)用C語言怎么寫?
          答:定時器T0 工作方式1 晶振頻率24MHz
          定時器最大定時時間(us):32768
          定時器最小定時時間(us):0.5
          void T0_init(void) //定時器初始化
          {
          TMOD |= 0x01;
          TH0= 0xf8; //設(shè)置定時器計數(shù)初值,定時1000us
          TL0= 0x33;
          IE|= 0x82; //打開總中斷
          TR0= 1; //啟動定時器
          }
          void T0_intservice(void) interrupt 1 //定時器中斷服務(wù)
          {
          TH0= 0xf8; //重裝載定時器計數(shù)初值
          TL0= 0x33;
          //這里可以插入其他處理程序,不會影響定時器工作
          }
          38、單片機24M晶振可以測量20MHZ的信號嗎
          答 :要看用什么單片機了。有些單片機執(zhí)行一條指令需要兩個機器周期以上的。那肯定測量不到20MHZ的信號。
          39、用單片機的晶振電路產(chǎn)生信號和555計時器產(chǎn)生信號哪個更好?
          答:一般來說,晶振的穩(wěn)定性好于RC震蕩器。
          40、用什么電路能讓32768的晶振產(chǎn)生32768的方波信號?
          答 :用或非門,也可以完成 振蕩和方波整形 的任務(wù)。電路如插圖所示。
          圖中的晶振,原為38000Hz,如改為32768Hz,也完全正??梢怨ぷ?。


          關(guān)鍵詞: 單片機不起振原

          評論


          推薦視頻

          更多>>

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();