Go Down

Topic: Reassigning I2C pins (Read 724 times) previous topic - next topic

jgilbert20

I'm looking to build a low-cost I2C slave device based on the SAMD architecture.  I am experimenting with the ATSAMD11C, which is a 14-SOIC core that you can get in single quantities for just a few dollars. I successfully got a modified version of the following board up and running: https://hackaday.io/project/10210-dixi-arduino-sam-d11-usb-stick.

My main challenge right now is that the 14-SOIC configuration doesn't include the pins where the I2C SDC and SDA are assigned. I'd like to move those to other pins.

Does anyone have any experience with this type of reassignment? Right now, it seems like my only real option is to reconfigure the SERCOM object initializer to reference these new pins inside ArduinoCore. I am aware there is some sort of pin multiplexer. Can you really multiplex anything (e.g. can SERCOM point to any pins?)

Does anyone have some experience with this or can point me to a tutorial or a forum where I can ask? I'm super new to hacking inside the ArduinoCore and frankly worried I could end up pretty frustrated if I just took shots in the dark. I also see that all of the common arduino cores that target the SAMD21 are sticking with a common set of pin assignments as the Zero so I don't have any good examples of making a reassignment.



I have taken a first crack at reading through the SAMD11 data sheet but it hasn't really sunk in yet.

Thanks in advance,

Jeremy

MartinL

A tutorial for adding a new I2C to the SAMD21 can be found here: https://learn.adafruit.com/using-atsamd21-sercom-to-add-more-spi-i2c-serial-ports/creating-a-new-wire.

The whole article also includes adding new SPI and Serial ports.

Go Up