上拉下拉复位SMBus
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值。
總結
以上是生活随笔為你收集整理的上拉下拉复位SMBus的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机初学者编程经常会碰到的问题及处理办
- 下一篇: 小程序授权登录流程详情步骤