How to monitor I2C traffic on i.MX6 SabreSD?

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

How to monitor I2C traffic on i.MX6 SabreSD?

Jump to solution
1,027 Views
petarbajic
Contributor III

For example I just want to see if there is any activity on specific i2c bus (channel?). I dont have any additional equipment, analyzers, oscilloscope, I just want to log activity on i2c after my touch panel stops reacting. Is there a way to do this?

Also, how to find i2c base address?

Labels (1)
0 Kudos
1 Solution
697 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos
5 Replies
697 Views
igorpadykov
NXP Employee
NXP Employee

Hi Petar

one can try All Boards I2C-tools

however seems, using oscilloscope or analyzer is most preferable option.

i2c base address can be found in documentation.

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
697 Views
petarbajic
Contributor III

Thank you for your reply.

These tools are handy, but it doesnt look like they could monitor the actual ongoing traffic on a bus. Unless subsequent dumping of registers would show that something is going on?

I was browsing all imx docs I could find for this base address but couldn't find it. If you can tell me more specific where to look for?

Edit: I just found this doc file https://community.freescale.com/servlet/JiveServlet/download/475517-286795/i.MX_6_Linux_Reference_Ma...

And I followed memory map chapter to this source code in kernel (grep i2c):

./mx6.h:#define MX6Q_I2C1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x20000)

./mx6.h:#define MX6Q_I2C2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x24000)

./mx6.h:#define MX6Q_I2C3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x28000)

./mx6.h:#define MX6SL_I2C4_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x78000)

./mx6.h:#define MX6DL_I2C4_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x78000)

I guess these addresses are used by all sabresd boards?

0 Kudos
698 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos
697 Views
petarbajic
Contributor III

Thank you!

0 Kudos
697 Views
igorpadykov
NXP Employee
NXP Employee

Hi Petar

I am not aware of such tools, regarding "base address",

which are you looking for ? If processor, then one needs

to check processor Reference Manual, usually this is

Chapter 2 Memory Maps, if i2c peripheral device - then

datasheet of that particular device.

1.jpg

~igor

0 Kudos