Published using Google Docs
PUPPY Prop Specifications
Updated automatically every 5 minutes

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

  • Propeller P8X32A QFP
  • 29 I/O (including I2C and RX/TX)
  • 24LC512 64K byte EEPROM
  • W25X32 4M byte SPI Flash (or similar) 
  • microSD socket - push-push type
  • C8051F411 peripheral ADC CPU
  • -- 8051 CPU 50MIPS, 32KB FLASH
  • -- 9 channels 200ksps 12-bit A/D (P16..P24)
  • -- internal A/D reference and temperature 
  • -- 2 channels 12-bit D/A
  • -- In-circuit programmable from Propeller
  • -- Watchdog reset
  • -- Buffered UART channel
  • -- RTC + 0.047F supercap
  • -- interfaced via I2C (high-speed 1MHz mode)
  • LDO regulator 3V to 10V input
  • Power/status LED
  • 1.8" x 0.8" module 
  • Dual 8x2 pins (0.1" pitch)
  • PropPlug interface

  

PUPPY P8X32A/411 MODULE

PINOUTS

PROG

L1

L2

P

R1

R2

VCC

VCC

GND

U

P0

P1

TXD

RXD

TXD

P

P2

P3

RXD

SDA

SCL

P

P4

P5

RST

RST

P24

Y

P6

P7

GND

P23

P22

P

P8

P9

VDD

P21

P20

R

P10

P11

GND

P19

P18

O 

P12

P13

GND

P17

P16

P

P14

P15


P8X32A PROPELLER

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. 

EEPROM

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. 

microSD Memory

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

VCC

3 to 9V power input

Typically 5V input

P31

RXD

default serial input for Propeller programming

P30

TXD

default serial output for Propeller programming

P29

SDA

I2C bus data 

P28

SCL

I2C bus clock plus status LED

P0, P2

Sigma-delta capacitors

Used with an external resistor for low noise A/D

P0...P24

General-purpose Propeller I/O

PPC FUNCTIONS

P16..P24

ADC channels 0..8

12-bit analog inputs in parallel with digital I/O

P20

DAC1

12-bit current DAC channel 1

P21

DAC0

12-bit current DAC channel 0

P22

TXEN

PPC RS485 TE signal

P23

TXD

PPC serial transmit or other PPC function

P24

RXD

PPC serial receive or other PPC function

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

ANALOG to DIGITAL CONVERTER

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)

ADDR

DESCRIPTION

BYTE 0

BYTE 1

$20

Write PPC register address

$21

Read PPC from register

$22

Write watchdog register

$30

Write ADC 0 control

$31

Read ADC 0 data

ADC b11..b4

ADC b3..b0

$32

Write ADC 1 control

$33

Read ADC 1 data

ADC b11..b4

ADC b3..b0

"  "

" "

$3E

$3F

Read ADC 7 data

 

PPC REGISTERS

ADDR

BYTE 0

BYTE 1

BYTE 2

BYTE 3

BYTE 4

BYTE 5

BYTE 6 

BYTE 7

$00

ADC0 b11..b4

ADC0 b3..b0

AVG0 b11..b4

AVG b3..b0

MIN0 b11..b4

MIN b3.b0

MAX b11..b4

MAX b3..b0

"

"

"

"

"

"

"

"

"

$08

ADC8 b11..b4

ADC8 b3..b0

"

"

"

"

"

"

$08

Celsius

Fahrenheit

$09

TEMPERATURE SENSOR   Module temperature can be read directly in Celsius or Fahrenheit via the PPC. The 8-bit reading is internally averaged and rounded. 

WATCHDOG   A watchdog function may be activated on the PPC which once started can only be deactivated by a watchdog timeout or an external reset. Writing a value to the watchdog over the i2C bus will load a timer which will start c ounting down every 10ms and when it reaches zero it will trigger a reset to the Propeller. After resetting the Propeller chip or detecting that the Propeller has been reset externally the watchdog will idle until the timer is loaded again. Once started the watchdog must be fed new timer values which reload the countdown with the new value.

SERIAL FLASH   Serial FLASH memory offers much higher capacity than EEPROM technology as well as high transfer rates through the SPI bus. The tradeoff against the EEPROM is that the EEPROM can have any random byte rewritten without impact on other memory locations whereas the serial FLASH can only erase a 4K page at a time. The block structure of the serial FLASH is suitable for chunks of data to be written at high speed with a 256 byte page programming in less than 2ms. The final version has the PPC interfaced to the Flash and emulating paged EEPROMs.

RTC   This clock/calendar provides the time and date functions for application programs and is backed up by a supercap that unlike batteries never needs replacing and can power the RTC during power outages for up to a few days. This function is implemented on the F411 PPC.

UART   The UART on the PPC is able to operate at very high baud rates accurately and in either 8 or "9-bit multiprocessor" data mode. The data is buffered internally with 256 byte buffers for both receive and transmit. The RXD and TXD signals are paralleled with Propeller I/O so use of this function requires that the Propeller does not drive these pins. RS-485 mode is also supported through the use of one extra pins. MODBUS functions may also be implemented at a future stage. The PPC UART registers include data, status, control, mode, and baud-rate (in bps).  

PPC Incircuit Programming   The PPC is factory programmed with standard A/D and watchdog functions. The PPC firmware can be upgraded under the control of the Propeller through SDA and P26. Spin source code is available that will read a standard binary image and burn it into the PPC. 

PUPPY PAL MODULES

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?


 PUPPY I/O MODULES

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.

  • HCB4308         High Current Bridge - Quad Half-bridge, 32V @8A efficient 100kHz 3-state operation.
  • PIO4307         Quad open-drain MOSFETs rated at 30V and 7.5A coupled with RC inputs or as PWM RC outputs.
  • PSM6470        Bipolar microstepper (128 steps), 3.5A continuous/winding. 
  • CAN2515         CAN bus based on MCP2515 plus RS485 which can be operated in J1939 mode.
  • AIO2210         Two 0..10V analog outputs (via PWM) and two 0..10V analog inputs.

L1

L2

R1

R2

VCC

VCC

P

PGND

PGND

GND

GND

U

PIN0A

PIN0B

/RST

/CS

P

PIN1A

PIN1B

SCL

SDA

P

V+

V+

IO0

IO1

Y

PGND

PGND

IO2

IO3

PIN2A

PIN2B

IO4

IO5

I/O

PIN3A

PIN3B

IO6

IO7

V+

V+

For more information contact:

 peter@pbjtech.com

Updated: April 29th, 2010 Peter Jakacki

Revision History:

APR 29 - Brought out PPC DACs to I/O. PPC RXD and TXD to separate pins.

MAY 6 - Added PUPPY PAL section