??? 01/10/07 21:27 Read: times |
#130601 - No Change... Responding to: ???'s previous message |
Unfortunately, when I added the SETB SDA command (to release SDA), nothing changed. It is impossible to understand for me what is the problem. Firstly I have started to study I2C bus protocol with 24C02. There was no problem on simulation and also real application. The program which you see below is the 24C02(ST Electronics) write&read operation. The only difference is the DPH address specification sub program part for the 24C32. So, what is the reason which causes to failure? Suggestions please.
Batuhan $MOD51 ORG 00H SCL EQU P2.0 SDA EQU P2.1 VERI EQU 30H MOV IE,#00H MOV DPL,#10H MOV VERI,#01H ACALL EEPROM_WRITE NOP ACALL EEPROM_READ MOV P1,VERI GO: NOP AJMP GO EEPROM_WRITE: LCALL I2C_START LCALL EE_ADD_WR JB PSW.5,EEPROM_WRITE MOV A,DPL LCALL I2C_WRITE LCALL ACK JB PSW.5,EEPROM_WRITE MOV A,VERI LCALL I2C_WRITE LCALL ACK JB PSW.5,EEPROM_WRITE LCALL I2C_STOP LCALL WAIT RET EEPROM_READ: LCALL I2C_START LCALL EE_ADD_WR JB PSW.5,EEPROM_READ MOV A,DPL LCALL I2C_WRITE LCALL ACK JB PSW.5,EEPROM_READ LCALL I2C_START LCALL EE_ADD_RD LCALL I2C_READ LCALL NO_ACK LCALL I2C_STOP LCALL WAIT RET EE_ADD_WR: MOV A,#0A0H LCALL I2C_WRITE LCALL ACK RET EE_ADD_RD: MOV A,#0A1H LCALL I2C_WRITE LCALL ACK RET I2C_WRITE: MOV R7,#8D CLR C LOOP: RLC A MOV SDA,C LCALL CLOCK DJNZ R7,LOOP RET I2C_READ: MOV R7,#8D LOOP2: SETB SDA SETB SCL NOP NOP MOV C,SDA RLC A CLR SCL NOP NOP DJNZ R7,LOOP2 MOV VERI,A RET I2C_START: SETB SCL SETB SDA NOP CLR SDA NOP CLR SCL RET I2C_STOP: SETB SCL CLR SDA NOP SETB SDA NOP CLR SCL RET ACK: CLR SCL SETB SCL NOP JNB SDA,GO_ON SETB PSW.5 CLR SCL RET GO_ON: CLR SCL RET NO_ACK: CLR SCL SETB SDA SETB SCL NOP CLR SCL CLR SDA RET CLOCK: SETB SCL NOP NOP CLR SCL RET WAIT: MOV B,#41d LOOP3: MOV R1,#0FFH LOOP4: NOP DJNZ R1,LOOP4 DJNZ B,LOOP3 RET END |
Topic | Author | Date |
I2C clock freq. | 01/01/70 00:00 | |
Incorrect | 01/01/70 00:00 | |
release SDA bit | 01/01/70 00:00 | |
My Code | 01/01/70 00:00 | |
bingo! I guessed it! | 01/01/70 00:00 | |
No Change... | 01/01/70 00:00 | |
Please can you comment your code | 01/01/70 00:00 | |
Define Bad | 01/01/70 00:00 | |
Why? | 01/01/70 00:00 | |
'scope | 01/01/70 00:00 | |
'scope | 01/01/70 00:00 | |
New Image | 01/01/70 00:00 | |
look at the I2C document...![]() | 01/01/70 00:00 |