I am trying to recycle my old Adafruit Grand Central board to use with Atmel Studio.I Adafruit website , I2C pins ( SDA , SCL ) are marked as PB20 and PB21 to be used as SERCOM-3 but in ADSAMD51 datasheet those pins are not available for I2C. I double checked with Atmel Start and it is not letting me pick those two pins for that purpose. I am guessing Adafruit is using a hardware or software connection between PB20-21 and the available ones but can't find which pins. Any ideas ?
The datasheet is indeed a little confusing and ambiguous about this. The datasheet states that all SERCOMs support USART, SPI, I2C - but, for example, SERCOM5 indicates SDA and SCL can be on PB02 and PB03. However, as you listed in the table, those pins are not mentioned as valid I2C pins.
I have personally verified that these pins do indeed work for I2C. So seeking clarity, I opened a support ticket with Microchip (great support, btw) to try and figure out if the datasheet was wrong, if start.atmel.com was wrong in not allowing one to select those pins, or what was up.
They got back to me quickly and indicated that while they do work for I2C, they do not have the power-output for high speed I2C operation, and even at low speed operation, you may need to clock the bus at very low speeds and may not be fully I2C spec compliant.
This is not stated explicitly in the datasheet that I can find - other than the table listing the "good" I2C pins you posted. And that's why start.atmel.com won't let you select them. You can use them, of course, but no guarantees on them complying with I2C spec and you'll need to lower the clock rate.
However, in my tests, I didn't have any issues with them, but I did have very good power supply and routing, so while it worked during testing, I wouldn't trust them for a production board. Thus - I changed my design to match the "recommended" pins/pads listed in the datasheet and those that start.atmel.com allow you to select.
Kind of a bummer, but that seems to be the scoop on that.