36
ViperBoard User Guide Nano River Technologies www.nanorivertech.com [email protected] Rev: 1.1 (Oct 2010) Nano River Technologies © Page 1 of 36 ViperBoard User Guide Nano River Technologies October 2010

ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 1 of 36

ViperBoard User Guide

Nano River Technologies

October 2010

Page 2: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 2 of 36

Table of Contents

1. PRELIMINARIES .......................................................................................................... 4

1.1. PACKAGING LIST ..................................................................................................................... 4 1.2. GETTING HELP ........................................................................................................................ 5

2. INSTALLATION (WINDOWS 2000 AND XP) ................................................................ 6

2.1. VIPERBOARD INSTALLER ......................................................................................................... 6 2.2. PLUGGING IN THE VIPERBOARD ............................................................................................. 10

3. INSTALLATION (LINUX) ............................................................................................. 13

3.1. STEP 1: LIBUSB INSTALLATION .............................................................................................. 13 3.2. STEP 2: VIPERBOARD EXAMPLES AND DOCUMENTATION INSTALLATION ................................... 15

4. INSTALLATION (MACOS) .......................................................................................... 16

4.1. STEP 1: LIBUSB INSTALLATION .............................................................................................. 16 4.2. STEP 2: VIPERBOARD EXAMPLES AND DOCUMENTATION INSTALLATION ................................... 18

5. VIPERBOARD HARDWARE ....................................................................................... 19

5.1. OVERVIEW ............................................................................................................................. 19 5.2. INTERFACES .......................................................................................................................... 20 5.3. SPI INTERFACE ..................................................................................................................... 22 5.4. IIC INTERFACE ....................................................................................................................... 24 5.5. GPIO PORT A INTERFACE ...................................................................................................... 26 5.6. GPIO PORT B INTERFACE ..................................................................................................... 28 5.7. ANALOGUE INTERFACE .......................................................................................................... 28 5.8. LED INDICATOR ..................................................................................................................... 28

6. GETTING STARTED ................................................................................................... 29

7. APPENDIX A : SCHEMATIC ....................................................................................... 35

Congratulations on the purchase of the ViperBoard from Nano River

Technologies! We trust that this board will be a valuable asset in the

development or test of your own electronics.

… Nano River Technologies development team

Page 3: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 3 of 36

ABBREVIATIONS

API Application Programming Interface

EEPROM Electrically Erasable Programmable Read Only Memory

G++ C++ compiler for Linux (part of GCC)

GCC GNU Compiler Collection

GPIO General Purpose IO

GPIOA ViperBoard GPIO Port A (advanced GPIO interface)

GPIOB ViperBoard GPIO Port B (digital IO interface)

GUI Graphical User Interface

I2C Inter-Integrated Circuit

IIC Inter-Integrated Circuit (same as I2C)

IO Input / Output

LED Light Emitting Diode

Master An interface which supplies the clock like the SPI master or I2C master on ViperBoard

NRT Nano River Technologies

Slave An interface which receives the clock like the SPI slave or I2C slave on ViperBoard

SPI Serial Peripheral Interface

USB Universal Serial Bus

Page 4: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 4 of 36

1. Preliminaries

1.1. Packaging List

Your ViperBoard comes standard with the following items.

One ViperBoard circuit board assembly

One USB cable – type A to type B

PC software, example applications and documentation for use with this product is

available downloadable from our web-site.

www.nanorivertech.com

Page 5: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 5 of 36

1.2. Getting Help

Most questions relating to installation and usage of the ViperBoard are available from our

web-site.

www.nanorivertech.com

If however you have further questions, then please do not hesitate to contact us via email.

[email protected]

For any sales related questions, please contact:

[email protected]

Page 6: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 6 of 36

2. Installation (Windows 2000 and XP)

2.1. ViperBoard Installer

The ViperBoard installer activates from the software download page available from:

www.nanorivertech.com

Page 7: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 7 of 36

The installer starts by downloading all ViperBoard documentation and software examples.

Page 8: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 8 of 36

To run the applications without MicroSoft Visual C++ installed the Microsoft Visual C++

2008 redistribution pack is required. This is installed automatically next. Allow all default

directories and file names.

Next the open source LibUSB-Win USB driver is installed. Allow all default directories

and file names.

Page 9: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 9 of 36

