Difference between revisions of "Example SPI test"

From wiki.emacinc.com
Jump to: navigation, search
Line 10: Line 10:
  
 
For more information about the SPI protocol see the following page: http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
 
For more information about the SPI protocol see the following page: http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
 +
 +
The <code>spi_test</code> project builds one executable: <code>spi_test</code>.
 +
 +
== 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 <code>Makefile</code> can be used with the <code>make</code> command from the command-line 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 <code>spi_test</code> C example project will run on any EMAC carrier board which has an <code>SPI</code> interface (see also the [http://http://wikidev.emacinc.com/wiki/EMAC_SPI_Programming EMAC SPI Programming] page).

Revision as of 16:26, 12 February 2014

TODO: {{#todo:In Progress|Brian Serrano|oe 4,oe 5,md,InProgress,bs}}

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

SPI (Serial Peripheral Interface) is a synchronous full duplex serial data communication standard used to interface many types of memory and I/O devices. SPI requires four lines per slave device connection, three of which are shared across the SPI bus. MISO, MOSI and SCLK are the three shared bus lines and chip selects (CSn) are used to determine which device is the target for communication.

The MISO (Master In Slave Out) line is an input signal to the SPI master controller which provides serial data from a slave SPI device.The MOSI (Master Out Slave In) line is an output signal from the SPI master providing serial data to a slave SPI device.SCLK (Synchronous Clock) is an output clock from the SPI master controller used to synchronize the data on the MISO and MOSI lines. The SPI protocol uses both edges of the synchronous clock to drive the transaction on the bus. The leading transition is used to toggle the output of the MOSI while the trailing transition latches the output of MISO. The phase and polarity (CPHA and CPOL) parameters of the SCLK are used to determine the SPI Mode being used. For each slave device there is a chip select output signal from the SPI master controller. Each SPI slave uses the chip select to determine when to communicate back to the SPI master controller

This procedure provides an overview of how to compile and run the spi_test C example project. This is an example test interface for sending a transaction to an EMAC SPI device interface. It is only relevant if the EMAC SPI device interface is enabled for an external SPI device that is connected to the bus. 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.

For more information about the SPI protocol see the following page: http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

The spi_test project builds one executable: spi_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 command-line 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 spi_test C example project will run on any EMAC carrier board which has an SPI interface (see also the EMAC SPI Programming page).