我聽說配置為輸入(相對於默認輸出)時,將引腳懸空在MCU上對引腳不利,並最終可能導致其過早失效。這是真的? N.B.在我的實例中,由於輸入視頻信號,該引腳懸空在0.3V至1.3V之間。當以3.3V工作時,有時會落在0.8V-2.0V的無人區域內。
我聽說配置為輸入(相對於默認輸出)時,將引腳懸空在MCU上對引腳不利,並最終可能導致其過早失效。這是真的? N.B.在我的實例中,由於輸入視頻信號,該引腳懸空在0.3V至1.3V之間。當以3.3V工作時,有時會落在0.8V-2.0V的無人區域內。
問題:
將引腳配置為輸入懸空是很危險的,因為您不能確定引腳的狀態。就像您提到的那樣,由於電路的原因,引腳有時處於低電平,有時處於無人區,有時可能變為高電平。
結果:
本質上,浮動輸入肯定會導致芯片操作不穩定或不可預測的行為。我注意到有些芯片只是通過將我的手靠近板子而凍結(我沒有戴ESD腕帶),或者有些板子每次啟動時都會有不同的啟動行為。
原因:
這僅僅是因為如果該引腳上存在外部噪聲,則該引腳會振盪,這會耗盡功率,因為CMOS邏輯門在切換狀態時會消耗功率。
解決方案:
當今大多數micros也具有內部上拉電路,因此可以防止這種情況的發生。另一種選擇是將引腳配置為輸出,以免影響內部電路。 >
這比僅僅處於未知狀態或不必要地切換要差一些。如今的數字電路大多為CMOS類型,晶體管在高低側同時進行開關。當我們有清晰的1和0時,它們要么截止要么飽和,這是晶體管進入的兩個最有效狀態。它用於模擬放大器,但效率卻不如極限,這意味著浪費的功率與晶體管中的熱量一樣浪費。在最壞的情況下,高端晶體管和低端晶體管都會洩漏(因為該引腳實際上既不是高電平也不是低電平),然後當它們試圖將內部狀態都驅動為高電平時,它們會結合在一起以在芯片內產生明顯的電流和低-可能在連鎖反應中對下一個門也是如此。即使沒有電源,熱量也可能成為問題。 IntelliChick的解決方案仍然適用。
對於也連接到ADC的引腳,某些微控制器提供了禁用數字輸入緩衝器的功能,以防止此問題和洩漏使信號失真。
實際上,主要作用是增加功耗。如果某個引腳實際上是懸空的,而不是連接到某個不確定的電壓源,則可能會發生振盪,這不僅會增加功耗,還會將噪聲引入系統的其他部分。任何能夠用於ADC或比較器輸入的引腳都將具有斷開數字輸入緩衝器的功能,以避免出現此問題。 (在AVR上為DIDR,在PIC上為ADCON1 / ANSEL)
通常使輸入引腳處於懸空狀態是一個壞主意,因為這可能會導致:
a)功能性問題-輸入狀態未知,切換(例如,可能會觸髮帶有未定義ISR的中斷,從而使處理器掛起) )
b)功耗增加-最有可能的輸入門類似於CMOS反相器。通過這種結構,當輸入距離任一供電軌足夠遠時(例如,在半電源時),大量的交叉電流將持續不斷地流過。
c)如果交叉電流將流過,則稱為熱載流子注入實際上可能會縮短設備壽命。輸入門可能設計為僅用於正常切換而不是連續導通,因此設備可能會發生災難性故障。但是請注意,可能需要將設備置於這種狀態下數百小時才能在高溫下發生。
請注意a)和b)是最有可能遇到的實際問題。至於c),發生問題的可能性較小,但為什麼要冒險?
根據任何EMI,輸入將在0和1之間切換。我不確定這是否會導致輸入失敗,但是會導致使用更多的功率,因為從0到1到0的過渡。
將其設置為輸出並完成操作
如果輸入懸空,則某些高速CMOS器件可能會被破壞,但人們將看到的最常見問題是電流消耗的增加。在PIC系列單片機上,每個浮動引腳的額外電流約為數百微安。不足以導致設備損壞,但足以嚴重影響電池壽命,否則會消耗5uA的電流。有些芯片具有禁用數字輸入的選項。如果輸入被禁用,則可以自由浮動。