Parallax Inc., the Rocklin, Calif. electronics manufacturing company, is known for developing the Basic Stamp microcontroller development board and educational accessory kits. In addition to developing a user-friendly educational platform to learn about 8-bit microcontrollers and software programming, it created a multicore 32-bit chip called the Propeller. The microcontroller provides a wealth of I/O peripherals and internal hardware resources that can easily be programmed using traditional C or Spin programming languages.
Parallax also offers a variety of development kits and evaluation boards to help learn these programming languages, as well as explore new hardware design concepts in areas such as robotics, consumer, industrial, and medical electronics.
The Propeller microcontroller has a unique architecture. It uses eight 32-bit cores (called cogs) and a CPU to access 512 32-bit long words (2 KB) of instructions and data. The bootloader to configure the microcontroller after a reset uses a flexible type of programming code aided by the internal SPIN interpreter. A round-robin technique is used to access shared memory of 32 KB RAM and 32 KB ROM -- round-robin is a network and scheduling method where time slices are assigned to each computing process in equal portions in a circular order. An internal bus controller, referred to as the hub, assists in the round-robin technique of physically accessing the MCU's shared memory resources. Also, each cog (32-bit core) has access to two dedicated hardware components consisting of counters and video generators to create traditional PAL, NTSC, and VGA television signals. It also uses a 32 kHz - 80 MHz oscillator to provide precise timing and management of the Propeller's internal electrical and memory resources.
MORE FROM DESIGN NEWS: Learn to Build Raspberry Pi Controllers Using Python
The Propeller has a 32-bit port packaged on a 40-pin DIP (Dual Inline Package), 0.6-inch-pitch microcontroller device. The MCU is manufactured in traditional LQFP (Low Quad Flat Pack) and QFP (Quad Flat Pack) ICs (integrated circuits). It has two power, ground, and external crystal pins, respectively. Included are traditional brown detection and reset circuits for electrical transient monitoring and protection.
Features and Functions
The Propeller microcontroller has wealth of features and functions for the designer. For example, the MCU can be clocked using either an internal, on-chip oscillator, which helps reduce the total parts count in the target product's BOM. A downside to using the internal clock is sacrificing timing accuracy as well as thermal stability. If an external oscillator is desired, two dedicated I/O pins can be used to add a crystal or resonator to the IC.
By using an external oscillator, a 1x, 2x, 4x, 8x, or 16x timebase can be set, aided by an on-chip PLL clock multiplier circuit. If using both the onboard oscillator and the PLL multiplier circuit, the MCU's power efficiency can be improved. To accomplish this, the PLL multiplier circuit frequency must be lowered before a long no operation wait function is initiated. Once the decrease sequence function is completed, the PLL multiplier's frequency is raised, causing the Propeller's CPU to use less power. The power efficiency function is implemented in a software subroutine using the Spin or C programming language.
Spin Programming Language
Parallax's Chip Gracey designed the multicore architecture for the Propeller and uses Spin to program it. Spin code is programmed into the chip using a GUI-based software development platform. The IDE to program and debug code is called the Propeller Tool.
Code is entered via a typical text editor for debugging and documentation. Since Spin is an assembler-based programming language, the Propeller Tool's compiler converts the code into bytecodes, which is loaded into the microcontroller's memory. The Propeller Tool is used in downloading the bytecode to the microcontroller, as well. Spin executes approximately 80,000 instruction-tokens per second on each of the eight cores, giving 640,000 high-level instructions per second.
Programming in Spin code is quite easy, and Parallax provides a wealth of tutorials and educational resources to learn this programming language. I'll be exploring and discussing the Parallax Propeller's features and functions by way of hands-on evaluations in future Design News posts.
Don Wilcher is a passionate teacher of electronics technology and an electrical engineer with 26 years of industrial experience. He's worked on industrial robotics systems, automotive electronic modules/systems, and embedded wireless controls for small consumer appliances. He's also a book author, writing DIY project books on electronics and robotics technologies. His latest book, Make: Basic Arduino Projects, published by Maker Media, is on the Alabama State Department's approved Career and Technical Education (CTE) reading list. He's currently developing 21st century educational training products and curriculum focusing on Internet of Things (IoT) and Industrial Physical Computing for makers, engineers, technicians, and educators. Besides being an Electrical Engineer, he's a Certified Electronics Technician with ETA International and Alabama State Certified Electronics Instructor.