4.1
Propeller
4
SOFTWARE INTRODUCTION
Each core, called a COG, is identical with equal access to all chip resources.
The Propeller has a central RAM area called the HUB which is COG accessible
in a round robin fashion.
Figure 5: The functional architecture of the Parallax Propeller (courtesy of
Parallax).
The Propeller is distinctly different from most other microcontrollers by it’s
lack of built in hardware.
The Propeller does not have any hardware level
serial ports, analog to digital or digital to analog ports, or any pulse width
modulation ports. Instead, the Propeller is designed to be able to use software
for these common interfaces. This is typically done through what is known as
bit banging. The only exception is the built in video generation hardware that
assists in creating NSTC, PAL, or VGA signals. To make development easier
for the programmer, Parallax hosts a source code website that provides code for
common tasks such as serial or PWM.
The Propeller has two built in languages: a high level language called Spin
and the assembly language called PASM. PASM is executed directly by a COG.
Spin is executed by a built in PASM Spin interpreter that can be dynamically
loaded into one or more COGs. Other high level languages available for the
Propeller generally operate in a similar manner to Spin. This project uses Spin
and PASM exclusively.
The Propeller has three different memory locations: 2KB of COG RAM,
32KB of HUB RAM, and external 64KB of I2C EEPROM. Upon startup, the
Propeller copies the contents of the EEPROM to HUB RAM, loads a Spin
interpreter into COG 0, and begins execution.
Any PASM code, including
15