All Boards I2C-tools

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

All Boards I2C-tools

All Boards I2C-tools

I²C is a communication protocol used to exchange information between cores. To see more about I²C, please follow this link Wikipedia:I²C.

Enable I2C-tools in LTIB into Package List:

I2c-tools.jpg

Reboot your file system, there are three new I²C commands: i2cdetect, i2cdump and i2cset.

All examples below were tested in a iMX27ADS, but this programs seems to have the same behavior to all platforms.


Detecting busses

This command lists all installed bus.

mx27# i2cdetect -l 
i2c-0   unknown         MXC I2C Adapter                         Algorithm unavailable 

There is one installed bus with address 0.


Installed Chips

I2cdetect shows the installed chips too.

mx27# i2cdetect 0 
    WARNING! This program can confuse your I2C bus, cause data loss and worse! 
    I will probe file /dev/i2c/0. 
    I will probe address range 0x03-0x77. 
        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 
00:          XX XX XX XX XX XX XX XX XX XX XX XX XX 
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
20: XX XX XX XX XX XX XX XX XX XX XX XX XX 2d XX XX 
30: UU XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
60: XX XX XX XX XX XX XX XX XX XX UU XX XX XX XX XX 
70: XX XX XX XX XX XX XX XX 

There are several cores installed into bus i2c-0.

If you received an error message like this:

# i2cdetect 0 
Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory 

You will need to create the special file /dev/i2c-0 :

# mknod /dev/i2c-0 c 89 0 


Chip Registers

i2cdump shows a list of all registers for a core. For example, the command above shows registers for core with address 0x6a:

mx27# i2cdump 0 0x6a 
No size specified (using byte-data access) 
    WARNING! This program can confuse your I2C bus, cause data loss and worse! 
    I will probe file /dev/i2c/0, address 0x6a, mode byte 
        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef 
