Chameleon-AVR Nurve Networks, Chameleon-AVR Datasheet - Page 141

MCU, MPU & DSP Development Tools AVR8 & PROPELLER DEV SYSTEM (SBC)

Chameleon-AVR

Manufacturer Part Number
Chameleon-AVR
Description
MCU, MPU & DSP Development Tools AVR8 & PROPELLER DEV SYSTEM (SBC)
Manufacturer
Nurve Networks
Datasheet

Specifications of Chameleon-AVR

Processor To Be Evaluated
AVR 328P
Data Bus Width
8 bit
Interface Type
USB, VGA, PS/2, I2C, ISP, SPI
Operating Supply Voltage
3.3 V, 5 V
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
As you can see the first set of headers looks pretty familiar, but the second and third set are totally AVR specific, but not
hardware specific to the Chameleon AVR, only to the AVR 328p processor.
Now, the hardware specific functionality for the Chameleon AVR, we had to develop. Referring to Figure 17.1, there are
a number of library classes you can glean from the figure, they are:
These compose the main library modules that make up the Chameleon AVR specific API functions (mostly wrapper
functions). Now, before we continue, I want to make a point about language here. I have been using the word “library” in
a cavalier way. Library as is relates to C/C++ programming is a pre-compiled container with many binary objects. For
example, AVR Libc is a “library”, hundreds of functions have been compiled into a single library file and that single file is
linked against during builds with GNC GCC. In our case, we could have built an official “library” and put all the source
System
Graphics
Sound
Keyboard/Mouse
UART
SPI
I
FLASH
Mechatronics N/A
2
C
NOTE
Some modules like the SPI and I
so similar.
The system library module is a “glue” module that ties the other modules together and is used as
a common place to put functions and constants that don’t fit into any other category. Currently,
the system library module is very small, but it will grow in the future.
This library simply makes calls to the graphics drivers running on the Propeller chip. So whatever
they do, this library tries to expose to the user. The current drivers are “tile” graphics only and
support text, printing, scrolling, and crude control of color. The default2 driver series adds some
functionality with a “gaming” tile engine that supports fine vertical scrolling, control of overscan
colors, large playfield tilemaps, re-definable character bitmaps (4 colors per tile), and many other
cool features.
This library interfaces to the Propeller sound driver object and exposes limited capabilities of the
driver itself (which can do a lot more). The API gives you a few functions to play sounds, control
volume, etc. But, you will probably want to enhance this API.
The AVR 328p processor comes with two hardware UART’s, but we have developed a library of
functions that abstracts the functionality, so you can perform buffered I/O very easily with interrupt
driven drivers.
The AVR 328p has built in Serial Peripheral Interface hardware as well, but there is quite a bit to
set it up and communicate with it, thus we have created a nice abstraction layer to initialize it,
read and write bytes.
The AVR 328p again has built in hardware for Inter-Integrated Circuit communications, but the
hardware is tricky to setup and the I2C protocol is a bit difficult to work with, so once again, we
have developed a software layer on top of it for your convenience.
The Chameleon AVR has a 1MB SPI FLASH memory on-board which can be used for storage of
assets, data, code, whatever you wish. This driver API runs 100% on the client AVR chip and
gives you the ability to read and write sectors/pages in the FLASH memory, erase, etc.
Considering that, you might want to write some software to abstract the FLASH memory into a
FAT16 like device? All you need are functions to read/write sectors/pages (which we provide)
then you can use a 3
drive. There are numerous open source drivers for SD cards and FAT16, so you are free to use
them in your development. For example the Procyon AVR Library that has FAT16 support, but for
read only. Simple google a bit and you can find other libraries or write one yourself.
There is a PS/2 port on the Chameleon which is connected to the Propeller. The default
driver on the Propeller has drivers for both keyboard and mouse support. Thus, we have
developed a simple API to communicate to both the keyboard and mouse driver running
on the Propeller (one at a time of course).
rd
party library to add support so the FLASH memory “feels” like a FAT16
2
C are actually in the same source file since they are
© 2009 NURVE NETWORKS LLC “Exploring the Chameleon AVR 8-Bit”
141

Related parts for Chameleon-AVR