Real Time Clcok Module RV8803

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?

0x32 SparkFun_RV-8803_Arduino_Library/src/SparkFun_RV8803.h at main · sparkfun/SparkFun_RV-8803_Arduino_Library · GitHub

The caveat/confusion is that a 0x32 unshifted 7-bit address is 0x64 once shifted:

  1. The 7-bit address (0x32) gets shifted left by 1 bit
  2. 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