bala0x07
Junior Member level 3
Hi everyone,
I'm currently working with the I2C interface of the Raspberry pi Model B.
I want to interface a Real time clock DS3231 with the Rpi.
The problem is Rpi's I2C is only scanning a maximum I2C address of 0x77 whereas the RTC chip address is at 0xD0.
I thought that the Pi is considering only 7-bit slave address and doing the shifting works by itself and will expect 0x68 instead of 0xD0 (0xD0 >> 1 = 0x68), but it didnt work.
Ok lets assume only 7-bits, anyhow the maximum address should be 0x7F and not 0x77, right ?
Ok lets forget the scan, I just tried to ping the chip with its address, but it reporting an error only when I input a slave address greater than 0x77
The same problem happens on ESP8266 with Micropython firmware in it.
I have previously interfaced the same DS3231 with PIC & AVR and didnt find any issues.
So what is the issue on these things, why 0x77 is the maximum I2C slave address these devices are expecting ?
I also did surfing round the internet, but no clues.
I could only find how to set DS3231 as Rpi's main clock rather than synchronizing from the web.
But that doesn't serve my purpose. I need full control over the chip.
So what can I do ? Any ideas ?
Had anyone solved these mysteries before ?
I'm currently working with the I2C interface of the Raspberry pi Model B.
I want to interface a Real time clock DS3231 with the Rpi.
The problem is Rpi's I2C is only scanning a maximum I2C address of 0x77 whereas the RTC chip address is at 0xD0.
I thought that the Pi is considering only 7-bit slave address and doing the shifting works by itself and will expect 0x68 instead of 0xD0 (0xD0 >> 1 = 0x68), but it didnt work.
Ok lets assume only 7-bits, anyhow the maximum address should be 0x7F and not 0x77, right ?
Ok lets forget the scan, I just tried to ping the chip with its address, but it reporting an error only when I input a slave address greater than 0x77
The same problem happens on ESP8266 with Micropython firmware in it.
I have previously interfaced the same DS3231 with PIC & AVR and didnt find any issues.
So what is the issue on these things, why 0x77 is the maximum I2C slave address these devices are expecting ?
I also did surfing round the internet, but no clues.
I could only find how to set DS3231 as Rpi's main clock rather than synchronizing from the web.
But that doesn't serve my purpose. I need full control over the chip.
So what can I do ? Any ideas ?
Had anyone solved these mysteries before ?