Tag Archives: I2C

Isolated Power Supply for RS485, RS422, RS232, SPI, I2C and Power LAN

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]

IDT Announces High Performance MEMS Relative Humidity & Temperature Sensor

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.

Development board for ITD MEMs sensors

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.

DAC Shield For Arduino Nano using MCP4725

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]

TSL2540 Ambient Light Sensor matches eye-response

TSL2540: Other Product Document (English)

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.

TSL2540 Ambient Light Sensor matches eye-response – [Link]

Real Time Clock On 20×4 I2C LCD Display with Arduino

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]

DI2C -The Differential Version of I2C

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)

Image Source: Hackaday

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.

Image Source: Hackaday

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.

PCA9615 Block Diagram.
PCA9615 Block Diagram. DSCLP and DSCLM are the clock plus/minus input/output respectively. While DSDAP and DSDAM are the datat plus/minus input/output.

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.

(a) PCA9615 Application Diagram (b) Ribbon-cable Connectors. (c) BNO055 with PCA9615 Module.

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.

IMU Noodle in Action

20×4 I2C Character LCD display with Arduino Uno

Our friends on educ8s.tv published a new video! Check it out.

Hello guys, I am Nick and welcome to educ8s.tv a channel that is all about DIY electronics projects with Arduino, Raspberry Pi, ESP8266 and other popular boards. Subscribe to the channel now if you don’t want to miss any future videos. In this video we are going learn how to use this inexpensive character LCD display with Arduino. After we learn how to use the display we are going to build something useful. A simple real time clock. Let’s start.

20×4 I2C Character LCD display with Arduino Uno [Link]

LTM9100 – Anyside™ High Voltage Isolated Switch Controller with I²C

The LTM9100 μModule is an all-in-one solution for controlling, protecting, and monitoring high voltage power supplies up to 1000VDC. A 5kVRMS galvanic isolation barrier separates the digital interface from the switch controller, driving an external N-channel MOSFET or IGBT switch. Isolated digital measurements of load current, bus voltage, and temperature are accessed via the I2C/SMBus interface, enabling power and energy monitoring of the high voltage bus. The LTM9100 saves design time, certification effort, and board area by wrapping all the needed functionality, including digital telemetry and isolated power, in a compact BGA package.

LTM9100 – Anyside™ High Voltage Isolated Switch Controller with I²C – [Link]

Basics of most common communication protocols

circuitbasics.com has published a series of tutorials on the most popular communication protocols, like UART, I2C, SPI etc. Check them on the links below.

Expand Your ESP8266 Analog Inputs With $10

ESP8266 is a very powerful module for building an IoT or WiFi-based project. But since it has only one analog input, you may need to use another microcontroller or circuit to connect multiple sensors and data sources with your ESP8266.

Allaboutee created the second version of their analog expander board. Simply it is a board that lets you add eight analog inputs to your ESP8266 via I2C, the first version had only four inputs.

The expander is a 19x14mm board that is powered by a range of 2.7V to 3.6V, features 8 10-bit resolution analog inputs for sensors with an output voltage lower than 3.3V. Allaboutee developed some open source, easy to use libraries and examples:

Expander pinout:

  • VDD – 2.7V to 3.6V (If using with ESP8266 you’ll have to use 3.3V for this pin).
  • GND – Ground
  • SCL – I2C clock (connect this to GPIO0 of the ESP8266)
  • SDA – I2C data (connect this to GPIO2 of the ESP8266)
  • A0 -> A7 – Analog inputs (0v to 3.3V)

You can not use two or more boards to have more than 8 analog inputs because the chip’s I2C is factory fixed. If you do not connect a pin to anything, it will be “floating”, that means it’s value is not defined so it can be anything.

This video shows the expander board in action:

ESP8266 expander is available for $10 at tindie, it may be a bit expensive but with the cost of ESP8266, it is a very cheap alternative of the $100 Arduino Wifi shield.

“If you were to desire an Arduino based and thus easy to program, WiFi enabled microcontroller, then you could purchase an Arduino WiFi shield for $100+, OR you could instead get an esp8266 w/ breakout board for $6, A 3.3v voltage regulator for $1, the analog input expander $10 and an FTDI to USB 3.3v programmer $3.” – A review by Erol