Magnetic absolute encoder, AS5600. Some advise please. (SOLVED)

Hi
To make a long story short.. I am giving up on google and reading near related posts.

I want to order AS5600 sensors from AMS for robot steer angles and arm joint angles (angle feed back to DUE board) with I2C protocol.
Data sheet mentions only one I2C address for sensor . From net and lots of read up... seems there is a register that holds a word (pointer) to the one I2C address.

Q. Can you use more than one AS5600 sensor on the same I2c bus?

Being a I2c interface sensor, surely you can use 20 or so AS5600 sensors on same bus.

Note: I am just a electronics hobbyist. Could there be a better sensor for what I am trying to do.. under AUD$5 per sensor?
AS5600 sensor description and data sheet :-\

datasheet - https://ams.com/ger/content/download/639463/1698857/file/AS5600_DS000365_3-00.pdf

The address of the sensor = 0x36

You can use more than one on the I2C bus if you add an I2C multiplexer

check - Overview | Adafruit TCA9548A 1-to-8 I2C Multiplexer Breakout | Adafruit Learning System

Thank you for the post robtillart

' The address of the sensor = 0x36 ' I did see the single address and from your suggestion " if you add an I2C multiplexer" I am let to believe that I cannot use more than one AS5600 on a bus accept if I use a multiplexer.

:cry: Will have to study up on using a I2C multiplexer through arduino code.

:confused: Kind of weird they that they would design an I2C sensor and not make it so that one can use lots of them on the same bus.

You can also put a transistor in the power line of the chip and control it by an IO pin of the Arduino or better from an I2C PCF8574 chip (gives you 8 IO lines…)

Then you just switch of all sensors you do not use and put only one on.

effectively you’re creating a multiplexer

(don’t know side effects like startup time, callibration etc)

Extract from data sheet:

ams Datasheet
Page 13
[v1-04] 2016-Sep-09
Document Feedback
*AS5600 − *
Detailed Description
I²C Modes
Invalid Addresses
There are two addresses used to access an AS5600 register. The
first is the slave address used to select the AS5600. All I²C bus
transactions include a slave address. The slave address of the
AS5600 is 0x36 (0110110 in binary) The second address is a word address sent in the first byte transferred in a write transaction.
The word address selects a register on the AS5600.
The word address is loaded into the address pointer on the AS5600.

Could there be a way to sent a word down I2c to select witch sensor, the word then points to the fixed I2c address register?
Why would they make I2C sensors and limit them to one sensor?

robtillaart:
You can also put a transistor in the power line of the chip and control it by an IO pin of the Arduino or better from an I2C PCF8574 chip (gives you 8 IO lines....)

Then you just switch of all sensors you do not use and put only one on.

effectively you're creating a multiplexer

(don't know side effects like startup time, callibration etc)

Huh? How is that going to work when they are all on the same I2C bus?

MarkT:
Huh? How is that going to work when they are all on the same I2C bus?

Chips that have no power will not act as a slave.

robtillaart:
Chips that have no power will not act as a slave.

But they could hold the I2C lines low if those pins have internal catch diodes.

...I'd stick to using a multiplexer.

Yours,
TonyWilk

TonyWilk:
But they could hold the I2C lines low if those pins have internal catch diodes.

...I'd stick to using a multiplexer.

Yours,
TonyWilk

you have a point ....

It is true

After contacting support it was confirmed that the I2C address can not be changed, so you can not use say 10 sensors on the same bus.

Now looking at Allegro A1335 chip.... near same price with both configurable I2C addresses and SPI

I used 5 of those AS5600 encoders to my robot:

I'm using Adafruit TCA9548A multiplexet and then all the positions are going to ESP32. On the begining I thought that everything is fine like on the Youtube link, but when I mounted the multiplexer next to the power suply, then all the nioses started to make a negative influance for position reading. I'm using pullup resistors bur it doesn't help.
All the connections with the encoders are secured with "cable shields" (I'm not sure do I translate it correctly) like it should be. I supose that the reason of those noises influance is that the position is not going directly from encoder to ESP32, but it must goes to multiplexer and then to ESP32.

So there is no chance to connect 5 AS5600 directly to ESP32 without multiplexer?