a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > 關于EEPROM數據出錯問題的探討

關于EEPROM數據出錯問題的探討

作者:康佳集團數字平板開發中心 柏祥 時間:2008-04-16 來源:電子產品世界 收藏

  在家用電子產品特別是電視機產品中,用戶要經常對機器的一些參數進行調整,例如對比度、亮度、色飽和度、音量、清晰度、頻道排序等等。而這些參數對于每個用戶來說不盡相同,也就是說用戶經常要調整的這些參數需要保存下來,以免用戶每次都要重新調整。在機器中完成這項任務的是,它具有可重復讀寫的功能,與主的連接如圖1所示。

本文引用地址:http://www.j9360.com/article/81633.htm

  主 的連接有兩根信號線,一為時鐘信號(),是主進行讀寫的基準信號;一為數據信號(),主CPU對EEPROM進行的讀寫操作是通過這根信號線進行的。R1、R2一般為0到幾百歐姆之間,不能過大;上拉電阻R3、R4一般為2.2~4.7k?之間。

  在開機的時候,主CPU通過總線讀出EEPROM里的數據,加載到相關的芯片中。當用戶對參數進行修改時,主CPU通過總線對EEPROM進行數據寫入。為了防止數據出錯,在讀寫過程中稍微長一點的數據都加入了校驗碼,校驗碼是根據要寫的數據按照一定的算法得到的。在寫入數據的時候連校驗碼一起寫入,在讀出數據的時候,CPU會按照相同的算法再計算出一遍校驗碼,和讀出的校驗碼作對比,如果兩者一樣,則認為這一個“寫”和“讀”的過程是正確且沒有發生數據錯誤的,反之則認為有錯誤發生。一旦數據發生錯誤,主CPU會把一套預先設置好的數據替換損壞的數據,此過程我們稱之為。有些參數發生用戶可能不易察覺,如對比度、亮度、色飽和度、清晰度等,但是有些參數發生時用戶就會很容易發現并且認為是有問題的,如節目信息。節目信息發生復位時,只會保留預先設置的幾個頻道,大部分的頻道都消失了,并且節目的順序也有可能改變(如果機器有節目排序的功能且用戶使用了此功能),這樣用戶是不會接受的。所以怎樣防止EEPROM的數據出錯是設計時要重點關注的問題,下面就從幾個方面分析原因及相對應的解決措施。

  1.開機時。機器剛加電時,各種狀態正在建立,有的供電電壓還沒有完全達到穩定狀態,有的高壓(如CRT電視的陽極高壓或液晶電視的背光電壓)在建立的過程可能會產生嚴重的干擾,所以此時不要對EEPROM進行讀寫,如果在這個時候進行讀寫操作的話其出錯的幾率將大大增加。此種情況比較簡單,只要有意延遲一段時間等各種狀態穩定了再進行讀寫操作就可以了。

  2.關機時。當主CPU對EEPROM進行寫操作的時候,如果斷電比較容易出現數據出錯現象。因為現在的電視方案一般來說主CPU的外圍電壓和EEPROM的電壓是3.3V,而主CPU的內核電壓一般為2.5V或1.8V甚至1.5V。當發生斷電時,3.3V電壓首先降低,若干毫秒后內核電壓才開始下降。在此時間差內有一段時間是主CPU的外圍和EEPROM介于工作的臨界狀態或已經不工作了,而主CPU內核還在工作,還在進行數據的寫操作,這種“非正常工作狀態”下數據出錯的概率非常高,要避免此情況出現。如圖2所示,這是在實際的機器中捕捉到的時序圖:通道1為主CPU的外圍和EEPROM的共用電源電壓3.3V,通道2為主CPU的內核電源電壓1.8V,通道3為主CPU和EEPROM之間的數據信號()。由圖可以看出3.3V電壓已經下降到2.5V左右了,而1.8V還沒有下降,總線上還有數據,兩個電壓下降的時間差約為10毫秒。EEPROM的工作電壓一般可以低到2.7V甚至1.8V,但是換用1.8V工作電壓的EEPROM不能解決問題,因為CPU的3.3V外圍電壓一般不能工作在如此低的電壓上。

  關機情況分為兩種:待機和交流關機。

  1.待機。待機又分為兩種情況:主CPU待機和副CPU待機。現在的電視機方案集成度越來越高,主芯片不僅包含CPU,還包含DECODER、DEINTERLACE、SCALER甚至HDMI和LVDS等功能模塊,也正是由于這個原因主CPU在待機時的功率不容易降低,如果有待機功率小于1瓦的要求的話,一般要加一個專門用來待機用的副CPU。另外一方面,主芯片軟件系統復雜,為了降低軟件的工作量,增加一個待機用的副CPU也是一種選擇。當用主CPU待機時,接收到待機的遙控或按鍵信號時,主CPU可以在數據讀寫完成以后再進入待機狀態,避免了數據出錯的發生。當用副CPU待機時,副CPU接收到待機的遙控或按鍵信號時,要通知主CPU將要進入待機狀態,主CPU寫完數據后再通知副CPU可以進入待機狀態就可以了。用兩個簡單的I/O信號即可以實現此通知功能。當然主副CPU之間用總線通訊也可以,不過這種方式軟件的工作量要大得多。

  2.交流關機。此種關機方式和上面的待機方式不同,用軟件是不可以控制的,什么時候關機根本不知道。對于這種情況的解決方法是:首先在電路上設計一個專門的復位電路或芯片用來監視3.3V電源,當3.3V下降到約2.9V~3.0V(我們暫且稱之為復位電壓)之間時復位電路發出復位信號對主CPU進行復位,CPU在還是正常工作狀態下停止對EEPROM寫數據,通過總線對EEPROM復位,從而避免了數據出錯。其時序如圖3所示,通道1位3.3V電源,通道2為復位信號,由圖可以看出,3.3V電源電壓下降到2.9V左右復位電路開始動作,發出復位信號(圖3是低電壓復位的示意圖)。

  必須注意復位電壓的高低選取非常重要,復位電壓過高即很接近3.3V會因為輕微的電壓波動而造成誤動作;復位電壓過低則起不到應有的作用,即不能在主CPU電源電壓降到非正常之前進行復位。

  另外,監視電壓的選取不一定必須是主CPU的電源電壓,選取提供3.3V電源的穩壓器的輸入端電壓(例如5.0V或更高)作為監視電壓往往會有更好的效果,因為關機時電壓高的電源總是首先下降,當然復位電壓也要相應的提高才能夠匹配。例如穩壓器的輸入端電壓是5.0V,復位電壓選取在4.3V~4.7V之間,關機時當5.0V電壓下降到4.3V~4.7V之間時3.3V電壓還沒有下降,這時候復位電路就發出復位信號使主CPU復位,更能保證主CPU和EEPROM還是在正常工作的情況進行了復位,也就沒有了數據出錯的可能。時序關系如圖4所示,通道1為3.3V電源,通道2位穩壓器的輸入電源5V。

  其次,軟件在設計時考慮把用戶修改的數據“即時”寫入,例如用戶在調整音量時,只要松開按鍵就要把當前到的數據寫入到EEPROM中,而一般的數據寫入時間較短(一般為幾十毫秒),所以這種情況下在寫數據時關機的可能性極小,極大的降低了出錯的概率。

  另外,軟件設計時還要考慮數據在EEPROM里面的存放問題,EEPROM中數據存放的空間分成若干個區域,我們把每一個區域叫做“節點”。一個“節點”上不要存放太多的數據,盡量把數據平均的分配到各個“節點”上,這樣就避免了在數據寫入的時候占用較長的時間,從而降低了數據出錯的概率。如果某些方面的數據很大而又不方便拆開放置,如保存頻道的信息,則這些數據不要和用戶要經常調整的數據放在一個“節點”上。因為用戶一般不會經常改變頻道信息,除非進行搜索節目,而這樣的操作極少進行,也就不會經常對這個“節點”進行數據寫入,從而出錯的概率大大降低。

上拉電阻相關文章:上拉電阻原理


關鍵詞: CPU EEPROM SDA SCL 復位

評論


相關推薦

技術專區

關閉