Helios64 support I2C bus for the low-speed communication between devices like microcontrollers, EEPROMs, A/D and D/A converters, I/O interface and other similar peripherals in embedded systems.
In order to communicate with each I2C slave device you will need an address and communication scenario.
- Serial 8bits oriented and bidirectional data transfers can be made
- Software programmable clock frequency
- Data on the I2C-bus can be transferred at rates of up to 100 kbit/s in the Standardmode, up to 400 kbit/s in the Fast-mode or up to 1 Mbit/s in Fast-mode Plus.
Helios64 exposed Bus number 7 and 8 of the I2C in **P2** and **P1** pinout, respectively.
This I2C bus can be connected to the external devices.
As described on below figure of [I2C](/helios64/img/hardware/i2c_pinout.png) (pin header number *3* and *4*), user can access the device at bus number 7.
For the [UEXT](/helios64/img/hardware/UEXT_pinout.png) (pin header number *5* and *6*), user can access the device at bus number 8.
All the I2C bus in the board are using voltage level of 3.3V, please notice Helios64 is integrated with level translator and pull up resistor.
The I2C header bus also can be found at UEXT connector (can be found at **P2** header at the the board [overview](/helios64/hardware/overview) page) on the header number 5 and 6.
Below is the detail description of the UEXT connector:
Here we can see there is a device detected at the address 0x3c. If you have connected more than just one I2C device on the **P1** header, there will be more device with different address detected on the bus.
We have demonstrated the use of I2C bus of our board in the OLED application, as shown in the [I2C(OLED)](/helios4/i2c/) page you can communicate to the external device by using the external I2C bus.