Concept

Let’s assume as an example a bus where a Smart Battery IC has the address 0x0b.

As described in the standard a Smart Battery has got a “Battery Mode” register at subaddress 0x03.

Smart Battery Datasheet

When an I2C master reads data from this register, a standard I2C tracer would simply display the transferred raw data. This is not really helpful, because the developer has to use the data sheet to understand the meaning of the transfer.

Smart Battery Raw View

The register view displays, which data have been transferred to or from a register.

Smart Battery Register View

Using the register view the developer still needs the data sheet to understand the meaning of the bits in the transferred data.The value view allows the developer to work completely without the data sheet. In this view every bit gets displayed with its name and meaning.

Smart Battery Value View

Thus, no deeper knowledge about the register locations and the content of the registers is needed to efficiently debug and enhance applications.

Live View

I2C Studio’s Live View keeps you up-to-date, information is shown in a textual way and highlighted on changes.

Live View in a video

IRD Composer

I2C Studio comes with a large collection of IRD files for all common I2C devices. However, there will be always I2C devices for which there are no ready-to-use IRD files.

In such a situation the user has two possibilities for writing his own IRD files: he can write the IRD files, which are in fact XML files, by hand using the IRD User Manual and a text editor. Or he can use the IRD Composer to create the IRD files.

IRD Compiler

Using the IRD compiler it is possible to convert an IRD file to a C# source code file. Such a source code file contains one class, which offers a type-safe access to the registers/values of a device via the I2C bus.Using such a class communicating with an I2C slave from a script or your own .NET program becomes a lot of easier. It is no longer necessary to calculate the data bytes to be sent to the I2C slave from its data-sheet. Instead, the developer can simply assign the needed value to a property of the created class.