假設:
- 未連接任何外部電路(除了編程電路,我們認為是正確的)。
- uC正常。
- 通過破壞,我的意思是釋放死亡的藍色煙霧,而不是在軟件中使用它。
- 這是一個“正常的” uC。不是某些非常奇怪的百萬分之一的專用設備。
有人見過類似的事情嗎?怎麼可能?
背景:
我參加過一次聚會的發言人,我說可以(但不是很難)做到這一點,其他一些人也同意他。我從未見過這種情況發生,當我問他們如何可能時,我沒有得到真正的答案。我現在真的很好奇,很想獲得一些反饋。
有人見過類似的事情嗎?怎麼可能?
我參加過一次聚會的發言人,我說可以(但不是很難)做到這一點,其他一些人也同意他。我從未見過這種情況發生,當我問他們如何可能時,我沒有得到真正的答案。我現在真的很好奇,很想獲得一些反饋。
當然,您可以使用 HCF指令!
也就是說,我說如果沒有任何外部電路(除了電源等),這是不可能的。
即使包括一些非故意的錯誤連接也可能不會切斷它:如果將所有gpios綁在電源軌上,則將它們設置為輸出(連接到相反的電源軌)會消耗很多功率。 gpio引腳可能具有短路保護,因此不會發生任何有害的事情。
設計一個隨意破壞芯片的外部電路在我看來也不是一件容易的事。首先想到的是需要一個較高電壓的電源,一個nmos和一個電阻器:
模擬該電路 –使用 CircuitLab sup>創建的原理圖,其中:
操作很簡單:如果微控制器釋放GPIOx M1,繼續,Vcc上升,您的芯片著火。請注意,這是一個糟糕的設置,例如,必須在 之後將HV打開,您要特別確保GPIOx牢固接地。某些晶體管可能不喜歡某些-5V Vgs,依此類推...但是您得到了圖像。
免責聲明:supercat首先在評論中表示。
實際上,不可能物理破壞大多數MCU,但是可以將其磨損到足以使它開始故障直至無法使用的地步。 。我對TI的MSP430很有經驗,因此就可以了:
那些MCU允許隨時重新編程整個閃存。不僅有可能通過重寫閃存達數百萬次來使閃存磨損直至故障,而且如果編程生成器配置不正確,片上閃存編程生成器也可能導致低端處理器出現故障。這些是編程允許的頻率允許範圍。當超出該範圍(較慢)時,編程時間可能會變得過長,並導致閃存失效。僅幾百個週期後,就有可能“燒毀”閃存單元而導致永久性故障。
此外,某些型號允許超頻內核,以便通過增加內部電壓來提高內核速度。 MCU使用1.8-3.6V電源供電,但內核本身設計為以1.8V運行。如果您在切換所有I / O,激活所有外設並在封閉的小型機箱中以驚人的40MHz(大型機型通常為25MHz)運行時對3.6V電源軌上的內核進行了超頻,那麼您可能最終會油炸核心因為過熱。實際上,有些人說他們達到了這些頻率(通常DCO之前就失敗了,並且保存了芯片,但是...也許吧)。
只需嘗試一下?
根據 stackexchange-“讓MCU輸入引腳懸空真的是一個壞主意嗎?”
它描述了在幾種情況下芯片可能會被開路引腳損壞。編輯:示例跨度模擬和微控制器產品說:
4.1端口輸入/未使用的數字I / O引腳
強烈建議在將數字I / O引腳切換為輸入時,不要斷開它們的連接。在這種情況下,這些引腳可以進入所謂的浮動狀態。這會導致高ICC電流,這對低功耗模式不利。
此問題的條件是引腳完全開路。
因此,我們的任務是從 至將損壞引腳。我認為這已經足以超越“磚化”。
該答案中確定的一種機制是將輸入引腳驅動到中值電壓,兩個互補晶體管都處於“導通”狀態。在該模式下運行,引腳接口可能會變熱或發生故障。
輸入引腳具有很高的阻抗,並且也是電容器。據推測,它們在相鄰引腳之間的耦合足以使相鄰引腳足夠快地切換,可能會將電荷驅動到輸入引腳上並將其推入“熱”狀態。可能有一半的I / O引腳被驅動到這種狀態會使芯片預熱到足以造成損壞的程度?嗯。)
我也認為破壞性的閃光燈就足夠了。我認為這已經很糟糕了,以致無法使用該芯片。
它並不需要全部閃存,而只需包含上電,RESET等向量的頁面。一頁上的限制可能需要幾十秒鐘。
我有一個跡象,但沒有確鑿的證據)對於某些MCU來說可能更糟。幾年前,我參加了一個演講。有人問為什麼競爭對手提供的零件具有更高的閃存寫入周期。這位(大型未具名的MCU製造商)發言人表示,他們在閃存規格方面採取了非常保守的方法。他說,他們的保證書所規定的溫度要比行業標準高得多。有人問“那又怎樣”。發言人說,在相同的溫度下,幾種製造商的產品的重寫壽命將大大低於其零件。我的回憶是5x會變成<1x。他說這是非常非線性的。我認為這意味著在80C而不是25C下進行編程將是一件“壞事”。
因此,閃存重寫與非常熱的芯片相結合,可能會在不到10秒的時間內使它失效。 p>
編輯:
我認為“釋放死亡的藍煙”是比要求更難的約束。如果RESET引腳電路,掉電檢測器,上電電路,RC或晶體振盪器(可能還有其他一些電路)中的任何一個損壞,則該芯片將變得無用。
正如其他人所指出的那樣,破壞閃光也會無可挽回地殺死它。
“煙霧”聽起來令人印象深刻,但不太明顯的致命攻擊仍然是致命的,而且很難檢測到。
這種破壞的潛在來源是SCR閂鎖,其中芯片中非預期的(本徵)晶體管聚集在一起形成一種TRIAC,這種TRIAC可以吸收大量電流。這很容易吹銲線,而且我什至看到塑料外殼的設備由於產生的熱量而明顯變形。
典型的原因是驅動(甚至是瞬時地)將輸入驅動到電源或地面的上方或下方。分別,但是我想如果輸入懸空,您可能會看到它發生的情況。因此,不難想像一個電路,其中輸入的浮動度是由軟件控制的(儘管允許這樣做很愚蠢)。
為特定目的的處理器有意為此目的編寫的軟件可能會迫使超頻到處理器過熱的程度。當然,只要處理器包含軟件可配置的時鐘控制寄存器即可。
當然不可能所有處理器都以這種方式損壞。如果這是真的,那麼當我們仍然手動輸入機器代碼時,就會有數十億的Z80、6800和6502被隨意編寫軟件的輪胎所遺棄,從而造成許多隨機錯誤。
這是我破壞盡可能少的零件的微控制器的條目...
只需以幾kHz的頻率切換輸出引腳即可!
您仍然可能看不到冒煙的現象,但取決於內部故障模式。
模擬此電路 –使用 CircuitLab a創建的原理圖> sup>
-編輯,8月22日添加-
現在,我認為您不能根據給定的標準破壞微控制器。但是,您可以使用錯誤的代碼輕鬆破壞外部電路。我最近設計的一個簡單的升壓轉換器就是一個例子……在調試時暫停代碼可能會使電感器通過MOSFET接地短路。 POOF
就常規用戶模式代碼而言,我認為您不能編寫任何會破壞芯片的內容。
但是,我確實記得,如果散熱器掉下來,在不到一分鐘甚至幾秒鐘的時間內,微處理器就會被毀壞的日子。然後,他們增加了熱檢測電路,如果零件溫度過高,該電路將降低時鐘。現在,我們能夠投入的晶體管數量遠遠超過了一次使用的數量,芯片產生的熱量超過了散熱器的散熱能力,其功率管理和熱電路也確保了它的安全。例如,請參閱 Intel Turbo Boost 2.0。因此,如果您能夠繞過或提高電源管理和熱電路的限制,則很有可能使芯片熔化。因此,如果這些操作受軟件控制(不知道;也許需要BIOS更新?),那麼您可以運行一堆並行的空循環,集成的GPU工作以及硬件H.264解碼和編碼,以及芯片可以做的所有其他事情,一次,直到芯片過熱並散發出魔幻的藍色煙霧。
我最熟悉STM32處理器,因此它們最適用於該系列。但是,其他處理器也可能採用類似的方法:
有永久的寫保護模式。因此,如果您對該位進行編程,並對FLASH進行一些無用的編程,則將無法再使用MCU。我不知道這是否算作“磚塊化”,但它確實涉及一種永久性的硬件機制。
編程引腳可重新配置為GPIO。由於時鐘引腳是由編程設備驅動的,因此可以用來引起短路。很有可能會破壞單個引腳,而這是一個編程引腳會很糟糕。這可能會導致其過熱或損壞。
誰曾說過,不了解這種芯片的設計過程是如何涉及的。這並不意味著不會發生滑動,並且回歸和極端情況的代碼覆蓋有時會遺漏一些東西,但是要聲明所有甚至大多數處理器都存在此缺陷在邏輯上是可疑的。
TLDR;所有處理器都有此故障-否
我相信,用軟件物理上破壞微控制器(MC)當然是可能的。所需要的只是MC的組合正在執行“緊”的指令循環(導致100%的利用率),以及“有缺陷的”散熱片,使芯片內部的熱量散失。建立。故障發生的時間是幾秒鐘,幾分鐘還是幾小時,將取決於熱量積聚的速度。
我有一台筆記本電腦,只能連續使用50%。如果超過此限制,計算機將自行關閉。這意味著在使用率達到50%時,MC溫度低於設置的觸發點。隨著使用量的增加,MC的溫度會升高,直到達到觸發點。如果熱關斷電路不起作用(或沒有熱關斷電路),則MC的溫度將繼續升高,直到被破壞為止。
模擬此電路 –使用 CircuitLab sup>
#include <avr / io.h>int main(void){DDRB | = _BV(2)|_BV(4);PORTB | = _BV(2);PORTB & =〜_BV(4);for(;;);}
上面的代碼使MCU將PB2推高,同時將PB4拉低,這會造成VDD到PB2到PB4到GND的短路,並且PB2和/或PB4的端口驅動程序將被炸。短路可能是無意的錯誤,例如意外的電橋。