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

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
© 2009 NURVE NETWORKS LLC “Exploring the Chameleon AVR 8-Bit”
We will see how to call all these in the API section below, but the point is, I want you to see the “big picture” and see how
all this stuff works, not so much, so you can use it, but so that you might use this template, model, or pattern to create
better, faster drivers. In any event, when a message is sent with GPU_GFX_SUBFUNC_STATUS_W then we assume
that a GPU command is being issued and the first data byte of the SPI message is used as the sub-function ID (lower 8-
bits) and the upper 8-bits or second byte is used as the operand or data.
Now, the GPU functions are too complex to request in a single SPI message, so we have to “set them up”. Thus, we have
to initialize pointers to the source, destination, and length of bytes or words to process then we call the GPU command to
actually do the work. For example, the sub-function GPU_GFX_SUBFUNC_FILLMEM16 requires a pointer to the
destination and the number of WORDS to write along with data WORD. So how do we set all those? Easy, we use other
GFX messages to set the destination address pointer, data WORD, and number of bytes for “operation”, then the GPU
sub-function uses those data for the operation! Simple!
At this point, you should have a good idea of how the enhanced NTSC tile engine works, and the entire communication
paths from the AVR/PIC to the Propeller driver itself. So, let’s move onto the API itself.
The #defines are trivial; simply a constant for a convenient baud rate as well as the size of the circular buffers. You can
make these any size you wish, but memory is at a premium, so keep it in mind. If you are going to be using a lot of serial
communications and know you are going to send large strings or receive large strings and not be able to interrogate the
buffer functions then you might want to increase the buffers to 64, 128, 256 etc. But, for now 32/32 seems to work find in
all examples.
Next are all the global data structures and variables used by the API functions:
First we have a global baudrate, pointers to the circular buffers, and finally the buffers themselves. These are all declared
in the C file of course, these are simply the external references.
22.3 API Listing Reference
The API listing for the “NTSC GFX” driver module CHAM_GFX_DRV_V010.c is listed in Table 22.2 categorized by
functionality.
184

Related parts for Chameleon-AVR