At the conclusion of the LibUSB-Win USB driver installation there will be the opportunity

to run a test program to ensure it installed properly. Running this is optional.

At the conclusion of the driver install, a Readme file will be displayed containing an

overview of the ViperBoard product.

Page 10: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 10 of 36

2.2. Plugging in the ViperBoard

When the driver is installed and the ViperBoard plugged into a USB port for the first time,

the ”Found New Hardware” wizard will appear.

Select “Install from a list or specific location”.

Select ”Don’t search. I will choose the driver to install”.

Page 11: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 11 of 36

Navigate to the hard disk.

Navigate to the install directory for ViperBoard eg C:\Program Files\ViperBoardInstaller_1.0.2.

Page 12: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 12 of 36

The Wizard will then find the driver setup file and start to link to the ViperBoard driver.

Installation is then complete. The PC can now talk to a ViperBoard.

Page 13: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 13 of 36

3. Installation (Linux)

Installation of ViperBoard under Linux consists of two steps. First OpenSource LibUsb for

Linux is installed. Secondly the ViperBoard example applications and documentation is

installed.

3.1. Step 1: LibUsb Installation

LibUsb is an OpenSource USB driver available for usage for commercial applications. The

ViperBoard class library will make low level USB calls to LibUsb to implement the desired

high level functions available through the ViperBoard API.

The LibUsb installation is contained within "libusb-0.1.12.tar.gz".

Installation consists of the following:

a) One should first ensure that GNU g++ is available on the Linux machine. This will be

needed during the installation.

b) In a working directory untar the file using linux%> gzip -cd libusb-0.1.12.tar.gz | tar xvf -

c) Move to the created directory using linux%> cd libusb-0.1.12

d) Run the configure script linux%> ./configure

e) Run make (become root if necessary) to build LibUsb linux%> make

f) Install LibUsb linux%> make install

Page 14: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 14 of 36

At this point you should have installed LibUsb for Linux. Unfortunately in most cases it

seems that the library can only be seen by the root user. This means that applications

would only work as root. To fix this one needs to edit one of the rule files in UDEV.

g) Change to be root linux%> sudo bash

h) Edit for example your /etc/udev/rules.d/40-basic-permissions.rules to

include the following two new lines (in red). This makes the ViperBoard USB connection

able to be seen by someone other than root.

# USB devices (usbfs replacement)

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"

SUBSYSTEM=="usb_device", MODE="0664"

#New lines for Viperboard

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",SYSFS{idVendor}=="04b4",

SYSFS{idProduct}=="1004", MODE="0666"

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",SYSFS{idVendor}=="2058",

SYSFS{idProduct}=="1005", MODE="0666"

The above change to permissions shows how to change USB permissions

for Ubuntu Linux. For other kernels permissions may need to be changed

in other files. For example in Federa 11, one needs to make the

modification to /lib/udev/rules.d/50-udev-default.rules.

i) You can return from being root now and you are ready to install the ViperBoard

examples and documentation.

Page 15: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 15 of 36

3.2. Step 2: ViperBoard Examples and Documentation Installation

a) Documents and the example applications are all contained in

ViperBoard_Installation_1.0.2.tar.gz. Untar this in some suitable place. linux%> tar xvfz ViperBoard_Installation_1.0.2.tar.gz

b) Move to the created directory. linux%> cd ViperBoard_Installation_1.0.2

c) You will see the following documents to read:

Readme.pdf

ViperBoardUserGuide_ver_Nov09.pdf

ViperBoardAPI_ver_Nov09.pdf

ViperBoardApplicationExamples_ver_Nov09.pdf

d) You will find the application examples in the Examples/ directory. Read

ViperBoardApplicationExamples_ver_Nov09.pdf to learn about running these. The file

structure should appear as below.

Examples/

common/

src/

scripts/

viperboard.h

viperboard_class.h

viperboard_class.c

ViperBoard Class Header File

ViperBoard Class C++ File

ViperBoard Header File

ConfigurationExample.c

go_ConfigurationExample

Main Program (Example 1)

Compile Script for Application 1

Readme.pdf

ViperBoardUserGuide_ver_Nov09.pdf

ViperBoardAPI_ver_Nov09.pdf

ViperBoardApplicationExamples_ver_Nov09.pdf

ViperBoard_Installation_1.0.2/

