NanoBoard SPI Communications - Interface Wiring

Frozen Content

Related articles: NB2DSK01 SPI System Overview, NanoBoard 3000 SPI System Overview

Accessing an SPI-compatible resource from within an FPGA design is most easily accomplished by placing and wiring a Serial Peripheral Interface Controller component and an SPI-based port component, which represents the pins of the physical FPGA device. Of course, you may be using your own HDL-based controller or, if feeling brave, attempt bit-banging direct from the processor in your design. Use of an available SPI Controller component however, provides a simple and efficient interface solution.

Depending on the hardware used in your system (NanoBoard NB2, 3000-series NanoBoard, peripheral board(s)), a range of SPI slave resources will be available to you. Most of these resources will be accessible over a common, multiplexed SPI bus. If using a 3000-series NanoBoard, an additional number of SPI resources on the motherboard will be accessible through direct communications links – an independent SPI link to each resource in question.

The following sections take a closer look at the available port components for use in a design when interfacing to SPI resources.

Interfacing to Common-Bus SPI Resources

Related article: Accessing the Common SPI Bus from an FPGA Design

Several SPI-based (and resource-specific) port components exist for use in a design. Each port component interfaces to the same set of physical device pins, the only difference is in the associated graphic of the component – used to better reflect the target slave SPI resource being communicated with. Table 1 summarizes the available SPI-based port components, including the library in which they can be found.
 

Note that only one such SPI-based port component may be used in a design. If you wish to communicate with multiple common-bus SPI resources from your design (though not concurrently), a generic port component is available (see Using Multiple SPI and I2C Devices in a Design).


Table 1. Port components for accessing common-bus SPI resources.
Interfacing to Common-bus SPI Resources on the NanoBoard NB2
Component Symbol
Component Name
Used to Interface to...
Placed from...
SERIALFMEMORY
one of the user M25P80 8-Mbit SPI Flash memory devices FPGA NB2DSK01 Port-Plugin integrated library (FPGA NB2DSK01 Port-Plugin.IntLib).
TOUCH_SCREEN_DIGITIZER
the AD7843 touch screen digitizer device
Interfacing to Common-bus SPI Resources on the NanoBoard 3000
Component Symbol
Component Name
Used to Interface to...
Placed from...
SERIALFMEMORY
one of the user M25P80 8-Mbit SPI Flash memory devices FPGA NB3000 Port-Plugin integrated library (FPGA NB3000 Port-Plugin.IntLib).
Interfacing to common-bus SPI Resources on Peripheral Boards
Component Symbol
Component Name
Used to Interface to...
Placed from...
AUDIO_CODEC_CTRL
the CS4270 24-bit, 192kHz stereo audio CODEC device on the PB01 FPGA PB01 Port-Plugin integrated library (FPGA PB01 Port-Plugin.IntLib).

Interfacing to Independent SPI Resources on the NanoBoard 3000

When using a 3000-series NanoBoard, several port components are available for use in a design when you want to access any of the independent SPI resources – those resources to which the User FPGA has dedicated (and independent) SPI communications links. Each port component interfaces to a unique set of physical device pins. Again, the associated graphic of the component reflects the slave SPI resource being communicated with.

Table 2 summarizes the available SPI-based port components, all of which can be found in the FPGA NB3000 Port-Plugin integrated library (FPGA NB3000 Port-Plugin.IntLib).
 

As each of these resources has a dedicated SPI bus, you may use any or all of these port components in the same design. A separate SPI Controller peripheral component would be placed in the design for each resource being used. In addition, you can interface to one or more common-bus SPI resources in the same design also (see previous section).


Table 2. Port components for accessing independent SPI resources on the NanoBoard 3000.
Component Symbol
Component Name
Used to Interface to...
ADC
the ADC084S021 4-channel, 8-bit ADC device
AUDIO_CODEC_CTRL
the CS4270 24-bit, 192kHz stereo audio CODEC device
DAC
the DAC084S085 4-channel, 8-bit DAC device
TFT_PEN
the XPT2046 touch screen controller device


Port-plugin libraries can all be found in the \Library\Fpga folder of the installation. These libraries are automatically added, by default, to the Installed Libraries list – part of the Available Libraries for a design project.

See Also

You are reporting an issue with the following selected text and/or image within the active document: