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

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

EEPROM初始狀態(tài)的值

作者:FZJ 欄目:單片機
EEPROM初始狀態(tài)的值
大家都知道EEPROM初始狀態(tài)的值是不固定的,我想知道有沒有可能是個負數(shù)?謝謝! 

2樓: >>參與討論
zljzlj
??
我覺得不太可能,
我用的都是AT24系列的,從1K到256K,一般存儲器的初值都是FF。

3樓: >>參與討論
FZJ
我現(xiàn)在在初始狀態(tài)讀出的值做這么處理不知對不對?
//讀到的4字節(jié)值放到S1_TEMP~S4_TEMP,然后進行上下限判斷,

if    ((s1_temp>10)||(s2_temp>6)||(s3_temp>10)||(s4_temp>10)
       ||(s1_temp<0)||(s2_temp<0)||(s3_temp<0)||(s4_temp<0))//負數(shù)判斷.
     s1_temp=s2_temp=s3_temp=s4_temp=0;

4樓: >>參與討論
zljzlj
?
什么意思,你為什么要讀沒有寫過的EE,


5樓: >>參與討論
FZJ
因為我系統(tǒng)上電后就要還原S1_TEMP~S4_TEMP
上電-->初始化-->讀EEPROM到S1_TEMP~S4_TEMP-->結(jié)束-->寫EEPROM備份S1_TEMP~S4_TEMP.
請問有還有好的方法么?

6樓: >>參與討論
zljzlj
我的意見!
我做的系統(tǒng)都具有類似你的EE功能,
步驟是1:用自制的EE寫入器將預制值寫入新的EE,如AT24C01,
         假設有4個備分值(每個都是1字節(jié)),分配在固定的地址00H--03H
     2。第一次上電先讀入這4個值,關機前如果這些值會變化,想在下次開機后保持此狀態(tài),就將新值用程序?qū)慐E,

肯定要預先寫入的,而且不會有所謂的負數(shù),因為EE是按地址空間存的,一個地址村一個字節(jié),(0--OXFF)。

7樓: >>參與討論
FZJ
我有個問題想請教你,謝謝!
為什么連續(xù)寫8字節(jié)以上會出錯,書上說連續(xù)寫字節(jié)要延時,這句話怎么理解?
我寫4字節(jié)就不用延時,而且沒出錯而連續(xù)寫8字節(jié)以上就出錯,如果我把初試寫地址設為01H開始寫8字節(jié)也錯,不知道為什么?你知道么?
我用的EEPROM也是AT24XX,謝謝!

8樓: >>參與討論
zljzlj
不客氣!
寫入時間是有限制,寫入有兩種方式字節(jié)寫和 頁寫,DATASHEET有說寫入時間,要求5MS,或10ms。這和初始寫什么地址無關。
寫4字節(jié)可能與你的系統(tǒng)流程耗時有關,
假設為字節(jié)頁寫入的方式,先寫一字節(jié)寫入函數(shù)sWRByteEE,由此構(gòu)成一個寫8字節(jié)的頁寫函數(shù)sWRPageEE.入口為目標地址頁
EEPage(8字節(jié)為一頁,page0為00H---07H),寫入緩沖區(qū)paEEWRBuf(8字節(jié))

那么要寫8個字節(jié)只要給paEEWRBuf 付值。
指定EEPage的頁數(shù),即EE地址。
在調(diào)用sWRPageEE,就完成了8字節(jié)寫入(一頁寫入)

如果要單字節(jié)寫入的話就要在字節(jié)連續(xù)寫入過程中加10ms左右的眼時(不要死等,要用無耗時等待,否則你的系統(tǒng)就脫死了。)

9樓: >>參與討論
fzj
多謝了。
字節(jié)寫就是單字節(jié)寫而且如果需要寫8個字節(jié)就需要在每個單字節(jié)寫完成后查詢ACK應答位,一般為5MS左右,
頁寫就是連續(xù)地址寫,在此期間不需要延時,EEPROM以內(nèi)部地址分配以8字節(jié)為一頁,如此分配,即00H-07H為一頁08H-0FH為一頁...........
不知道我理解的對不??
為了使EEPROM提高抗干擾,我想在每次寫操作完成后將寫保護位使能,即在BSTOP后通過軟件查詢ACK位是否為低電平,如果是低電平我將WP(寫保護位打開),不過這樣處理我通過硬件仿真發(fā)現(xiàn),程序始終沒有執(zhí)行WP打開這一步,也就是ACK始終沒有被從器件(EEPROM)拉低,這一點難道證明EEPROM內(nèi)部寫完成后不再作寫完成應答????不知你怎么理解?謝謝!

10樓: >>參與討論
fzj
仔細想想覺得你下面的思路不可取,個人觀點.

我做的系統(tǒng)都具有類似你的EE功能,
步驟是1:用自制的EE寫入器將預制值寫入新的EE,如AT24C01
         假設有4個備分值(每個都是1字節(jié)),分配在固定的地址00H--03H
     2。第一次上電先讀入這4個值,關機前如果這些值會變化,想在下次開機后保持此狀態(tài),就將新值用程序?qū)慐E,

