I have a DS24B33 EEPROM connected to a DS2482. I'm trying to write a single byte value (0x41) to address 0 of the DS24B33. After writing to the scratchpad, I read the scratchpad back to verify the data was written correctly. However, I'm unable to correctly read back the 2 address bytes and the data byte from the scratchpad. I always get back 0xFF rather than the contents of the scratchpad. Here's the steps I'm using:
1 - Write B4 - 1-wire reset
2 - Busy-wait - wait for 1-wire idle
3 - Write A5/0F - 1-wire write byte - write scratchpad
4 - Busy-wait - wait for 1-wire idle
5 - Write A5/00 - Address low
6 - Busy-wait - wait for 1-wire idle
7 - Write A5/00 - Address high
8 - Busy-wait - wait for 1-wire idle
9 - Write A5/41 - data value
10 - Busy-wait - wait for 1-wire idle
11 - Write B4 - 1-wire reset
12 - Busy-wait - wait for 1-wire idle
13 - Write A5/AA - 1-wire write byte - read scratchpad
14 - Busy-wait - wait for 1-wire idle
15 - Write 96 - 1-wire read byte
16 - Write E1/E1 - Set the Read Pointer to the Read Data Register
17 - Read a byte from the DS2482. This should be address low (the value written at step 5), but is always 0xFF.
18 - Repeat steps 15-17 3 more times to read a total of 4 bytes from the scratchpad - TA1, TA2, E/S, data byte. Each data byte value read is 0xFF, rather than the expected values.
Attaching logic analyzer capture of steps 1-2:
Attaching logic analyzer capture of steps 3-7:
Attaching logic analyzer capture of steps 8-12:
Attaching logic analyzer capture of steps 13-17:
Attaching logic analyzer capture of step 18:
What is the correct sequence of steps needs to correctly read the scratchpad of the DS24B33 through the DS2482?
Corrected description of bytes read as 0xFF.
[edited by: Brian99 at 10:00 PM (GMT -5) on 15 Jan 2025]