天天看點

上拉下拉複位SMBus

1.首先,MCU的IO包括RST端的内電路中都有鉗位設計,分别對電源和地,門限是MOS管的導通壓降,約0.2V左右,低于普通矽整流二極管的導通結壓降0.7V。正是鉗位設計的引入,MCU準許輸入電位略高于電源、略低于地,一般在0.5V左右(看器件手冊)但不能過分,因為造成損害的是電流,壓差過大(由電流等效)會超過鉗位元件的載流能力,IO也就玩完了。

2.IO保護的關鍵——鉗位元件的選擇問題,比如在工業現場運作的485網絡中,因長線感應等接口晶片的IO常常可能遭受高于VCC、低于GND的電壓沖擊,該鉗位二極管必須使用肖特基管,隻有注明那個二極管是肖特基管的時候,才能确定樓主擁有且能實作“保護”的意圖。

3.三極管基極下拉電阻作用:

防止三極管受噪聲信号的影響而産生誤動作,使半導體截止更可靠!三極管的基極不能出現懸空,當輸入信号不确定時(如輸入信号為高阻态時),加下拉電阻,就能使有效接地。特别是GPIO連接配接此基極的時候,一般在GPIO所在IC剛剛上電初始化的時候,此GPIO的内部也處于一種上電狀态,很不穩定,容易産生噪聲,引起誤動作!加此電阻,可消除此影響(如果出現一尖脈沖電平,由于時間比較短,是以這個電壓很容易被電阻拉低;如果高電平的時間比較長,那就不能拉低了,也就是正常高電平時沒有影響)!但是電阻不能過小,影響洩漏電流!(過小則會有較大的電流由電阻流入地)

當三極管開關作用時,ON和OFF時間越短越好,為了防止在OFF時,因半導體中的殘留電荷引起的時間滞後,在B,E之間加一個R起到放電作用。高頻,深飽和時特别要注意。(次要)

三極管基級加電阻主要是為了設定一個偏置電壓,這樣就不會出現信号的失真(這在輸入信号有交流時極其重要:如當溫度上升時,Ic将增大,導緻Ie也會增大,那麼在Re上的壓降也增大,而Vbe=Vb-IeRe,而Vb此時基本上被下拉電阻保持住,是以使Vbe減小。當然這個減小對0.7v來說是很小的,是從微觀上去分析的。Vbe的減小,使Ib減小,結果牽制了Ic的增加,進而使Ic基本恒定。這也是回報控制的原理)。而且同時還是為了防止輸入電流過大,加個電阻可以分一部分電流,這樣就不會讓大電流直接流入三極管而損壞其.至于為了放電,一般是在MOS管中才用,三極管這個問題不大.

如果三極管不接下拉電阻,就不能設定偏置電壓,這樣會産生輸入信号的交越失真,并且輸 入電流過大的時候會導緻大電流直接流入三極管而損壞其.三極管我們分析的時候有時候總是認為它的内部是有二極管的效應的,但這樣是錯誤的認識,應該更正.而MOS管同樣需要一個偏制電壓,而下拉電阻可以起到這樣的作用,我們一般稱之為GATE偏制.由于MOS管内部的三個級是彼此絕緣的,是以自然會有電容效應在,當信号消失的時候内部的等效電容可以通過下拉電阻進行放電.而且也是必須的,否則會邏輯出錯.

3.接下拉電阻時還要注意:下拉電阻阻值不能太大,不然會導緻流入基級的電流太小.如果是高速開關信号,盡量在下拉電阻上并連一個電容以提高高速性能。

4.複位按鈕一般都是安裝在操作面闆上,有較長的傳輸線,容易引起電磁感應幹擾。按鈕傳輸線應采用雙絞線(具有抑制電磁感應幹擾的性能),并遠離交流用電裝置。在印刷電路闆上,單片機複位端口處并聯0.01-0.1uF的高頻電容,或配置使密特電路,将提高對串入噪聲的抑制能力。

5.在單片機系統中,某些I/O接口晶片的複位端口與單片機的複位端口往往連在一起,即統一複位。接口晶片由于生産廠家不同,複位時間也稍有不同;複位線較長而又較大的分布電容,導緻這些接口的複位過程滞後于單片機。工程實踐表明,當單片機複位結束立即對這些I/O晶片進行初始化操作時,往往導緻失敗。是以,當單片機進入0000H位址後,首先執行1-10ms的軟體延時,然後再對這些I/O晶片進行初始化。

1.SMBus 是 System Management Bus 的縮寫,譯為系統管理總線,SMBus是一種二線制串行總線,它大部分基于I2C總線規範。和 I2C一樣,SMBus不需增加額外引腳,建立該總線主要是為了增加新的功能特性,但隻工作在100kHz且專門面向智能電池管理應用。它工作在主/從模式:主器件提供時鐘,在其發起一次傳輸時提供一個起始位,在其終止一次傳輸時提供一個停止位;從器件擁有一個唯一的7或10位從器件位址。

2.SMBus與I2C總線之間在時序特性上存在一些差别。首先,SMBus需要一定資料保持時間,而 I2C總線則是從内部延長資料保持時間。SMBus具有逾時功能,是以當SCL太低而超過35 ms時,從器件将複位正在進行的通信。相反,I2C采用硬體複位。SMBus具有一種警報響應位址(ARA),是以當從器件産生一個中斷時,它不會馬上清除中斷,而是一直保持到其收到一個由主器件發送的含有其位址的ARA為止。SMBus隻工作在從10kHz到最高100kHz。最低工作頻率10kHz是由SMBus逾時功能決定的。

3.SMBus的資料傳輸率為100kbps,雖然速度較慢,卻以其結構簡潔造價低廉的特點,成為業界普遍歡迎的接口标準。Windows中顯示的各種裝置的制造商名稱和型号等資訊,都是通過SMBus總線收集的。主機闆監控系統中傳送各種傳感器的測量結果,以及BIOS向監控晶片發送指令,也是利用SMBus實作的。

4.下面為CRC16的計算過程,其中生成多項式為:X16+X15+X2+1:

1.設定CRC寄存器,并給其指派FFFF(hex)。

2.将資料的第一個8-bit字元與16位CRC寄存器的低8位進行異或,并把結果存入CRC寄存器。

3.CRC寄存器向右移一位,MSB補零,移出并檢查LSB。

4.如果LSB為0,重複第三步;若LSB為1,CRC寄存器與生成多項式碼相異或。

5.重複第3與第4步直到8次移位全部完成。此時一個8-bit資料處理完畢。

6.重複第2至第5步直到所有資料全部處理完成。

7.最終CRC寄存器的内容即為CRC值。

繼續閱讀