IRD (I2C Register Description) stands for a technology which introduces an entirely new level of device access.
Instead of working with addresses, offsets and byte values the user is provided with a comprehensive view of device registers which are given by the names used in the data sheets.
Mapping between such names and the physical locations within a device are done automatically by I2C Studio.
The mapping is device-dependent described by IRD files.
I2C Studio comes with an impressive bunch of IRD defined I2C devices.
We have prepared a introductional video on IRD.
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.
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.
The register view displays, which data have been transferred to or from a register.
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.
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
Click to start video showing the values changing by time
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.
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.