專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
用軟件仿真沒(méi)問(wèn)題,但燒到片子里,不能正常運(yùn)行。情況是這樣的:假如循環(huán)向EEPROM中寫數(shù)據(jù),9,8,7,6,5,4,3,2,1,然后讀,發(fā)現(xiàn)每一位讀出的都一樣,是寫循環(huán)中第一個(gè)寫進(jìn)去的字節(jié),也就是9。其他的并沒(méi)有寫進(jìn)去。
請(qǐng)問(wèn)各位有遇到過(guò)這樣的問(wèn)題嗎?我是完全按照DATASHEET來(lái)的,實(shí)在沒(méi)著了,也沒(méi)有仿真器?
分別寫數(shù)據(jù)9和6到地址0和7,然后讀出并顯示。請(qǐng)教其中原因。很奇怪的!
.
.
BSF STATUS,RP0
CLRF EEADR ;地址0
MOVLW .9
MOVWF EEDAT ;待寫數(shù)據(jù)是9
BSF EECON1,WREN ;使能寫
MOVLW 0X55
MOVWF EECON2
MOVLW 0XAA
MOVWF EECON2
BSF EECON1,WR ;開始寫
NOP
NOP ;幾個(gè)NOP是另加的,怕對(duì)以下操作有影響
MOVLW .7
MOVWF EEADR ;地址7
MOVLW .6
MOVWF EEDAT ;待寫數(shù)據(jù)是6
MOVLW 0X55
MOVWF EECON2
MOVLW 0XAA
MOVWF EECON2
BSF EECON1,WR
NOP
BCF EECON1,WREN ;禁止寫
MOVLW .0 ;地址0
MOVWF EEADR
BSF EECON1,RD ;讀
MOVF EEDAT,W ;此處仿真W的內(nèi)容是9, 實(shí)際讀出也是9
.
. ;顯示以及延時(shí)程序
.
MOVLW .7 ;地址7
MOVWF EEADR
BSF EECON1,RD ;讀
MOVF EEDAT,W ;此處仿真W的內(nèi)容是6, 但實(shí)際運(yùn)行, 讀出是9
.
.
.
入EEPROM都有一個(gè)非易失性寫周期的,你自己也發(fā)現(xiàn)了延時(shí)可以。用EEIF可以用中斷方式而不需要延時(shí)方式(干嘛要死等呢?),如果要延時(shí),參考write cycle time參數(shù)。
At the completion of the write cycle, the WR bit is
cleared in hardware and the EE Write Complete
Interrupt Flag bit (EEIF) is set. The user can either
enable this interrupt or poll this bit. The EEIF bit
(PIR<7>) register must be cleared by software.
Data EEPROM Memory
D120 ED Cell Endurance 100K 1M — E/W -40°C ≤ TA ≤ +85°C
D120A ED Cell Endurance 10K 100K — E/W +85°C ≤ TA ≤ +125°C
D121 VDRW VDD for read/write VMIN — 5.5 V VMIN = Minimum operating
voltage
D122 TDEW Erase/Write cycle time — 4(typ)- 8(max) ms