The phyCORE-AM65x SOM supports up to six I2C interfaces. This guide provides information on how to view, access, and interact with the I2C interfaces on the Linux development kit. 

Step-by-step guide

I2C devices

The six I2C interfaces will show up in Linux as the corresponding devices: 

Interfacesysfs Path
I2C0_WKUP/dev/i2c-0
I2C0_MCU/dev/i2c-1
I2C0/dev/i2c-2
I2C1/dev/i2c-3
I2C2/dev/i2c-4
I2C3/dev/i2c-3

I2C0 Devices

The I2C0 (/dev/i2c-2) interface is heavily utilized on the phyCORE-AM65x development kit. Devices onboard the SOM such as EEPROM and RTC are connected on this bus. In addition, on the development kit Carrier Board, this bus is used for the touch screen controller.

UU indicates that the device connected is tied to a driver. You will be unable to talk to this device via i2c command (i2cset and i2cget). 

These detected interfaces match with the devices connected to I2C0 on the development kit. 

InterfaceAddressDescription
EEPROM

0x50 (0x58)

4kB EEPROM on the SOM (EEPROM Guide)

RTC0x52External RTC on the SOM (RTC Guide)

Get Fancy!

For this simple demo we will be using the Heart Rate Click by MIKROE. 

The Heart Rate Click is capable of monitoring heart rates and measuring pulse oximetry! However, in this demo we will not be making full use of this sensor and will instead explore basic functionality of its integrated temperature reading capabilities (this is provided for calibrating SpO2 readings). By communicating with the sensor directly over I2C (using a bash script) we can demonstrate how to set registers within the MAX30100 sensor to configure it to perform an action (like measuring the temperature). Once the sensor has completed it's task we can again access the registers within the sensor to retrieve the result.