<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 關(guān)于EEPROM數據出錯問(wèn)題的探討

關(guān)于EEPROM數據出錯問(wèn)題的探討

作者:康佳集團數字平板開(kāi)發(fā)中心 柏祥 時(shí)間:2008-04-16 來(lái)源:電子產(chǎn)品世界 收藏

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

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

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

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

  1.開(kāi)機時(shí)。機器剛加電時(shí),各種狀態(tài)正在建立,有的供電電壓還沒(méi)有完全達到穩定狀態(tài),有的高壓(如CRT電視的陽(yáng)極高壓或液晶電視的背光電壓)在建立的過(guò)程可能會(huì )產(chǎn)生嚴重的干擾,所以此時(shí)不要對EEPROM進(jìn)行讀寫(xiě),如果在這個(gè)時(shí)候進(jìn)行讀寫(xiě)操作的話(huà)其出錯的幾率將大大增加。此種情況比較簡(jiǎn)單,只要有意延遲一段時(shí)間等各種狀態(tài)穩定了再進(jìn)行讀寫(xiě)操作就可以了。

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

  關(guān)機情況分為兩種:待機和交流關(guān)機。

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

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

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

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

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

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

上拉電阻相關(guān)文章:上拉電阻原理


關(guān)鍵詞: CPU EEPROM SDA SCL 復位

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>