閃存出錯:軟件錯誤還是電源電壓故障(下)?
當任意一個電源電壓低于其閾值時,激活CPU復(fù)位可以最大限度地降低閃存出錯的可能性。這可以防止在電源故障條件下,繼續(xù)執(zhí)行代碼。復(fù)位發(fā)生器激活CPU復(fù)位信號及閃存的寫保護信號。在某些情況下,復(fù)位發(fā)生器的輸出并不是直接用于CPU復(fù)位。相反,它被連接到一個CPLD來執(zhí)行一個復(fù)位分配算法。在這種情況下,應(yīng)該激活閃存的寫保護信號,因為CPU可能不能在電源電壓發(fā)生故障時立即被復(fù)位。圖1中的復(fù)位發(fā)生器IC監(jiān)控所有的CPU電壓—— 1.0V、3.3V、1.5V和0.75V——并當其中任何一個電壓低于工作電壓閾值時,激活復(fù)位信號和閃存的寫保護信號?! ?/p>本文引用地址:http://cafeforensic.com/article/142445.htm
選擇一個復(fù)位發(fā)生器IC
選擇復(fù)位IC的標準包括監(jiān)控輸入電壓的數(shù)量、毛刺過濾、遲滯、故障檢測的精度(在整個工作溫度和電壓范圍)以及故障檢測速度。
監(jiān)控輸入電壓的數(shù)量:復(fù)位發(fā)生器IC必須監(jiān)控所有CPU相關(guān)的電壓來檢測電壓故障(電壓偏移值小于相應(yīng)的工作電壓閾值)。在圖1的情況下,四個輸入的閾值設(shè)定為低于工作電壓標稱值的5%。例如,萊迪思電源管理IC支持6~ 12個電壓輸入的監(jiān)控,并且復(fù)位發(fā)生閾值電壓可以編程為-0.5%~ -20%。
需要避免的錯誤:有些設(shè)計只使用一個電壓復(fù)位發(fā)生器,例如,通常只用于監(jiān)測 3.3V。這是不夠的,因為3.3V電壓和內(nèi)核電壓或者DDR電壓的關(guān)斷速率不同。只有當所有的電源都使用3.3V作為其輸入電源,這種方法才有效。然而,在大多數(shù)電路板中,內(nèi)核和DDR使用不同的輸入電壓源(由于功耗),因此只使用一個3.3V復(fù)位發(fā)生器不能避免閃存出錯。同樣的論述也適用于復(fù)位發(fā)生器僅監(jiān)控內(nèi)核電壓。
毛刺過濾 – 當復(fù)位發(fā)生器使用單端的電壓傳感(而不是差分傳感),那么復(fù)位IC和CPU存儲器之間的接地電壓差可能會產(chǎn)生虛假的復(fù)位信號。為了確保復(fù)位確實是由電源電壓故障引起的,而不是由一時的接地電壓差所引起,復(fù)位IC中需要使用毛刺濾波器。例如,當其輸入毛刺濾波器被啟用,萊迪思電源管理IC就會確保故障時間持續(xù)64微秒以上,才激活復(fù)位信號。
需要避免的錯誤:復(fù)位發(fā)生器使用ADC和微控制器來監(jiān)測電壓,實現(xiàn)了一個ADC采樣平均的算法來消除毛刺的影響,從而導(dǎo)致錯誤的復(fù)位激活。均值算法得到的實際的ADC電壓是四個ADC電壓采樣的平均值。
遲滯 – 大多數(shù)電壓都通過開關(guān)模式的電源供電。這些電源的輸出通常包含紋波。當電源電壓接近復(fù)位閾值時,這個紋波可能引起復(fù)位信號毛刺。為了避免這種情況,復(fù)位發(fā)生器必須具有(監(jiān)測的電壓)0.5%到1%的遲滯電壓范圍。例如,萊迪思的電源管理IC就帶有監(jiān)測電壓的1%的遲滯。這意味著,對3.3V要實現(xiàn)1%的遲滯,遲滯步長為30mV,而監(jiān)測閾值為1V的遲滯的步長為10mV。
需要避免的錯誤:使用ADC和微控制器的復(fù)位發(fā)生器來監(jiān)測電壓需要在軟件中實現(xiàn)遲滯,以防止復(fù)位輸出中的毛刺。
評論