Content for I2C

I2C

I²C (Inter-Integrated Circuit), pronounced I-squared-C, is a synchronous, multi-master, multi-slave, packet switched, single-ended, serial computer bus invented in 1982 by Philips Semiconductor (now NXP Semiconductors). It is widely used for attaching lower-speed peripheral ICs to processors and microcontrollers in short-distance, intra-board communication. Alternatively, I²C is spelled I2C (pronounced I-two-C) or IIC (pronounced I-I-C). System Management Bus (SMBus), defined by Intel in 1995, is a subset of I²C, defining a stricter usage. One purpose of SMBus is to promote robustness and interoperability. Accordingly, modern I²C systems incorporate some policies and rules from SMBus, sometimes supporting both I²C and SMBus, requiring only minimal reconfiguration either by commanding or output pin use.

Using I2C sensors on a linux via a USB and IIO

“A short story of getting a tiny, cheap USB I²C adapter for a home server, learning about the Industrial I/O linux subsystem, and connecting it to collectd. A few months ago I wrote about using a Raspberry Pi with …

Tiny I2C Routines for all AVR Microcontrollers

“This article describes a set of minimal I2C routines that allow just about any Microchip/Atmel AVR processor to connect to I2C peripherals. To demonstrate the routines I’ve designed a port scanner that displays the I2C address of a …

How to use I2C Pins in Raspberry Pi Pico | I2C Scanner Code

“In this tutorial, we will learn how to use I2C Pins in Raspberry Pi Pico & go through the I2C Scanner Code. In this tutorial, we will learn how to use I2C Pins in Raspberry Pi Pico & go through the I2C …

How to Make Static LCD Driver With IC Interface

“Liquid Crystal Displays (LCD) are widely used for commercial and industrial applications because of their good visual properties, low cost and, low power consumption. These properties make the LCD the standard solution for battery-operated devices, like portable instruments, calculators, watches …

TCA9548A I2C Multiplexer Module - With Arduino and NodeMCU

“Did you ever get into a situation where you had to wire up two, three or more I2C Sensors to your Arduino just to realize that the sensors have a fixed or same I2C address. Moreover, you cannot have two …

Timonel - ATtiny85 I2C Bootloader

“Timonel is an I2C bootloader for ATtiny85 microcontrollers. The aim is to enable AVR firmware updates in scenarios where there is a more powerful MCU (ESP8266, Arduino, RPi, BeagleBone, etc.) acting as I2C master and one or more Tiny85 as …

The I2C Bus: When to Use an I2C Buffer

“This article discusses the use-cases, benefits, and applications of using an I2C buffer. Of all the serial interfaces used for embedded devices, I2C stands out as my personal favorite. While it may not have the same throughput as other serial …

OLED Tutorial | Convert SPI to I2C

“In this tutorial, we are going to learn about OLED displays. Which can be very easily interfaced with Arduino and can display important parameters for your project, and see how to convert these screens from SPI to I2C, So let …

I2C Design Mathematics: Capacitance and Resistance

“Learn about I2C and some of the design challenges that comes with it, including logic thresholds, factors that affect capacitance, and minimum and maximum pull-up resistance. This article covers what variables affect the capacitance of your bus. It also looks …

Arduino I2C Sniffer

“I’m working on an I2C project, but I don’t have a sampling oscilloscope and I need to see what the heck is going on, so I put together this quick and dirty I2C sniffer sketch. You connect two …