I2C adressing of registers

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at https://www.dialog-semiconductor.com/support . We’ll be fixing bugs / optimising the searching and tagging over the coming days.
4 posts / 0 new
Last post
pkrmht
Offline
Last seen: 2 years 7 months ago
Joined: 2020-01-09 13:40
I2C adressing of registers

Dear Forum

Figure 102 (I2C block addressing) of SLG468246 datasheet states A[10:8] = "00X" addresses "2 Kbits Register Data Configuration". Since the register address space has 8 bits only, I wonder what A[10:8] = "001" is used for (I2C ping shows the device actually acknowledges at this address).
Is this just reserved for future addressing of larger address spaces (totally 4 Kbits) and has not function behind it? Or does it have a specific function? If yes, which one? Any pitfall?

Thanks for your inputs in advance & best regards
Peter

Device: 
Device Number: 
SLG468246
pavloZ
Offline
Last seen: 2 years 6 months ago
Staff
Joined: 2018-01-31 12:50
Hi Peter,

Hi Peter,

GPAK addressing is slightly different than common I2C addressing. A[10:8] is used for choosing a memory block (see memory map)

please refer to the ISP documentation provided by Alex Richardson here:

https://support.dialog-semiconductor.com/forums/post/greenpak-and-greenf...

thanks and regards,

Pavlo

pkrmht
Offline
Last seen: 2 years 7 months ago
Joined: 2020-01-09 13:40
Hi Pavlo

Hi Pavlo

I think I got the point pretty well: A[10:8], which selects the memory block is part of the slave address.

Since I found no answer to my question in your provided link, let me ask my question a little bit different.
In my case (Code = 5), the device responds to I2C ping on the following slave addresses:
- 0x28 : (A[10:8] = 00X in docu) According to docu access to 2048 bits (256 bytes) of register
- 0x29 : (A[10:8] = 00X in docu) According to docu access to 2048 bits (256 bytes) of register
- 0x2A : (A[10:8] = 010 in docu) According to docu access to 2048 bits (256 bytes) of NVM data configuration
- 0x2B : (A[10:8] = 011 in docu) According to docu access to 2048 bits (256 bytes) of EEPROM

My question: What is the difference accessing e.g. IO0 register (A[7:0] = 0x61) through slave address 0x28 or through 0x29 (both fullfill the requirement A[10:8] = 00X from the docu)?

Best regards,
Peter

 

pavloZ
Offline
Last seen: 2 years 6 months ago
Staff
Joined: 2018-01-31 12:50
Hi Peter,

Hi Peter,

the address A[10:8]=000 is specified as Register Data Configuration, but

the address A[10:8]=001 is specified as Not Used, that is the difference.

Thanks and regards,

Pavlo