Robostix

From GumstixDocsWiki
Revision as of 15:40, 27 December 2007 by Dhylands (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The Robostix is a board based around an Atmel AVR processor, in particular, the ATMega128. Allegedy, the AVR initials originate from the initials of the 3 people who created it.

The first page of the ATMega128 data sheet contains a detailed list of features offered by the processor, which include things like PWM, GPIO, ADC, I2C, SPI, UARTs, etc.

The Robostix can be used as an expansion for the Gumstix (including accessing inputs/outputs with i2c-io), as well as a standalone device.

This page uses the term robostix interchangably with roboaudiostix, unless explicitly mentioned otherwise.

Contents

Turning your robostix on

The Robostix power page describes various methods that can be used to turn your robostix on.

I/O

The Robostix I/O pins and Roboaudiostix I/O pins pages have pictures of the boards, and describe the various pins.

Voltages

See Robostix Voltages.

Serial adapters

The robostix provides two 5v logic level serial ports from the ATMega128, and two 5v logic level serial ports from the gumstix (STUART and FFUART - the console). To connect these to your computer you'll need an RS-232 serial adapter. The Serial adapters page has links to several which are available.

Newer buildroots

The Robostix framebuffer page has some notes on using the robostix with the newer buildroots which are designed to support framebuffers.

Programming

Windows based Tools

  • AVR Studio is a free tool provided by Atmel. Has a nice GUI for programming the fuses. Can also be used to download programs through the AVRISP.
  • WinAVR This is a GCC based toolchain for programming the AVR processors in C and C++

Linux based tools

  • avr-gcc for i386 is a precompiled version of avr-gcc for those working on i386 based linux. This version isn't necessarily kept in sync with the Windows version. Note: after installing the avr-compiler, you'll notice that the avr/bin directory contains three symbolic links, for gcc, cpp, and cc that should be removed. Otherwise you may not be able to use the native gcc that comes with your system. This depends on the PATH order.
  • Robostix avr gcc documents building/installing avr-gcc and components

Tools available for Windows or Linux

  • avrdude is a command line tool for programming the AVR. The windows version of avrdude is included with WinAVR.
  • uisp is another command line tool for programming the AVR.

Sample files

Several samples files are available on the Robostix samples page to get you started.

Downloading your program to the Robostix

Once you have a .hex file, you need to get it into the robostix. If you're using the robostix in standalone mode (i.e. with no gumstix attached), then you can use an AVR programmer, which is plugged into the ten pin ISP header. The Robostix ISP page describes several available programmers.

If you wish to program your robostix with a gumstix attached, then the ISP header MUST not be used. Instead you can follow the directions on the Robostix gumstix ISP page.


WARNING: DO NOT plug in a programmer into the ISP connector while a gumstix is also plugged into the robostix. Attempting to program the robostix in this manner may "brick" your robostix (i.e. make it permanently unusable)

WARNING: DO NOT use the "Ext Clock" setting CKSEL=0000. Doing this will "brick" your robostix. In order to "unbrick" the robostix you need to provide an external clock to pin 24 of the ATMega128, and then change the fuse setting to "Ext Crystal".

Fuse programming

The Robostix fuses page describes how to program your fuses (using AVRStudio, uisp, and PonyProg).

There are now a couple of scripts in SVN for programming the fuses.

pgm-fuse-standalone is suitable for downloading programs using uisp. pgm-fuse-bootloader is designed for use with the i2c BootLoader.


Modifications

Using the Gumstix and Robostix together

If you would like to boot a robostix/gumstix combination with no serial console plugged in, then you should add a 10k resistor between pins 3 and 4 on the "gumstix" connector. Failing to do this will cause the gumstix to drop into u-boot and to not boot the gumstix.

This modification, along with some others, are described on the Robostix modifications page.

Using a tweener with the robostix

In its default configuration, the Tweener board can't be used with the Robostix. The Tweener modifications page describes how to modify the tweener board so that it can be used with the robostix.

SPI

In standalone mode, the SPI pins aren't available on a header anywhere. The Robostix SPI page shows where the pins are.

uboot

Change the way your robostix starts up by following the directions on the Robostix uboot page.

Internet resources

AVR mailing lists

  • AVR Chat A list for general AVR discussion.
  • AVR GCC A list for discussing GCC issues on the AVR.

Troubleshooting

If you're having problems with your robostix hardware, then a troubleshootinig page has been started.

Personal tools