| ??? 06/02/06 19:50 Read: times |
#117644 - Problem with eeprom AT89S8253 |
Hello friends,
After years with the at89s8252 I started using the at89s8253. I have problem writing its EEPROM. I use the following program:
EEMEN EQU 00001000b
EEMWE EQU 00011000b
EEPREADY EQU 00000010b
; ********************************************
;DN WREP8252
;D Read 8252 EEPROM @DPTR in A
; ********************************************
RDEP8252: ORL WMCON,#EEMEN ; Enable EEPROM
MOVX A,@DPTR ; EEPROM @DPTR > A
XRL WMCON,#EEMEN ; Disable EEPROM
INC DPTR
RET
; ********************************************
;DN WRITEEEP
;D Write 8252 EEPROM @DPTR
;********************************************
WREP8252: ORL WMCON,#EEMWE ; Enable write
MOVX @DPTR,A
WREEPR1: MOV A,WMCON ; Status
ANL A,#EEPREADY ; Check RDY/BSY'
JZ WREEPR1 ; Wait for RDY high
XRL WMCON,#EEMWE ; Disable write
RET
It worked fine with the 8252 but with the 8253 I have the following problem. Directly after the write(WREP8252) I read it back (RDEP8252) and test if the value written equals the value read back. The high bit is inverted: FF > 7F 00 > 80 But when I look again the value is correct written. I know that some EEPROM'S used the inversion of the high bit to indicate that the write is not completed but there is nothng in the manual about this method in de 8253. I think that the RDY/BSY' bit is to indicate the end of the write. As a result my Edit function returns an error, displays what is found, wich is the correct value <M> Edit EEPROM <1> 0100 <*> 1 2 3 0100: . FF 00 80 0100: . 00 <4 0101: . 00 FF 7F 0101: . FF 1 the old value 2 new value typed by user 3 new value returned by system 4 new value of memory location (correctly changed) Please Help |
| Topic | Author | Date |
| Problem with eeprom AT89S8253 | 01/01/70 00:00 | |
| Maybe here | 01/01/70 00:00 | |
| To Jon | 01/01/70 00:00 | |
| Crude way to solve the problem | 01/01/70 00:00 | |
No problem - glad you shared ... | 01/01/70 00:00 |



