The Hardware Overview states that the 7-bit I2C unshifted address is 0x32 (0110010b). The electrical schematic states that the 7-bit I2C unshifted address is 0x64. Which is correct?
The caveat/confusion is that a 0x32 unshifted 7-bit address is 0x64 once shifted:
- The 7-bit address (0x32) gets shifted left by 1 bit
- A read/write bit is added in the least significant bit position
→ complete 8-bit value used on the wire
0x32 shifted left by 1 bit equals 0x64:
- 0x32 = 0011 0010 in binary
- Shift left one position: 0110 0100 = 0x64
When programming with this RTC module, you’ll typically:
- Use 0x32 when the library or API expects a 7-bit address
- Use 0x64 (for write) or 0x65 (for read) when bit-banging or using low-level I2C functions that expect the complete 8-bit value