Difference between revisions of "Example i2c test"

From wiki.emacinc.com
Jump to: navigation, search
Line 4: Line 4:
 
This is a guide to the <code>i2c_test</code> example project included in the EMAC OE SDK.
 
This is a guide to the <code>i2c_test</code> example project included in the EMAC OE SDK.
  
This procedure provides an overview of how to compile and run the ''i2c_test'' C example project. It assumes familiarity with the C programming language and is intended to be used by experienced programmers who are looking to learn the EMAC SDK.
+
This procedure provides an overview of how to compile and run the <code>i2c_test</code> C example project. It assumes familiarity with the C programming language and is intended to be used by experienced programmers who are looking to learn the EMAC SDK.
 +
 
 +
The <code>i2c_test</code> project build one executable: <code>i2c_test</code>.
 
__TOC__
 
__TOC__
 
== Opening, Building and Uploading the Project Files ==
 
== Opening, Building and Uploading the Project Files ==
Line 12: Line 14:
 
Alternatively, the <code>Makefile</code> can be used with the <code>make</code> command from the commandline to build and upload the example.  For more information on this method, please see [[Using EMAC OE SDK Example Projects]].
 
Alternatively, the <code>Makefile</code> can be used with the <code>make</code> command from the commandline to build and upload the example.  For more information on this method, please see [[Using EMAC OE SDK Example Projects]].
 
== Usage and Behavior ==
 
== Usage and Behavior ==
 +
===Hardware Requirements===
  
 +
The <code>i2c_test</code> C example project will run on any EMAC carrier board which has an <code>i2c</code> interface.
  
 
'''This is far too sparse.  They could discover this on their own.  There needs to be information on how and why to use each option of these menus.'''
 
'''This is far too sparse.  They could discover this on their own.  There needs to be information on how and why to use each option of these menus.'''
Line 18: Line 22:
 
This is an example test interface for reading/writing to the Linux I2C device interface. It is only relevant if the I2C device interface is enabled and an external I2C device is connected to the bus. See comments in ''i2c_test.c'' for details.
 
This is an example test interface for reading/writing to the Linux I2C device interface. It is only relevant if the I2C device interface is enabled and an external I2C device is connected to the bus. See comments in ''i2c_test.c'' for details.
  
'''Usage for i2c_test'''
+
===Using i2c_test===
  
i2c_test - Run it with the following command.
+
The <code>i2c_test</code> program is executed from the console. It takes no parameters.
  
ie: ./i2c_test
+
root@emac-oe~:$ ./i2c_test
  
 
A menu will appear in the terminal:
 
A menu will appear in the terminal:

Revision as of 17:17, 22 January 2014

TODO: {{#todo:InProgress(11.14.13-13:25->JG+);(11.14.13-15:45->MD-)|Brian Serrano|oe 4,oe 5,md,InProgress,bs}}

Create a real intro. This is going to need quite a bit of work still.

This is a guide to the i2c_test example project included in the EMAC OE SDK.

This procedure provides an overview of how to compile and run the i2c_test C example project. It assumes familiarity with the C programming language and is intended to be used by experienced programmers who are looking to learn the EMAC SDK.

The i2c_test project build one executable: i2c_test.

Opening, Building and Uploading the Project Files

For information on opening the project from within Eclipse, please see Importing the EMAC OE SDK Projects with Eclipse. Then, follow Using the EMAC OE SDK Projects with Eclipse for information on how to build, upload and execute the example.

Alternatively, the Makefile can be used with the make command from the commandline to build and upload the example. For more information on this method, please see Using EMAC OE SDK Example Projects.

Usage and Behavior

Hardware Requirements

The i2c_test C example project will run on any EMAC carrier board which has an i2c interface.

This is far too sparse. They could discover this on their own. There needs to be information on how and why to use each option of these menus.

This is an example test interface for reading/writing to the Linux I2C device interface. It is only relevant if the I2C device interface is enabled and an external I2C device is connected to the bus. See comments in i2c_test.c for details.

Using i2c_test

The i2c_test program is executed from the console. It takes no parameters.

root@emac-oe~:$ ./i2c_test

A menu will appear in the terminal:

Select a function to test:
    a: Set slave address
    b: Write byte to register
    c: Write 2 bytes to register
    d: Read byte from register
    e: Read 2 bytes from register
    q: Quit

Select a function (a,b,c,d,e) to test or q to quit. You will be prompted for read, write and register values as appropriate. Test results will be displayed in the terminal.

This is an example session: <syntaxhighlight lang=console> Select a function to test:

   a: Set slave address
   b: Write byte to register
   c: Write 2 bytes to register
   d: Read byte from register
   e: Read 2 bytes from register
   q: Quit

>> a

Enter the slave address (in hex): 48

Calling i2c_set_slave(3, 0x48) i2c_set_slave reports success


Select a function to test:

   a: Set slave address
   b: Write byte to register
   c: Write 2 bytes to register
   d: Read byte from register
   e: Read 2 bytes from register
   q: Quit

>> b

Enter a byte to write (in hex): aa Enter a register value to write (in hex): 01

Calling i2c_write_cmd(3, 0x1, 0xAA) i2c_write_cmd reports success

Select a function to test:

   a: Set slave address
   b: Write byte to register
   c: Write 2 bytes to register
   d: Read byte from register
   e: Read 2 bytes from register
   q: Quit

>> q Quiting...