COPYING_GPL.txt

COPYING_LGPL.txt

Page 16: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 16 of 36

4. Installation (MacOS)

Installation of ViperBoard for MacOS consists of two steps. First OpenSource LibUsb for

MacOS is installed. Secondly the ViperBoard example applications and documentation is

installed.

4.1. Step 1: LibUsb Installation

LibUSB 0.1.12 must be first installed under MacOS. The simplest way to achieve this is to

make use of the installation already included in MacPorts.

First visit the MacPorts installation page:

http://www.macports.org/install.php

Download the MacPorts installation for your version of MacOS by selecting Snow

Leopard, Leopard or Tiger. A .dmg file will be downloaded (it will be called something

like MacPorts-1.8.1-10.6-SnowLeopard.dmg).

Click to download your MacOS .dmg!

Page 17: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 17 of 36

Double click on the downloaded file to mount it and execute the package file (.pkg) to

install it.

In a command tool install version 0.1.12 of LibUsb using the following command:

At this point you should have installed LibUsb for MacOS and you are ready to install the

ViperBoard examples and documentation.

Page 18: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 18 of 36

4.2. Step 2: ViperBoard Examples and Documentation Installation

a) Documents and the example applications are all contained in

ViperBoard_Installation_1.0.2.tar.gz which comes from the ViperBoard software

downloads page for MacOS. Untar this in some suitable place. macos %> tar xvfz ViperBoard_Installation_1.0.2.tar.gz

b) Move to the created directory. macos %> cd ViperBoard_Installation_1.0.2

c) You will see the following documents to read:

Readme.pdf

ViperBoardUserGuide_ver_Nov09.pdf

ViperBoardAPI_ver_Nov09.pdf

ViperBoardApplicationExamples_ver_Nov09.pdf

d) You will find the application examples in the Examples/ directory. Read

ViperBoardApplicationExamples_ver_Nov09.pdf to learn about running these. The file

structure should appear as below.

GCC Examples/

common/

src/

scripts/

viperboard.h

viperboard_class.h

viperboard_class.c

ViperBoard Class Header File

ViperBoard Class C++ File

ViperBoard Header File

ConfigurationExample.c

go_ConfigurationExample

Main Program (Example 1)

Compile Script for Application 1

ViperBoard_Installation_1.0.2/

Examples/

Cocoa Examples/ Xcode Cocoa Example here

Readme.pdf

ViperBoardUserGuide_ver_Nov09.pdf

ViperBoardAPI_ver_Nov09.pdf

ViperBoardApplicationExamples_ver_Nov09.pdf

COPYING_GPL.txt

COPYING_LGPL.txt

Page 19: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 19 of 36

5. ViperBoard Hardware

5.1. Overview

USB Controller

FPGA

A/DConverter

Flash

EEPROM

Pullups

Low PassFilter

I2C Master/slave

SPI Master/slave

GPIO Port A

GPIO Port B

AnalogueInput

USB

ViperBoard

Viperboard is built around a Cypress USB controller chip and FPGA. It accepts commands

across the USB bus and then translates these into I2C, SPI and GPIO bus protocols as

required. Key features of the Viperboard include:

high speed SPI master and slave (up to 17 channels)

high speed I2C master and slave with optional pull-ups

16 bit GPIO Port A capable of digital I/O, interrupts, PWM

optional low pass filtering for 2 GPIO Port A pins for analogue output

16 bit GPIO Port B capable of digital I/O

4 bit analogue input

A full schematic for the Viperboard can be seen in Appendix A.

Page 20: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 20 of 36

5.2. Interfaces

Separate connectors are provided for each of the I2C, SPI, GPIO and Analogue interfaces.

With pins as specified in the following diagrams.

X1

D2

U1

U2

J2

-A

J1

-A

X2

X5

X3

X4

J3

J2-B

J1

-B

GPIO Ports A/B

IIC

Interface

SPI

Interface

USB

Interface

Analog

Interface

Not Used

No jumper!

Page 21: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 21 of 36

X1

U1

U2

J2

-A

J1

-A

X2

X5

X3

X4

J3

J2

-B

J1

-B

GP

IOB

_1

5G

PIO

B_

14

GP

IOB

_1

3G

PIO

B_

12

GP

IOB

_1

1G

PIO

B_

10

GP

IOB

_0

9G

PIO

B_

08

GP

IOB

_0

7G

PIO

B_

06

GP

IOB

_0

5G

PIO

B_

04

GP

IOB

_0

3G

PIO

B_

02

GP

IOB

_0

1G

PIO

B_

00

GP

IOA

_1

5G

PIO

A_

14

GP

IOA

_1

3G

PIO

A_

12

GP

IOA

_1

1G

PIO

A_

10

GP

IOA

_0

9G

PIO

A_

08

GP

IOA

_0

7G

PIO

A_

06

GP

IOA

_0

5G

PIO

A_

04

GP

IOA

_0

3G

PIO

A_

02

GP

IOA

_0

1G

PIO

A_

00

0V

0V

0VSLV_CSSLC_SCKSLV_SISLV_SOMST_CSMST_SCKMST_SIMST_SO3.3V

0V

IIC_SDA

IIC_SCL

VCC

3.3

VA

NA

_0

2A

NA

_0

0

AN

A_

01

AN

A_

03

0V

Page 22: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 22 of 36

5.3. SPI Interface

Connector X3 contains the SPI interface.

MST_CS[0] Output SPI master chip select output (channel 0).

MST_SCK Output SPI master serial clock output.

MST_SO Output SPI master serial data output.

MST_SI Input SPI master serial data input.

SLV_CS[0] Input SPI slave chip select input (channel 0).

SLV_SCK Input SPI slave serial clock input.

SLV_SO Output SPI slave serial data output.

SLV_SI Input SPI slave serial data input.

3.3V Power Supply

0V Power Ground

The interface includes separate master and slave SPI interfaces. Pins of the GPIOA port

can be sacrificed to either SPI master or SPI slave chip selects. These then form the

remaining bits of the chip select buses mst_cs[16:0] or slv_cs[16:0]. In general three usages

of the SPI interface become possible, as shown over:

Page 23: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 23 of 36

mst_cs[16:0]

mst_sck

mst_so

mst_si

slv_cs

slv_sck

slv_si

slv_so

slv_cs

slv_sck

slv_si

slv_so

**slv_cs[16:0]

slv_sck

slv_si

slv_so

mst_cs

mst_sck*

mst_so

mst_si

mst_cs

mst_sck*

mst_so

mst_si

*) When connecting multiple slaves, care needs to be taken to make

sure the clock outputs can be connected. For example they could be

externally gated or made open drain.

mst_cs[0]

mst_sck

mst_so

mst_si

slv_cs

slv_sck

slv_si

slv_so

slv_cs[0]

slv_sck

mst_cs

mst_sck

Master Mode

Slave Mode

Hybrid Master-Slave Mode

**) Always make sure that for channels configured to be SPI slaves

always have their chip select inputs driven and not left floating.

Page 24: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 24 of 36

5.4. IIC Interface

Connector X4 contains the I2C interface.

IIC_SCL Input/Output IIC serial clock.

IIC_SDA Input/Output IIC serial clock.

Configuration jumpers J1-A and J1-B can be used to switch in/out on-board pull-up

resistors for the I2C lines up to either 3.3 volts or 5 volts as per the following drawings.

Page 25: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 25 of 36

X1

D2

U1

U2

J2

-A

J1

-A

X2

X5

X3

X4

J3

J2

-B

J1

-B

Jumpers

IIC_SDA

1K5

5V

IIC_SCL

0V0V

IIC

Interface

X1

D2

U1

U2

J2

-A

J1

-A

X2

X5

X3

X4

J3

J2

-B

J1

-B

X1

D2

U1

U2

J2

-A

J1

-A

X2

X5

X3

X4

J3

J2

-B

J1

-B

Jumpers

IIC_SDA

1K5

3.3V

IIC_SCL

0V0V

IIC

Interface

IIC_SDA

IIC_SCL

0V0V

IIC

Interface

No

Jumpers

Page 26: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 26 of 36

5.5. GPIO Port A Interface

Connector X2 contains GPIO Port A interface.

GPIOA_00 Input/Output Digital I/O, PWM, interrupt or pulsed.

Can be filtered to form an analogue output.

GPIOA_01 Input/Output Digital I/O, PWM, interrupt or pulsed.

Can be filtered to form an analogue output.

GPIOA_02 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_03 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_04 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_05 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_06 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_07 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_08 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_09 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_10 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_11 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_12 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_13 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_14 Input/Output Digital I/O, PWM, interrupt or pulsed.

GPIOA_15 Input/Output Digital I/O, PWM, interrupt or pulsed.

0V Supply

The GPIO pins can all be separately configured as digital input, digital output, PWM

outputs, pulsed output or interrupt input. These pins can also be sacrificed as SPI chip

selects as either a SPI master or SPI slave as described in section 5.3.

Page 27: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 27 of 36

For GPIOA bits 0 and 1 in PWM mode the output can be low pass filtered to form an

analogue output using jumpers J2-A and J2-B.

X1

D2

U1

U2

J2

-A

J1

-A

X2

X5

X3

X4

J3

J2

-B

J1

-B

Jumpers

GPIOA_00

GPIOA_01

X1

D2

U1

U2

J2

-A

J1

-A

X2

X5

X3

X4

J3

J2

-B

J1

-B

Jumpers

GPIOA_00

GPIOA_01

Page 28: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 28 of 36

5.6. GPIO Port B Interface

Connector X2 contains GPIO Port B interface.

GPIOB_00 Input/Output Digital I/O.

GPIOB _01 Input/Output Digital I/O.

GPIOB _02 Input/Output Digital I/O.

GPIOB _03 Input/Output Digital I/O.

GPIOB _04 Input/Output Digital I/O.

GPIOB _05 Input/Output Digital I/O.

GPIOB _06 Input/Output Digital I/O.

GPIOB _07 Input/Output Digital I/O.

GPIOB _08 Input/Output Digital I/O.

GPIOB _09 Input/Output Digital I/O.

GPIOB _10 Input/Output Digital I/O.

GPIOB _11 Input/Output Digital I/O.

GPIOB _12 Input/Output Digital I/O.

GPIOB _13 Input/Output Digital I/O.

GPIOB _14 Input/Output Digital I/O.

GPIOB _15 Input/Output Digital I/O.

0V Supply

5.7. Analogue Interface

Connector X5 the analogue interface.

ANA_00 Input Analogue input.

ANA_01 Input Analogue input.

ANA_02 Input Analogue input.

ANA_03 Input Analogue input.

3.3V Supply

0V Supply

5.8. LED Indicator

The ViperBoard includes a green LED indicator to indicate that the circuit is powered

correctly.

Page 29: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 29 of 36

6. Getting Started

Use of the ViperBoard typically involves writing a C/C++ console application or a Visual

C++ Windows GUI application which calls functions and tasks in the ViperBoard API

provided by Nano River Technologies. A full definition of the API is provided in the

“ViperBoard API Specification”, provided on the web-site.

In order to rapidly build up applications and see how to link to the API, eight example

applications have been built up. The example applications provided are described below.

These are all fully documented in the “ViperBoard Example Applications” document,

provided on the web-site.

Configuration Example (for Windows)

This example is very simple C/C++

console application for Windows

showing how to call basic functions

associated with SPI, I2C, GPIO and

analogue IO. The example is a good

starting point if you want to try the

ViperBoard for the first time and

want to see a simple console

application.

Page 30: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 30 of 36

Windows GPIOTool (for Windows)

This example application is a very

simple Visual C++ GUI application

showing how to interface to the

general purpose IO (GPIO) pins.

This includes both port A and port B

GPIOs.

Advanced Windows Analog/Digital IO Tool

This is a more complex Visual C++

GUI application showing some of

the more complex GPIO and analog

input functions.

Page 31: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 31 of 36

Windows SPI Tool

The Windows SPI tool is a windows

GUI application in Visual C++ used

to demonstrate both master and

slave operation of the SPI interface

for ViperBoard.

Windows I2C Tool

The Windows I2C tool is a windows

GUI application in Visual C++ used

to demonstrate both master and

slave operation of the I2C interface

for ViperBoard.

Page 32: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 32 of 36

Windows EEPROM Programmer

This is a simple I2C and SPI

EEPROM programmer written as a

windows GUI application in Visual

C++. It illustrates how to build a

more complex application and also

how to link to both I2C and SPI

functions in the API.

Page 33: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 33 of 36

Configuration Example (for Linux and MacOS)

This is a simple GCC program

for Linux and MacOS to show

basic setup of GPIO, I2C, SPI and

Anlogue IO interfaces.

Page 34: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 34 of 36

I2C Checker Tool (for MacOS Xcode Cocoa)

Scan Button

Text Box

This is a simple GUI program for

MacOS showing how to use

ViperBoard to scan IIC devices

from Xcode Cocoa.

Page 35: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 35 of 36

7. Appendix A : Schematic

See over.

Page 36: ViperBoard User Guide - Nano River Tech - NR Programmer - GUI

ViperBoard

User Guide

Nano River Technologies [email protected]

Rev: 1.1 (Oct 2010) Nano River Technologies © Page 36 of 36

PC6/GPIFADR6

63

PC7/GPIFADR7

64

PD0/FD0

PD1/FD1

PD2/FD2

PD3/FD3

PD4/FD4

PD5/FD5

PD6/FD6

PD7/FD7

PE0/T0OUT

PE1/T1OUT

PE2/T2OUT

PE3/RXD0OUT

PE4/RXD1OUT

PE5/INT6

PE6/T2EX

PE7/GPIFADR8

RDY0/SLRD

RDY1/SLWR

RDY2

RDY3

RDY4

RDY5

CTL0/FLAGA

CTL1/FLAGB

CTL2/FLAGC

CTL3

PB7/FD7

PC0/GPIFADR0

PC1/GPIFADR1

PC2/GPIFADR2

PC3/GPIFADR3

PC4/GPIFADR4

PC5/GPIFADR5

PB0/FD0

PB1/FD1

PB2/FD2

PB3/FD3

PB4/FD4

PB5/FD5

PB6/FD6

PA0/INT0#

PA1/INT1#

PA2/SLOE

PA3/WU2

PA4/FIFOADR0

PA5/FIFOADR1

PA6/PKTEND

PA7/FLAGD

CTL4

CTL5

61

62

59

60

57

58

47

45

46

37

44

35

36

34

73

74

71

72

69

70

67

68

96

97

83

95

81

82

80

90

91

88

89

86

87

98

6 74 5392

93

52

76

56

51

54

55

8

RXD0

RXD1

TXD0

TXD1

T0

T1

T2

RD#

WR#

INT4

INT5#

BKPT

IFCLK

WAKEUP#

SCL

SDA

DMINUS

DPLUS

AVCC1

AVCC2

RESET#

18

17

77

169

23

24

42

43

40

41

84

22

31

32

25

29

30

79

26

28

VCC9

NC1

NC2

NC3

XTALIN

XTALOUT

VCC1

VCC2

VCC3

VCC4

VCC5

VCC6

VCC7

VCC8

11

10

14

15

85

13

53

78

38

49

1

33

20

66

AGND1

AGND2

GND1

GND2

GND3

GND4

GND5

GND6

GND7

GND8

GND9

RESERVED

2

39

21

75

12

19

99

27

65

94

48

50

U1

CY7C68013A-AXC

SCL

6

SDA

5

A0

1

A1

2

A2

3

WP

7

VCC

8

VSS

4

U3

24LC128

OUT

5

NC

4

IN

1

EN

3

U7

TPS73633

C32

12p

XTL1

24MHz

Vbus

D-

D+

GND

Sld

X1

3.3V

3.3V

C11

100n

R6

1K5

3.3V

R7

1K5

+5V

3.3V

3.3V

C10

100n

3.3V

C33

12p

C8

100n

C9

100n

C6

100n

C7

100n

C4

100n

C5

100n

C2

100n

C3

100n GND

2

R1

10K3.3V

C31

4.7u

C30

4.7u

+

1 2 3 45

C1

100n

C28

4.7u

+

+

D1

1N4148

R2

10K

3.3V

R11

470R

D2

LED

Size

A4

Title

Sheet

Rev

Date

ViperBoard Schematic

1.0

Nano River Technologies

19. July 2009

1 of 1

3.3V

3.3V

19

GPIO_A_00

GPIO_A_01

GPIO_A_02

GPIO_A_03

GPIO_A_04

GPIO_A_05

GPIO_A_06

GPIO_A_07

4 5 6 7 8 9

10

GND

GND

21

X2

34-way header

FPGA_00

FPGA_01

56

57

FPGA_02

FPGA_03

50

52

FPGA_04

FPGA_05

48

49

FPGA_06

FPGA_07

43

44

FPGA_24

FPGA_25

39

41

FPGA_26

37

FPGA_28

28

FPGA_32

FPGA_33

51

46

FPGA_34

FPGA_35

27

53

FPGA_36

FPGA_37

34

35

FPGA_38

FPGA_39

32

33

FPGA_BUS[39:0]

0 1 2 3 4 5 6 7 24

25

26

28

32

33

34

35

36

37

38

39

0 1 2 3 4 5 6 7 8 9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

C D

HOLD\

W\

VCC

VSS

S\ Q

35

34

33

32

3.3V

C23

100n

U4

25P20

VCCAUX

VCCO

VCCO

VCCO

VCCO

VCCO

VCCO

VCCAUX55

22

79

96

45

67

11

26

VCCAUX

VCCINT

VCCINT

VCCINT

VCCINT81

38

66

17

92

GND

GND

GND

GND

GND

GND

GND

GND

GND

GND

GND

GND

GND

8

14

18

42

47

58

63

69

74

80

87

91

95

11

GPIO_A_09

GPIO_A_10

GPIO_A_11

GPIO_A_12

GPIO_A_13

GPIO_A_14

GPIO_A_15

12

13

14

15

16

17

GPIO_A_08

GPIO_B_00

GPIO_B_01

GPIO_B_02

GPIO_B_03

GPIO_B_04

GPIO_B_05

GPIO_B_06

GPIO_B_07

20

21

22

23

24

25

26

27

GPIO_B_09

GPIO_B_10

GPIO_B_11

GPIO_B_12

GPIO_B_13

GPIO_B_14

GPIO_B_15

28

29

30

31

32

33

34

GPIO_B_08

GPIO_A_00

GPIO_A_01

89

88

GPIO_A_02

GPIO_A_03

85

84

GPIO_A_04

GPIO_A_05

83

78

GPIO_A_06

73

GPIO_A_07

GPIO_A_08

72

71

GPIO_A_09

GPIO_A_10

70

65

GPIO_A_11

GPIO_A_12

64

62

GPIO_A_13

61

GPIO_A_14

GPIO_A_15

60

59

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9 8

FPGA_BUS[39:0]

CH1

CH2

CS\

2

CLK

12

DI

13

U5

TLV0834

DO

SARS

DGND

CH0

CH3

AGND

10

11 7

3 4 5 69 8

ANA_01

ANA_02

ANA_03

2 3 4 5VCC

ANA_00

1

ANA_CS\

ANA_CLK

ANA_DI

ANA_DO

U2

XC3S200A-4VQ100

OUT

5

FB

4

IN

1

EN

3

U6

TPS73601

1.2V

GND

2

C29

4.7u

+

7 3

1 6 5 2

8 4

VREF

VCC

14

C24

100n

3.3V

3.3V

C25

100n

M0

M1

23

25

M2

24

3.3V

3

X5

6-way header

6GND

3.3V

C17

100n

C18

100n

C15

100n

C16

100n

C13

100n

C14

100n

C12

100n

1.2V

C21

100n

C22

100n

C19

100n

C20

100n

R12

470R

J2-A

C27

100n

C26

100n

R13

470R

J2-B

18

9 12

10

13

VS0

VS1

30

31

VS2

29

3.3V

PROG_B

100

R3

10K3.3V

J5

DONE

54

30

R10

300R

3.3V

RESET_N

20

29

R4

10K

CLK

40

TDO

TMS

1

75

TCK

TDI

2

76

CLKOUT

100

ANALOGUE GPIO PORT_A GPIO PORT_B

R5

10K3.3V

5

R8

1K5

R9

1K5

3 2 1

J1-A

J1-B

3.3V

5V

5V

3.3V

X4

4-way header

4VCC

IIC_SCL

IIC_SDA

GND

IIC_SCL

IIC_SDA

5 6

I2C SPI

SLV_CS

SLV_SCK

SLV_SI

SLV_SO

2 3 4 5

MST_CS

6

X3

10-way header

SLV_CS

SLV_SCK

97

4

SLV_SI

SLV_SO

3 99

MST_CS

MST_SCK

98

94

MST_SI

93

MST_SCK

MST_SI

7 8

MST_SO

91GND

10

3.3V

3.3V

3.3V

90

MST_SO