I2C – Everything you need to know article from www.mikroe.com
There is no need for a wordy introduction to I2C protocol. We all know it’s main parts – 2 wires, multiple slaves, sometimes multiple masters, up to 5MHz of speed. Often so have we all implemented an I2C connection. Still, every now and then, there’s that module that just won’t work. This time, we will do an in-depth research about the I2C protocol, and try to cover as much ground as possible.
A board that transforms your SSD1306 OLED Display into an RS232 monitor with HTML built-in parser. Now live on kickstarter.
My-SSD1306 allows you to connect any device equipped with RS232 to the I2C SSD1306 displays.
My-ssd1306 board should be put between the RS232 source and the I2C SSD1306 target. Two series of connection pins are provided both have VCC, GND, SDA and SCL but one serie has the VCC and GND swapped to allows a direct connection via a connector because some commercial displays have these two pins inverted.
my-ssd1306 an HTML interface to SSD1306 OLED display – [Link]
David Johnson-Davies published another great tutorial on how to use the Tiny Graphics Library to plot the outside temperature over 24 hours on a 128×64 OLED display using an ATtiny85.
This small graphics library provides point, line, and character plotting commands for use with an I2C 128×64 OLED display on an ATtiny85.
It supports processors with limited RAM by avoiding the need for a display buffer, and works with I2C OLED displays based on the SH1106 driver chip. These are available for a few dollars from a number of Chinese suppliers.
To demonstrate the graphics library I’ve written a simple application to measure the temperature every 15 minutes over a 24-hour period and display it as a live chart.
Mini Isolated Power Supply is designed for CAN, RS-485, RS-422, RS-232, SPI, I2C, Low-Power LAN applications. The power supply provides +/- 5.50 V DC symmetrical outputs with load current 500mA from 5V DC input. The project is built using SN6505A IC from Texas instruments. The SN6505A is a low-noise, low-EMI push-pull transformer driver, specifically designed for small form factor, isolated power supplies. It drives low profile, center-tapped transformers 5 V DC power supply. Ultra-low noise and EMI are achieved by slew rate control of the output switch voltage and through Spread Spectrum Clocking (SSC). The SN6505 consists of an oscillator followed by a gate drive circuit that provides the complementary output signals to drive ground referenced N-channel power switches. The device includes two 1-A Power-MOSFET switches to ensure start-up under heavy loads. The internal protection features include a 1.7A current limiting, under-voltage lockout, thermal shutdown, and break-before-make circuitry. SN6505 includes a soft-start feature that prevents high inrush current during power up with large load capacitors.
Isolated Power Supply for RS485, RS422, RS232, SPI, I2C and Power LAN – [Link]
California based company, Integrated Device Technology (IDT) has recently announced their new HS300x family of MEMS high-performance relative humidity (RH) and temperature sensors of dimension 3.0 × 2.41 × 0.8 mm DFN-style 6-pin LGA. Currently, there are four devices in this family—the HS3001, HS3002, HS3003, and HS3004. They are all the same from the view of functionality but differ slightly in terms of the accuracy of their relative humidity and temperature measurements.
The highlighted feature of this new lineup is that they do not require any user calibration. HS300x family of ICs has calibration and compensation logic integrated into the devices. These ICs output their fully corrected data using standard I2C protocols making the measured data from the sensors is rather easy.
As a side note, Relative humidity (RH) is the ratio of the partial pressure of water vapor to the equilibrium vapor pressure of water at a given temperature. As the entire output consists of only four bytes of data, calculating the corresponding relative humidity in percent and temperature in degrees Celsius is very easy.
Although the HS300x sensors operate as slave devices on the I2C bus (supporting clock frequencies from 100 kHz to 400 kHz), only one HS300x IC can be connected directly to a single I2C bus. To connect multiple sensors to a single I2C bus, an I2C multiplexer/switch has to be used. It would have been easier if IDT had dedicated the unused pin as an optional I2C address input bit, which would allow two HS300x devices to be connected to a single I2C bus.
If you’re interested in testing these ICs prior to incorporating them into a design, SDAH01 or SDAH02 evaluation kit can come handy. Although both kits utilize the HS3001 sensor, the SDAH01 kit outputs the measured data to a PC while the SDAH02 displays the data on an LCD screen.
This project features an easy to use Digital to Analog converter (DAC) shield for Arduino Nano. The project is built using MC4725 12Bit DAC IC over I2C communication. The shield directly seats on Arduino Nano and also can be used as stand-alone DAC converter that can be connected to other micro-controller board with help of 5 pin header connector. Output is 0-5V. PCB jumper J1 provided to select the address in case of using multiple modules on the same I2C .
Shield also provided with high current driver circuit, which converters voltage to current and can be used to drive Laser diode or LED. Maximum possible load 500mA.
DAC Shield For Arduino Nano using MCP4725 – [Link]
ams (Graz, Austria) has posted details of the TSL2540, a very-high sensitivity light-to-digital converter. Evaluation kit is available:
The TSL2540 is a very-high sensitivity light-to-digital converter that approximates the human eye response to light intensity under varying lighting conditions and transforms this light intensity to a digital signal output capable through a 1.8V I²C interface. The ALS sensor features 2 output channels, a visible channel and an IR channel. The visible channel has a photodiode with a photopic Interferometric UV and IR blocking filter and the IR channel has a photodiode with an IR pass filter.
Sometimes it may be necessary to use a display while making a hardware project, but the size and the type of the display may vary according to the application. In a previous project, we used a 0.96″ I2C OLED display, and in this project we will have an I2C 20×4 character display.
This tutorial will describe how to use 20 x 4 LCD display with Arduino to print a real-time clock and date.
Real Time Clock On 20×4 I2C LCD Display with Arduino – [Link]
In serial interface world, there are differential and non-differential protocols. The most famous one of differential interfaces is USB besides HDMI and others, while I2C is a non-differential one.
Joshua Vasquez from Hackaday decided to use DI2C (differential version of I2C) to communicate with a string of BNO055 sensor boards (a smart 9-DOF sensor with I2C interface).
If you’re not familiar with differential communication, the method behind it is straightforward; the line has two channels (positive and negative), where each line has the same signal but with an opposite voltage. The receiver then will calculate the difference between them. Mathematically:
Vb = -Va, So:
Vout = Va – Vb = Va – (-Va)
Now, what if there was a noise?. The noise will affect almost identically on both signals with the same voltage level. As a result the receiver can omit the noise in the output.
Back to I2C; Joshua used PCA9615 chip from NXP which is a bridge between the normal 2-wire I2C-bus and the 4-wire DI2C-bus.
As an use case; Joshua used DI2C to build an IMU Noodle for modeling a piece of foam twisting and turning in a 3D space simulator using data comes from a string of cards contain the BNO055 sensor and PCA9615 bridge.
PCA9615 was used in each Joshua’s card to bridge the normal I2C signals to DI2C ones. By bridging I2C to DI2C, PCA9615 makes the capability of using longer cables and I2C more rugged in noisy environments.
The PCB design files (KiCAD) and firmware can be downloaded from Joshua’s repository on Github. Moreover, Joshua mentioned important tips to setup DI2C in your next design. You can see these tips in his blog post on Hackaday.