<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 網絡與存儲 > 設計應用 > 閃存出錯:軟件錯誤還是電源電壓故障(下)?

          閃存出錯:軟件錯誤還是電源電壓故障(下)?

          —— 如何將電源電壓故障導致的閃存出錯的可能性最小化?
          作者:ShyamChandra時間:2013-02-27來源:電子產品世界收藏

            當任意一個電源電壓低于其閾值時,激活復位可以最大限度地降低出錯的可能性。這可以防止在電源故障條件下,繼續執行代碼。復位發生器激活復位信號及的寫保護信號。在某些情況下,復位發生器的輸出并不是直接用于復位。相反,它被連接到一個CPLD來執行一個復位分配算法。在這種情況下,應該激活的寫保護信號,因為CPU可能不能在電源電壓發生故障時立即被復位。圖1中的復位發生器IC監控所有的CPU電壓—— 1.0V、3.3V、1.5V和0.75V——并當其中任何一個電壓低于工作電壓閾值時,激活復位信號和閃存的寫保護信號?! ?/p>本文引用地址:http://www.ex-cimer.com/article/142445.htm

           

            選擇一個復位發生器IC

            選擇復位IC的標準包括監控輸入電壓的數量、毛刺過濾、遲滯、故障檢測的精度(在整個工作溫度和電壓范圍)以及故障檢測速度。

            監控輸入電壓的數量:復位發生器IC必須監控所有CPU相關的電壓來檢測電壓故障(電壓偏移值小于相應的工作電壓閾值)。在圖1的情況下,四個輸入的閾值設定為低于工作電壓標稱值的5%。例如,萊迪思電源管理IC支持6~ 12個電壓輸入的監控,并且復位發生閾值電壓可以編程為-0.5%~ -20%。

            需要避免的錯誤:有些設計只使用一個電壓復位發生器,例如,通常只用于監測 3.3V。這是不夠的,因為3.3V電壓和內核電壓或者DDR電壓的關斷速率不同。只有當所有的電源都使用3.3V作為其輸入電源,這種方法才有效。然而,在大多數電路板中,內核和DDR使用不同的輸入電壓源(由于功耗),因此只使用一個3.3V復位發生器不能避免閃存出錯。同樣的論述也適用于復位發生器僅監控內核電壓。

            毛刺過濾 – 當復位發生器使用單端的電壓傳感(而不是差分傳感),那么復位IC和CPU存儲器之間的接地電壓差可能會產生虛假的復位信號。為了確保復位確實是由電源電壓故障引起的,而不是由一時的接地電壓差所引起,復位IC中需要使用毛刺濾波器。例如,當其輸入毛刺濾波器被啟用,萊迪思電源管理IC就會確保故障時間持續64微秒以上,才激活復位信號。

            需要避免的錯誤:復位發生器使用和微控制器來監測電壓,實現了一個采樣平均的算法來消除毛刺的影響,從而導致錯誤的復位激活。均值算法得到的實際的電壓是四個ADC電壓采樣的平均值。

            遲滯 – 大多數電壓都通過開關模式的電源供電。這些電源的輸出通常包含紋波。當電源電壓接近復位閾值時,這個紋波可能引起復位信號毛刺。為了避免這種情況,復位發生器必須具有(監測的電壓)0.5%到1%的遲滯電壓范圍。例如,萊迪思的電源管理IC就帶有監測電壓的1%的遲滯。這意味著,對3.3V要實現1%的遲滯,遲滯步長為30mV,而監測閾值為1V的遲滯的步長為10mV。

            需要避免的錯誤:使用ADC和微控制器的復位發生器來監測電壓需要在軟件中實現遲滯,以防止復位輸出中的毛刺。



          關鍵詞: CPU ADC 閃存

          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();