音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

急急干擾大EEPROM 誤改寫問題

作者:liguilin 欄目:單片機(jī)
急急干擾大EEPROM 誤改寫問題
 我做一款復(fù)費(fèi)率電表,我頻繁上下電,電表的表底數(shù)、脈沖常數(shù)、地址常被改寫,請問那位大蝦有高招,幫幫小弟。
              謝謝!

2樓: >>參與討論
imwangyi
軟件要處理好
1,重要的數(shù)據(jù),不一定只放在一個地址。上電時檢查一下就知道是不是寫EEPROM時掉電了。
2,程序設(shè)置一些讀寫EEPROM的flag,也不一定就一個flag,在讀寫EEPROM時發(fā)現(xiàn)自己定義的flag不正常就退出。
3,電源好點,MCU選型也很重要。


3樓: >>參與討論
liguilin
謝謝!imwangyi
  我用的是AT24C02,1、2、3 腳接地了,WP我也使用了,進(jìn)入寫EEPROM的程序打開WP然后判斷FLAG不正常馬上關(guān)閉WP,程序內(nèi)也加了很多FLAG,程序我也加了寫EEPROM的授權(quán)如:初始化是否成功、主程序是否正常執(zhí)行、寫的數(shù)據(jù)校驗是否成功等。正常使用時很好用,我長時間的頻繁斷電上電是會現(xiàn)這種情況,也就是說在不正常的情況下程序出現(xiàn)了誤操作,寫了我不想寫的數(shù)據(jù)。這種情況是否能完全解決,我現(xiàn)在3小時內(nèi)不會改寫,3小時后不一定了。

4樓: >>參與討論
imwangyi
一定可以解決。
AT24C02質(zhì)量還不錯。
有幾個問題需要問一下:
1,用的什么MCU。如果是TAIWAN的東西,可能我也沒什么脾氣。
2,F(xiàn)lag的設(shè)置,程序在設(shè)置標(biāo)志位前,要判斷程序狀態(tài)(比如是否是飛了)。設(shè)置好了標(biāo)志位,也要去判斷。尤其在進(jìn)入寫EEPROM的程序打開WP前。
3,數(shù)據(jù)的存放,最好將同一數(shù)據(jù)放在不同的地址,而且要加校驗,如CRC之類的東西。這樣的話,就算在寫EEPROM時掉電,也能恢復(fù)正確的數(shù)據(jù)。當(dāng)然,在寫的命令不應(yīng)該是同一個寫命令。


5樓: >>參與討論
liguilin
我用的是:MICROCHIPPIC16C73
 1、數(shù)據(jù)我加了校驗和,我的數(shù)據(jù)最大只有4個字節(jié),加校驗和因該沒問題。但表的ID號沒加校驗。數(shù)據(jù)放在一個區(qū)ID號放在一個區(qū)。
2、FLAG我是這樣用的:如:修改ID號程序;判斷舊ID號和命令碼正確;正確后設(shè)置寫EEPROM標(biāo)志;再判斷命令碼是否正確;如正確調(diào)用寫EEPROM程序,不正確死循環(huán)等WDT復(fù)位;WP我是這樣用的;進(jìn)入寫EEPROM程序首先打開WP判斷是否有寫EEPROM 的FLAG;若有再判斷命令碼是否正確;都正確寫EEPROM,寫萬關(guān)WP;若FLAG和命令碼有一個錯關(guān)WP等WDT復(fù)位;
3、我是這樣做的試驗:把220V的插頭來回在 插空內(nèi)晃動,插頭銅片和插空銅片接觸時有火花出現(xiàn),最初我做試驗不到10分鐘必定會改寫EEPROM的內(nèi)容,現(xiàn)在我已經(jīng)控制到3小時內(nèi)不會改寫EEPROM的內(nèi)容,3小后就不一定了,我想EEPROM改寫能不能完全解決。這樣我就不擔(dān)心在現(xiàn)場回出現(xiàn)丟地址了。請多指教!


6樓: >>參與討論
louis.liu
采用數(shù)據(jù)地址冗余,寫-讀-比較-寫-讀-比較。
 
7樓: >>參與討論
eling
用93LCX6可能會更好,我現(xiàn)在都很少用AT24系列了
 
8樓: >>參與討論
jtnj
搞正確寫EE的時序,確認(rèn)中斷發(fā)生時的現(xiàn)場保護(hù)和恢復(fù)
 
9樓: >>參與討論
liguilin
謝謝。
to louis.liu :我試用數(shù)據(jù)地址冗余大有提高,但不能完全提高。對寫數(shù)據(jù)很有效
對ID 號管理不理想,因為我的表剛出廠沒有ID,沒有最初的原始數(shù)據(jù)無法做數(shù)據(jù)地址冗余。

10樓: >>參與討論
liguilin
謝謝!
to louis.liu :我試用數(shù)據(jù)地址冗余大有提高,但不能完全解決。對寫數(shù)據(jù)很有效
對ID 號管理不理想,因為我的表剛出廠沒有ID,沒有最初的原始數(shù)據(jù)無法做數(shù)據(jù)地址冗余。



11樓: >>參與討論
imwangyi
一點建議
看你程序的流程,應(yīng)該沒什么問題.不過,電源不好的時候,MCU的內(nèi)部的RAM不是那么聽話,所以falg不一定只是一個bit.
另外,你的外圍電路,尤其是復(fù)位電路,要保證MCU電壓異常時(過低)時能立即Reset,否則,一個bit的falg很難保證工作的正確性.
同時,建議你看看MCU的I/O口上的雜訊究竟有幾大.如果有大于-1V的雜訊,估計內(nèi)部RAM有時會出點問題,需要保護(hù).