00: 00 00 28 00 00 03 15 03 00 00 00 00 00 00 03 01    ..(..???......?? 
10: 04 01 00 00 04 01 00 00 17 41 1d 00 09 09 1f 03    ??..??..?A?.???? 
20: 00 00 40 00 08 00 0c 00 0f 01 00 00 00 00 08 11    ..@.?.?.??....?? 
30: 00 0f 05 fe 0b 00 00 00 82 00 0c 02 00 00 01 00    .????...?.??..?. 
40: 21 f0 7c 1f 00 00 01 00 7a 40 80 38 00 01 47 00    !?|?..?.z@?8.?G. 
50: 3c 00 17 21 1b 1b 24 9f 00 3e 0f 0f 60 05 cd 03    <.?!??$?.>??`??? 
60: 89 04 89 01 02 00 0a 05 00 19 ff 03 24 0f 78 00    ?????.??.?.?$?x. 
70: 00 b2 06 14 04 08 00 a3 c8 15 05 15 3c 00 00 20    .?????.?????<.. 
80: 07 2f 07 00 00 00 00 00 00 00 00 ff 03 1a 1a 1a    ?/?.........???? 
90: 1a 1a 40 03 00 00 00 00 00 00 00 00 00 00 e4 00    ??@?..........?. 
a0: 00 02 4d 00 96 00 1d 00 a0 00 db 00 7e 00 00 00    .?M.?.?.?.?.~... 
b0: 00 00 00 00 00 00 f0 00 00 00 00 00 00 00 00 00    ......?......... 
c0: 00 00 00 00 48 9c 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a    ....H??????????? 
d0: 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a    ???????????????? 
e0: 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a    ???????????????? 
f0: 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a    ????????????????


Setting a register

To change some register value, use i2cset like in example below:

mx27# i2cset 0 0x6a 01 0x0008 w 
    WARNING! This program can confuse your I2C bus, cause data loss and worse! 
    I will write to device file /dev/i2c/0, chip address 0x6a, data address 
    0x00, data 0x08, mode word. 
Value 0x8 written, readback matched

Where:

  • 0 is the bus address
  • 0x6a is the slave address
  • 01 is the register address
  • 0x0008 is the new value for register
  • w is the word mode for the setting



Tags (1)
%3CLINGO-SUB%20id%3D%22lingo-sub-1117101%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EAll%20Boards%20I2C-tools%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1117101%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%C2%B2C%20is%20a%20communication%20protocol%20used%20to%20exchange%20information%20between%20cores.%20To%20see%20more%20about%20I%C2%B2C%2C%20please%20follow%20this%20link%20%3CA%20class%3D%22extiw%22%20href%3D%22http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FI%25C2%25B2C%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20title%3D%22wikipedia%3AI%C2%B2C%22%20target%3D%22_blank%22%3EWikipedia%3AI%C2%B2C%3C%2FA%3E.%3C%2FP%3E%3CP%3EEnable%20I2C-tools%20in%20LTIB%20into%20Package%20List%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22I2c-tools.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22I2c-tools.jpg%22%20style%3D%22width%3A%20657px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F37742i11C163A475157E9E%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22I2c-tools.jpg%22%20alt%3D%22I2c-tools.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EReboot%20your%20file%20system%2C%20there%20are%20three%20new%20I%C2%B2C%20commands%3A%20%3CSTRONG%3Ei2cdetect%3C%2FSTRONG%3E%2C%20%3CSTRONG%3Ei2cdump%3C%2FSTRONG%3E%20and%20%3CSTRONG%3Ei2cset%3C%2FSTRONG%3E.%3C%2FP%3E%3CP%3EAll%20examples%20below%20were%20tested%20in%20a%20iMX27ADS%2C%20but%20this%20programs%20seems%20to%20have%20the%20same%20behavior%20to%20all%20platforms.%3C%2FP%3E%3CH2%20id%3D%22toc-hId--1415333364%22%20id%3D%22toc-hId--1415333364%22%20id%3D%22toc-hId--500094011%22%3E%3CSPAN%20class%3D%22mw-headline%22%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FH2%3E%3CH2%20id%3D%22toc-hId-1072179469%22%20id%3D%22toc-hId-1072179469%22%20id%3D%22toc-hId-1987418822%22%3E%3CSPAN%20class%3D%22mw-headline%22%3EDetecting%20busses%3C%2FSPAN%3E%3C%2FH2%3E%3CP%3E%3C%2FP%3E%3CP%3EThis%20command%20lists%20all%20installed%20bus.%3C%2FP%3E%3CPRE%20class%3D%22jive-pre%22%3Emx27%23%20i2cdetect%20-l%20%0Ai2c-0%26nbsp%3B%26nbsp%3B%20unknown%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20MXC%20I2C%20Adapter%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20Algorithm%20unavailable%20%0A%3C%2FPRE%3E%3CP%3EThere%20is%20one%20installed%20bus%20with%20address%200.%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E%20%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CH2%20id%3D%22toc-hId--735274994%22%20id%3D%22toc-hId--735274994%22%20id%3D%22toc-hId-179964359%22%3E%3CSPAN%20class%3D%22mw-headline%22%3EInstalled%20Chips%3C%2FSPAN%3E%3C%2FH2%3E%3CP%3E%3C%2FP%3E%3CP%3EI2cdetect%20shows%20the%20installed%20chips%20too.%3C%2FP%3E%3CPRE%20class%3D%22jive-pre%22%3Emx27%23%20i2cdetect%200%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%20WARNING!%20This%20program%20can%20confuse%20your%20I2C%20bus%2C%20cause%20data%20loss%20and%20worse!%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%20I%20will%20probe%20file%20%2Fdev%2Fi2c%2F0.%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%20I%20will%20probe%20address%20range%200x03-0x77.%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%200%26nbsp%3B%201%26nbsp%3B%202%26nbsp%3B%203%26nbsp%3B%204%26nbsp%3B%205%26nbsp%3B%206%26nbsp%3B%207%26nbsp%3B%208%26nbsp%3B%209%26nbsp%3B%20a%26nbsp%3B%20b%26nbsp%3B%20c%26nbsp%3B%20d%26nbsp%3B%20e%26nbsp%3B%20f%20%0A00%3A%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20%0A10%3A%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20%0A20%3A%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%202d%20XX%20XX%20%0A30%3A%20UU%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20%0A40%3A%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20%0A50%3A%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20%0A60%3A%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20UU%20XX%20XX%20XX%20XX%20XX%20%0A70%3A%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20XX%20%0A%3C%2FPRE%3E%3CP%3EThere%20are%20several%20cores%20installed%20into%20bus%20i2c-0.%3C%2FP%3E%3CP%3EIf%20you%20received%20an%20error%20message%20like%20this%3A%3C%2FP%3E%3CPRE%20class%3D%22jive-pre%22%3E%23%20i2cdetect%200%20%0AError%3A%20Could%20not%20open%20file%20%60%2Fdev%2Fi2c-0'%20or%20%60%2Fdev%2Fi2c%2F0'%3A%20No%20such%20file%20or%20directory%20%3C%2FPRE%3E%3CP%3EYou%20will%20need%20to%20create%20the%20special%20file%20%2Fdev%2Fi2c-0%20%3A%3C%2FP%3E%3CPRE%20class%3D%22jive-pre%22%3E%23%20mknod%20%2Fdev%2Fi2c-0%20c%2089%200%20%3C%2FPRE%3E%3CH2%20id%3D%22toc-hId-1752237839%22%20id%3D%22toc-hId-1752237839%22%20id%3D%22toc-hId--1627490104%22%3E%3CSPAN%20class%3D%22mw-headline%22%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FH2%3E%3CH2%20id%3D%22toc-hId--55216624%22%20id%3D%22toc-hId--55216624%22%20id%3D%22toc-hId-860022729%22%3E%3CSPAN%20class%3D%22mw-headline%22%3EChip%20Registers%3C%2FSPAN%3E%3C%2FH2%3E%3CP%3E%3C%2FP%3E%3CP%3Ei2cdump%20shows%20a%20list%20of%20all%20registers%20for%20a%20core.%20For%20example%2C%20the%20command%20above%20shows%20registers%20for%20core%20with%20address%200x6a%3A%3C%2FP%3E%3CPRE%20class%3D%22jive-pre%22%3Emx27%23%20i2cdump%200%200x6a%20%0ANo%20size%20specified%20(using%20byte-data%20access)%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%20WARNING!%20This%20program%20can%20confuse%20your%20I2C%20bus%2C%20cause%20data%20loss%20and%20worse!%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%20I%20will%20probe%20file%20%2Fdev%2Fi2c%2F0%2C%20address%200x6a%2C%20mode%20byte%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%200%26nbsp%3B%201%26nbsp%3B%202%26nbsp%3B%203%26nbsp%3B%204%26nbsp%3B%205%26nbsp%3B%206%26nbsp%3B%207%26nbsp%3B%208%26nbsp%3B%209%26nbsp%3B%20a%26nbsp%3B%20b%26nbsp%3B%20c%26nbsp%3B%20d%26nbsp%3B%20e%26nbsp%3B%20f%26nbsp%3B%26nbsp%3B%26nbsp%3B%200123456789abcdef%20%0A00%3A%2000%2000%2028%2000%2000%2003%2015%2003%2000%2000%2000%2000%2000%2000%2003%2001%26nbsp%3B%26nbsp%3B%26nbsp%3B%20..(..%3F%3F%3F......%3F%3F%20%0A10%3A%2004%2001%2000%2000%2004%2001%2000%2000%2017%2041%201d%2000%2009%2009%201f%2003%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3F%3F..%3F%3F..%3FA%3F.%3F%3F%3F%3F%20%0A20%3A%2000%2000%2040%2000%2008%2000%200c%2000%200f%2001%2000%2000%2000%2000%2008%2011%26nbsp%3B%26nbsp%3B%26nbsp%3B%20..%40.%3F.%3F.%3F%3F....%3F%3F%20%0A30%3A%2000%200f%2005%20fe%200b%2000%2000%2000%2082%2000%200c%2002%2000%2000%2001%2000%26nbsp%3B%26nbsp%3B%26nbsp%3B%20.%3F%3F%3F%3F...%3F.%3F%3F..%3F.%20%0A40%3A%2021%20f0%207c%201f%2000%2000%2001%2000%207a%2040%2080%2038%2000%2001%2047%2000%26nbsp%3B%26nbsp%3B%26nbsp%3B%20!%3F%7C%3F..%3F.z%40%3F8.%3FG.%20%0A50%3A%203c%2000%2017%2021%201b%201b%2024%209f%2000%203e%200f%200f%2060%2005%20cd%2003%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%26lt%3B.%3F!%3F%3F%24%3F.%26gt%3B%3F%3F%60%3F%3F%3F%20%0A60%3A%2089%2004%2089%2001%2002%2000%200a%2005%2000%2019%20ff%2003%2024%200f%2078%2000%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3F%3F%3F%3F%3F.%3F%3F.%3F.%3F%24%3Fx.%20%0A70%3A%2000%20b2%2006%2014%2004%2008%2000%20a3%20c8%2015%2005%2015%203c%2000%2000%2020%26nbsp%3B%26nbsp%3B%26nbsp%3B%20.%3F%3F%3F%3F%3F.%3F%3F%3F%3F%3F%26lt%3B..%20%0A80%3A%2007%202f%2007%2000%2000%2000%2000%2000%2000%2000%2000%20ff%2003%201a%201a%201a%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3F%2F%3F.........%3F%3F%3F%3F%20%0A90%3A%201a%201a%2040%2003%2000%2000%2000%2000%2000%2000%2000%2000%2000%2000%20e4%2000%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3F%3F%40%3F..........%3F.%20%0Aa0%3A%2000%2002%204d%2000%2096%2000%201d%2000%20a0%2000%20db%2000%207e%2000%2000%2000%26nbsp%3B%26nbsp%3B%26nbsp%3B%20.%3FM.%3F.%3F.%3F.%3F.~...%20%0Ab0%3A%2000%2000%2000%2000%2000%2000%20f0%2000%2000%2000%2000%2000%2000%2000%2000%2000%26nbsp%3B%26nbsp%3B%26nbsp%3B%20......%3F.........%20%0Ac0%3A%2000%2000%2000%2000%2048%209c%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%26nbsp%3B%26nbsp%3B%26nbsp%3B%20....H%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%20%0Ad0%3A%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%20%0Ae0%3A%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%20%0Af0%3A%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%201a%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%0A%3C%2FPRE%3E%3CH2%20id%3D%22toc-hId--1862671087%22%20id%3D%22toc-hId--1862671087%22%20id%3D%22toc-hId--947431734%22%3E%3CSPAN%20class%3D%22mw-headline%22%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FH2%3E%3CH2%20id%3D%22toc-hId-624841746%22%20id%3D%22toc-hId-624841746%22%20id%3D%22toc-hId-1540081099%22%3E%3CSPAN%20class%3D%22mw-headline%22%3ESetting%20a%20register%3C%2FSPAN%3E%3C%2FH2%3E%3CP%3E%3C%2FP%3E%3CP%3ETo%20change%20some%20register%20value%2C%20use%20i2cset%20like%20in%20example%20below%3A%3C%2FP%3E%3CPRE%20class%3D%22jive-pre%22%3Emx27%23%20i2cset%200%200x6a%2001%200x0008%20w%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%20WARNING!%20This%20program%20can%20confuse%20your%20I2C%20bus%2C%20cause%20data%20loss%20and%20worse!%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%20I%20will%20write%20to%20device%20file%20%2Fdev%2Fi2c%2F0%2C%20chip%20address%200x6a%2C%20data%20address%20%0A%26nbsp%3B%26nbsp%3B%26nbsp%3B%200x00%2C%20data%200x08%2C%20mode%20word.%20%0AValue%200x8%20written%2C%20readback%20matched%0A%3C%2FPRE%3E%3CP%3EWhere%3A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CSTRONG%3E0%3C%2FSTRONG%3E%20is%20the%20bus%20address%3C%2FLI%3E%3CLI%3E%3CSTRONG%3E0x6a%3C%2FSTRONG%3E%20is%20the%20slave%20address%3C%2FLI%3E%3CLI%3E%3CSTRONG%3E01%3C%2FSTRONG%3E%20is%20the%20register%20address%3C%2FLI%3E%3CLI%3E%3CSTRONG%3E0x0008%3C%2FSTRONG%3E%20is%20the%20new%20value%20for%20register%3C%2FLI%3E%3CLI%3E%3CSTRONG%3Ew%3C%2FSTRONG%3E%20is%20the%20word%20mode%20for%20the%20setting%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%3CSPAN%20class%3D%22mce_paste_marker%22%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22mce_paste_marker%22%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E
100% helpful (1/1)
Version history
Last update:
‎09-10-2020 02:34 AM
Updated by: