Clocks Analog Inputs Analog Outputs Digital Inputs Digital Outputs Encoder Inputs PWM Outputs Other Inputs Other Outputs Interrupts Watchdog Board-Specific Options Properties Targets See Also navigation bar

Gumstix Robostix

Deprecated

Support for the Gumstix Robostix is deprecated because the product lines using the Gumstix Verdex have been replaced with hardware based on the Gumstix DuoVero. Refer to the QUARC Linux DuoVero Target for details.

The Gumstix's Robostix is a board built and sold by Gumstix, Inc. (www.gumstix.com). The Robostix is based around the Atmel ATMega128 AVR processor. Even though the Gumstix Robostix can run code as a standalone microcontroller, it can only be used with QUARC when connected to a Gumstix Verdex board. In this configuration, communication between the Robostix and the Verdex (which is where QUARC actually runs) is done using the Inter-Integrated Circuit (I2C) bus. More precisely, the gumstix configured as the I2C master sends commands for performing I/O to the Robostix which is set as the I2C slave. Please see the Gumstix's website (www.gumstix.com)for more information about the Robostix. The following characteristics are of particular interest when using the Robostix with QUARC:

The features of the Gumstix Robostix are:

To select the Robostix, pass robostix as the card type argument to hil_open function.

Please note that only one Robostix card can be connected to a Verdex board and is supported in the system. The QUARC controller runs on the Verdex board and communicates with the Robostix firmware using I2C.

Warning

Note that the Linux Verdex target must be selected to use the Robostix board, as it is connected to the Verdex board.

The QUARC driver name for this card is robostix.

Installation Requirements

Setup In order to use the Robostix HIL driver, the Robostix AVR and Gumstix will need to be setup. Refer to Gumstix and Robotstix Setup for more details.

On the Verdex side, the robostix.ko kernel module should be loaded and the /dev/robostix device should be available. Also the I2C kernel drivers (i.e., i2c_dev.ko, i2c_pxa.ko, and i2c_core.ko) should also be running to allow communication between the Verdex and Robostix boards.

Clocks

The Robostix driver currently supports two (2) clocks, which are both only used to generate the PWM output(s). Clock 0 corresponds to Robostix Timer 1. Clock 1 corresponds to Robostix Timer 3.

The Robostix driver does not currently support any hardware timebase. Only the PWM output clock mode is supported at present. Hence, set the Clock mode field to 1 to select the PWM output mode.

Analog Inputs

The Robostix driver supports 8 analog inputs, corresponding to the Robostix 10-bit Analog-to-Digital (A/D) converter located on port F. Hence, analog input channel numbers range from 0 to 7. Only positive voltages are measured, ranging from 0V (i.e., ground) to +5V.

Since the range of the analog inputs is fixed at 0-5V, there is no need to configure the analog input ranges.

Analog Outputs

The Gumstix Robostix card does not support analog outputs.

Digital Inputs

The Robostix driver supports 16 digital lines, which can be configured by the user either as digital input(s) or digital output(s). Digital channels 0 to 7 correspond to Robostix Port A (from port A.0 to A.7, respectively) and digital channels 8 to 15 correspond to Robostix Port C (from port C.0 to port C.7, respectively). A digital I/O line cannot be used as an input and output at the same time.

Since the 16 digital I/O lines may be individually programmed as inputs or outputs on the Robostix, all of those 16 channels which will be used for digital inputs should be configured using the hil_set_digital_directions function.

Digital Outputs

The Robostix driver supports 16 digital lines, which can be configured by the user either as digital input(s) or digital output(s). Digital channels 0 to 7 correspond to Robostix Port A (from port A.0 to A.7, respectively) and digital channels 8 to 15 correspond to Robostix Port C (from port C.0 to port C.7, respectively). A digital I/O line cannot be used as an input and output at the same time.

Since the 16 digital I/O lines may be individually programmed as inputs or outputs on the Robostix, all of those 16 channels which will be used for digital outputs should be configured using the hil_set_digital_directions function.

Encoder Inputs

The Gumstix Robostix card does not support encoder inputs.

PWM Outputs

The Robostix driver supports six (6) PWM output channels, using two of the Robostix hardware clocks, i.e., Robostix Timer 1 and Timer 3. See the section on Clocks above. Hence, PWM output channels range from 0 to 5. PWM output channels 0 to 2 correspond to Robostix PWM 1A, 1B, and 1C (from Clock 0 , a.k.a., Robostix Timer 1), respectively. PWM output channels 3 to 5 correspond to Robostix PWM 3A, 3B, and 3C (from Clock 1 , a.k.a., Robostix Timer 3), respectively.

In order to configure the PWM mode or frequency, the PWM outputs must be configured using the hil_set_pwm_mode and hil_set_pwm_frequency functions.

The PWM output frequency (a.k.a., pulse rate) is suitable to drive R/C servos. Specifically, it is set to 50 Hz, which is equivalent to a PWM output period of 20 ms. Hence, set the PWM output mode to 0 the duty cycle output mode. The Robostix driver does not currently support the frequency and period PWM output modes. Then set the PWM output frequency to 50 Hz, the desired frequency. The Robostix driver supports duty cycles ranging from 2.5% (i.e., a 0.5-ms pulse width) to 12.5% (i.e., a 2.5-ms pulse width), which is suitable for typical R/C servo applications.

Other Inputs

The Gumstix Robostix card does not support other inputs.

Other Outputs

The Gumstix Robostix card does not support other outputs.

Interrupts

The Gumstix Robostix card, or its driver, does not support any interrupt sources.

Watchdog

The Gumstix Robostix card does not support a watchdog timer.

Board-Specific Options

The Gumstix Robostix card does not support any board-specific options.

Properties

The Gumstix Robostix card does not support any properties.

Targets

Target

Supported

Comments

QUARC Win32 Target

No

Not supported.

QUARC Win64 Target

No

Not supported.

QUARC Linux Nvidia Target

No

Not supported.

QUARC Linux Raspberry Pi 3 Target

No

Not supported.

QUARC Linux Raspberry Pi 4 Target

No

Not supported.

QUARC Linux RT ARMv7 Target

No

Not supported.

QUARC Linux x64 Target

No

Not supported.

QUARC Linux DuoVero Target

No

Not supported.

QUARC Linux DuoVero 2016 Target

No

Not supported.

QUARC Linux Verdex Target

Yes

Fully supported.

QUARC QNX x86 Target

No

Not supported.

Rapid Simulation (RSIM) Target

Yes

Supported with no communication to the hardware.

Normal simulation

Yes

Supported with no communication to the hardware.

See Also

 

navigation bar