如果每個新產(chǎn)品在開始使用之前都要先寫EEPROM后在裝到產(chǎn)品上,一來工序太復雜不說,好象也很不現(xiàn)實,我覺得軟件也必須要考慮到EEPROM所寫的錯誤信息,如果每次讀出EEPROM的值不加以判斷對不錯,這樣很危險,特別是系統(tǒng)在強干擾環(huán)境中使用,你能保證EEPROM每次寫的值都正確?我認為每次讀完后加以對錯判斷是不可少的,這樣至少能保證系統(tǒng)不受EEPROM約束.以上是我個人觀點,說的不對還請指正.

11樓: >>參與討論
zljzlj
回!
1.新產(chǎn)品寫入EE不足為奇,我做汽車電子和音響產(chǎn)品,性能要求的都很嚴格。一些配置信息均要防在EE里。
類似電腦主伴的BIOS,要先寫入的,做一個EE寫入器很簡單,一次性就把預制的數(shù)據(jù)寫進去(注意寫入程序要有規(guī)則,如校驗),比如車里的音響,由于車型的不同,操作面板就不同,但如果每一款都用一個單獨的程序,管理起來就不太方便,主MCU就要有多種版本(其實功能都一樣,表面不同),這時就可以在EE里做選項,上電讀到哪個就執(zhí)行響應功能,很方便的。還比如有許多功能實際生產(chǎn)時未比都用,只要做個選項就OK了,
2,EE的信息是否正確不是上層程序要考慮的,在地層讀取后是要校驗的,比如一次讀8字節(jié),事先認為規(guī)定好,寫如的時候就按一定規(guī)則,前7字節(jié)為數(shù)據(jù),第8個字節(jié)為前7字節(jié)的校驗碼。
  干擾問題主要看硬件設計的怎么樣,還有讀取EE的時機要掌握好,如盡量不要頻繁讀取,注意上電,下電的時序關系。
3你說的不能讀到ACK,是你的程序有問題,參照EE的DATASHEET時序,AT24C的都是IIC的BUS,很簡單。

12樓: >>參與討論
fzj
看看我這個思路對不對?
EEPROM讀操作和寫操作都完成了,可是判斷ACK還是有點不明白,
在寫過程中ACK由從器件回應,主器件應該是查詢,
在讀過程中ACK由主接收器主動將其拉低,這一點應該沒有問題
就是寫判斷ACK,怎么程序中只要給它個ACK時鐘(稱第9個時鐘)也可以,從這一點可以說明,EEPROM在收到一個字節(jié)數(shù)據(jù)后能迅速作出ACK應答響應,我想軟件上是不是可以這樣處理:寫完一個字節(jié)后在第9個時鐘周期,主器件判斷有無應答信號,如果沒有就直接STOP錯誤處理,對應程序如下:不作任何延時!
............
if   (sda)  bstop();   //sda=1錯誤處理
return;

13樓: >>參與討論
fzj
怎么上傳PDF文件呀?
 
14樓: >>參與討論
FZJ
再看看別人寫的覺得好象有問題
他在每次寫完一個字節(jié) 后判斷ACK是這樣的:
while(sda)
{;}
.............
意思是如果EEPROM沒有作ACK應答的話,程序在此死循環(huán),這樣的處理我覺得又有問題,如果EEPROM寫出錯或者本身就壞了,那好MCU執(zhí)行到這里就死了。而且如過開了狗后MCU一直處理復位,對此我想可不可以這樣處理:
unsigned CHAR i=10;
   while (sda)
{
    if  (--i==0)  
  {
     bstop();     //判斷應答信號為循環(huán)10次,如果沒有強行退出作錯誤處理。
     break;
   }
}
大家可否幫我分析分析,覺得哪種思路可行?我覺得還是直接判斷最有效,或者干脆不判斷,程序就給他個應答段的時鐘信號,這樣我也試過,可行,但就是不知道有沒有隱患存在???  

15樓: >>參與討論
fzj
請高手進來看看呀!謝謝了
EEPROM對我來講不太熟悉,DATASHEET看了好幾遍,心中還是有個疙瘩,希望高手能幫我出出主意,看我前面處理的方法是否合理?謝謝!
新年快到了,向大家拜個早年!

16樓: >>參與討論
FZJ
頂一下。
 
17樓: >>參與討論
楊工
fzj你是對的
應該檢查從器件回應的ACK,而且不應該死循環(huán)等待。
我的做法是設完SCL后,固定的1,2個nop,然后檢查ACK。

18樓: >>參與討論
楊工
至于初值
新的EEPROM應該全為FF,一般理解為unsigned CHAR。至于說它代表什么看你的定義,可以是任何東西。
如果嫌事先寫好麻煩。保險起見,可以讓你的數(shù)據(jù)多一個校驗字節(jié)。讀出校驗不符,則寫入初值。
或者對每個數(shù)據(jù)作合法性檢查,如果不合法,則寫入初值。


* - 本貼最后修改時間:2006-1-26 16:36:39 修改者:楊工

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
Silicon Labs以太網(wǎng)控制器——CP2200
現(xiàn)在有沒有3.6V的一體化紅外線接收頭,最低的功耗能做到多少?
74HC164這樣接有什么問題?
急!用在線將程序?qū)懭隤89C51RD2中?用FlashMagic.exe為什么不好?
我作的一個程序,學習的,課是編譯通不過呀
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


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