12樓: >>參與討論
strongxg
試一試改用鐵電存儲器,不過貴一些。
除了保證以上的措施外,EEPROM的長時間寫是它的弱點。鐵電存儲器存儲器讀寫速度快,耗能低,也有些寫保護(hù)措施,出錯的概率應(yīng)該小很多。而且其讀寫壽命比EEPROM長很多,對你設(shè)計應(yīng)該有幫助。只是建議,不是廣告喲!

13樓: >>參與討論
liguilin
謝謝!imwangyi
你說的很對我做實驗發(fā)現(xiàn),RAM的內(nèi)容是有問題,我也覺得一位FLAG不可靠,我都用了一位加一個字節(jié)做FLAG也不可靠,我掉電要保存參數(shù),不能復(fù)位。RAM的值如何保存,請指教。!

14樓: >>參與討論
shifei74
怎會如此呢?
  我也做過類似產(chǎn)品,只是E2大些,沒任何問題啊,脈沖群輕松到4500V,所以一定可以解決。
  掉電復(fù)位是否使用,有停電檢測嗎?
  我認(rèn)為24CXX是唯一選擇,不要考慮更換,否則需要容量大時就麻煩了。
  ID號一樣可以雙重保護(hù)!

15樓: >>參與討論
imwangyi
再說幾點,供參考
1,MCU換PIC16LC73B(工作電壓2.5-5.5),因為PIC16C73B的工作電壓4.0-5.5。
2,EEPROM24AA02(工作電壓1.8-5.5)


掉電一定要復(fù)位,當(dāng)然指的是MCU的工作電壓低于指定數(shù)值的時候。比如PIC16LC73B工作到2.3V時,程序可以跑,但RAM是什么什么情況就不得而知了。
所以你的電源電路要保證市電掉電后50MS能提供正常的工作電壓。同時,為了對付頻繁的斷復(fù)電,你的復(fù)位電路可能要做一些修改,以保證電路工作電壓工作未穩(wěn)定的時候MCU不能工作。

如果你在深圳的話,我們可以當(dāng)面交流一些意見了;但網(wǎng)絡(luò)的世界,誰也不知道誰在哪里,靠幾個貼子,交流起來也是有限的。

16樓: >>參與討論
liguilin
我在北京,掉電可以保證150MS的正常供電,我用示波器觀察過
 
17樓: >>參與討論
張明峰
用外部Reset芯片
確定合適的復(fù)位電壓門限,用外部復(fù)位芯片接在MCLR引腳上試試。EEPROM數(shù)據(jù)出問題主要是在上/下電過程中發(fā)生,如果MCU能可靠復(fù)位基本可以消除。

18樓: >>參與討論
liguilin
硬件已經(jīng)不能蓋了,有軟件解決的方法嗎?謝謝!!
 
19樓: >>參與討論
martin
燒寫芯片時選啟動BOD
EEPROM被誤改寫的現(xiàn)象一般都是發(fā)生在上掉電過程中,如果沒有內(nèi)部上掉電復(fù)位或外部上掉電復(fù)位芯片,在不足芯片工作電壓時,單片機(jī)并不是不工作,但它工作是否正常?在跑什么代碼就只有天知道,所以設(shè)計一定要避開這個危險區(qū)域。方法:燒寫芯片時選啟動內(nèi)部BOD,或者象張工說的加外部Reset芯片。如果這還不行,再在軟件上做考慮,比如:對大循環(huán)里的每一步設(shè)定順序號,如開始是00,第一個子程序是01,只有當(dāng)調(diào)用EEPROM寫時順序號是0X才真正啟動EEPROM寫,否則報錯退出。如果懷疑RAM內(nèi)容錯,考慮將重要數(shù)據(jù)多地址備份。

20樓: >>參與討論
shifei74
對,用BOD
用BOD,如果是F73的話,4V就復(fù)位(IO口為低),不過I2C的上拉就不要用了
上電延時3S以上在進(jìn)行讀寫操作
個人認(rèn)為不要用低電壓的,就F73就可以了
不明白為什么ID就不能保護(hù)了,這跟出廠前后設(shè)置有關(guān)系嗎?
還不行,最好別自己做了,可以找北高智,利爾達(dá),HND,慶成等,只要有量都好說
發(fā)信息給我也可,也在北京

21樓: >>參與討論
liguilin
BOD是好用,我做過實驗了,但我不能BOD,掉電保存數(shù)據(jù)
 
22樓: >>參與討論
shifei74
那不就清楚了嗎
那就是掉電時改寫EE,
前面做的大都沒用了!
只要檢測到停電,將SCL和SDA置零


23樓: >>參與討論
liguilin
用BOD掉電不能保存了,所以我沒法適用BOD
 
24樓: >>參與討論
liguilin
不能用BOD ,用BOD 后掉電不能保存數(shù)據(jù)了
 
25樓: >>參與討論
hotpower
先讀后寫會更好些
EEPROM內(nèi)設(shè)1字(0x55aa)首次寫入標(biāo)志()和1字(0xaa55)每次成功標(biāo)志。
在寫入前先讀出首次寫入標(biāo)志(0x55aa),若正確,可暫認(rèn)為系統(tǒng)掉電后還有能量。且有EEPROM存在。
然后快速寫入信息,全部寫完后,再寫入每次成功標(biāo)志(0xaa55),然后讀出該標(biāo)志,若正確,則可肯定寫入成功。否則,做相應(yīng)處理。
注意:寫入信息塊時,最好先讀后寫,若讀出的數(shù)據(jù)與寫入的相同時,就不要再寫了,這樣可增加安全性。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
用12C508去判斷一個bit位,再寫一個IO腳,能否小于等于3Us?
請教:LCD初始化程序???
將16F873A的程序移植成16C73B的難度有多大?
關(guān)于16C63的IIC主控方式
請教關(guān)于MCP2150
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號