PUPPY Prop - A quick prototyping controller module based on the Parallax Propeller |
The primary purpose for the PUPPY Prop is to facilitate prototyping new designs with the Propeller processor. By incorporating the core surface-mount components of a typical Propeller system onto a pluggable module it is then possible to design simple application specific motherboards using traditional through-hole technology. In some cases it would be possible for the motherboard to be simple enough to be single-sided or even matrix breadboard. Simple pcbs such as these can be designed and produced rapidly as well as being inexpensive.
In addition to the core components of a Propeller system which include the EEPROM, crystal and regulator there are also useful devices such as an RTC, a serial Flash, microSD socket and a Peripheral Processor Chip which provides 9 channels of 12-bit A/D as well as some other functions.
Go fetch Puppy!
FEATURES
|
| PUPPY P8X32A/411 MODULE PINOUTS
|
The Propeller chip makes it easy to rapidly develop embedded applications. Its eight 32-bit processors (cogs) can operate simultaneously, either independently or cooperatively, sharing common resources through a central hub which includes 32K bytes of RAM. The developer has full control over how and when each cog is employed; there is no compiler-driven or operating system-driven splitting of tasks among multiple cogs. A shared system clock keeps each cog on the same time reference, allowing for true deterministic timing and synchronization. Two main programming languages are available: the easy-to-learn high-level Spin, and Propeller Assembly which can execute at up to 160 MIPS (20 MIPS per cog). "C", Basic, Forth, and others are available as well.
The Propeller does not have any EPROM or FLASH memory (only ROM and RAM) so it stores it's user code in an external I2C EEPROM. The EEPROM capacity is 64K bytes of which the first 32KB are used to hold an image of the code which is loaded into the Propeller's main RAM on reset.
The Propeller software object exchange (OBEX) includes various modules for accessing SD memory cards. A microSD socket is provided for those applications that require a large amount of memory and/or standard microSD card compatibility.
SCHEMATIC | PIN DESCRIPTION
|
PPC Programmable Peripheral Controller
The PPC replaces dumb I2C peripheral chips with a dedicated single-chip processor that provides programmable functions in a package that is often smaller, cheaper, and more versatile. Primarily the PPC implements a 9 channel 12-bit A/D converter chip but designed to self-scan and "predigest" the readings to offload this mundane task from the main Propeller application. Since this chip is programmable the functions can be changed by the user, however this document describes the factory supplied PPC functions. For more information on this device see the Silabs website. |
PUPPY PPC FUNCTIONS
A peripheral processor (PPC) accessed via the I2C bus provides nine 12-bit channels of analog to digital conversion on pins P16..P24. The 50MIPs 8051 processor is preprogrammed to scan the ADC channels and write these values into registers ready to read as well as provide average/min/max values as well. The values can be read in normal I2C fashion where the PPC is addressed and a register is selected after which the register(s) can be written or the device is reselected and the register(s) is read.
There is also a fast access mode whereby each A/D channel can be read from dedicated I2C addresses which do not need to be written to first to select the channel but instead provide the current sample for that channel plus the processed values as well. Reading successive bytes yields the processed values as well and yet the application can just read a single 8-bit value and stop if that is all that it needs. The sample data is optimized in a left-justified form where the first byte is comprised of the most significant bits and the next byte holds the 2 least significant bits. If only an 8-bit reading is needed then it is only necessary to address the device and read in one byte so that reading an 8-bit sample takes two I2C byte periods.
I2C addresses (tentative addresses)
|
| PPC REGISTERS
|
TEMPERATURE SENSOR Module temperature can be read directly in Celsius or Fahrenheit via the PPC. The 8-bit reading is internally averaged and rounded.
Expanding on the idea of the PUPPY module is a companion pcb to it that is designed to sandwich onto the same connector and make it one module. The first of these companion or PAL add-ons is the PAL-LPC2148 which incorporates an ARM7 processor with 512K Flash and 48K RAM that sits in parallel with the Propeller I/Os. The LPC2148 is supplied with a powerful multi-tasking Forth O/S and can be programmed and debugged in the field with just a serial terminal. The Propeller itself is capable of emulating a terminal with a video screen and PS/2 keyboard.
So which chip is the master and which is the slave? The answer is any or neither, it is up to software and in some cases it may be preferable to assign the Propeller as the slave as the ARM chip can execute large application programs easily in Forth in it's 512K Flash.
When you think about it, the Propeller is actually eight 32-bit CPUs and there is the PPC processor as well and now the ARM7 processor, that's a lot of processing power and yet it is inexpensive in hardware and simplifies development of the software. Both the PPC and the Propeller would be preloaded with slave functions while the ARM chip is ready to be programmed in Forth from the "serial port" from the moment it is turned-on. Alternatively users may load their own software written in their favorite language into the ARM chip.
So what couldn't you do with a PUPPY and a PAL?
As well as the PUPPY Prop P8X32A controller module there are other modules in the same dual 8x2 format. High current signals etc are routed to the R connector with the L connector reserved for low voltage and control signals.
|
|
For more information contact: | Updated: April 29th, 2010 Peter JakackiRevision History: APR 29 - Brought out PPC DACs to I/O. PPC RXD and TXD to separate pins. MAY 6 - Added PUPPY PAL section |