0
votes

I'm working on a robotics project and for joint position feedback I am using the AS5048B chip from AMS. I was experiencing some weird behavior with it connected to the I2C bus of my arduino mega so I decided to connect it just as a test to my arduino uno.

I've only been able to make one of the encoders talk over I2C that I have, but it looks like when I did the OTP command it programmed the wrong address, to 0x40 instead of 0x02. There are two hardware pins A1 and A2, that set the last 2 bits of the I2C address but I'm not sure whether to connect them to the 5V line, the 3V3 line, or one of those two with pulldown resistors in order to set the address to 0x41, 42, or 43. I already have 4K7 resistors pulling SDA and SCL to 5V but wasn't sure if that was correct either. Can someone give me some pointers?

1

1 Answers

1
votes

I answered my own question... this might help some of you other folks...

Take a look at the register table, the address is structured as follows:

1+(4 bits of OTP address)+(2 bits of A1/A2 jumper address)

That makes it so that if I program in 0010 for address 0x02, I really now have (without jumpers) 1001000 which is 0x48. I found this first using an address scanner code available here: http://forum.arduino.cc/index.php?topic=197360

And I thought I had fried my encoders...