Electronic Design

  
Reprints     Printer-Friendly    Email this Article    RSS        Font Size     What's This?


[Lab Bench Online]
EiED Online>> Parallax Propeller

William Wong  |   ED Online ID #13329  |   August 21, 2006


Parallax took a major turn from its bread and butter Basic Stamps and SX processors with its new Propeller architecture (see “Eight 32-Bit Cores Take Flight In Multiprocessor Microcontroller,” ED Online 12235). The Propeller packs eight 32-bit processors, called cogs, into a single package (see Figure 1).

Packing eight identical processors in the same package with shared memory may seem like a straight forward architecture but the Propeller is a bit more complicated and novel. For example, all eight cogs have access to all of the same 32 IO pins at the same time. This can make debugging a bit difficult if two processors accidentally use the same pin at the same time in a different fashion. This simply means designers need to have a good understanding of the application and its implementation.

The other thing is that Propeller has a split personality. First there are the eight cogs that have 512 32-bit words of RAM for variables, stack and cog code (also called Propeller assembler). The second is the Spin interpreter. Spin is a high level language where the high level control aspects of an application occur. Spin code is stored in main memory that consists of 8Kwords of RAM and 8Kwords of ROM. The latter contains the Spin interpreter along with other system tables and the system boot loader. The interpreter is written in cog code and is designed to run on a cog. The variables for the interpreter are stored in the cog’s memory but the Spin code is found in main memory. The interpreter reads a Spin instruction and then interprets it.

Spinning Up A Propeller
The boot loader cog code is what is loaded into a cog when the chip starts up. The boot loader can load an application into the main memory from the serial port or from a serial flash memory (see Figure 2). This is the configuration found on the Propeller demo board (see Figure 3). A serial interface is connected via the Propeller Clip (see Figure 4). Other development tools include the Propeller Stick kit (see Figure 5) that you need to assemble (see Figure 6).

Once the program code is loaded into main memory it begins executing the Spin code for the “top object.” This in turn can start up additional cogs. This is done by aiming a cog at an “object” stored in main memory. The cog code for this object is then copied to the cog’s memory and it begins running. The newly running code has access to main memory and is passed a parameter that it can use as the basis for communication and utilization of main memory.


<-- prev. page     [1] 2 3 4 5     next page -->

Reprints   Printer-Friendly  Email this Article  RSS    Font Size   What's This?


  • A New Design Inflection Point
  • Forecasting Industry Growth For 2009 And Beyond
  • EDA Retools To Exploit Multicore Architectures
  • Design And Verification Move Up In Abstraction
  • EDA Retools To Exploit Multicore Architectures
  • A New Design Inflection Point
  • Design And Verification Move Up In Abstraction
  • Challenges Lurk For 22-nm Physical Implementation
    1) Build A Smart Battery Charger Using A Single-Transistor Circuit
    (243 views today)
    2) 2008 BEST Electronic Design Winners
    (108 views today)
    3) What's All This Transimpedance Amplifier Stuff, Anyhow? (Part 1)
    (93 views today)
    4) Efficient DC-To-AC Inverters Charge Equipment Racks
    (82 views today)
    5) 1-A Switching Regulators Operate With 96% Efficiency To Replace Linear Regulators
    (81 views today)
    ALL TOP 20



    Reader Comments

    I good introduction! I will certainly take a closer look at the propeller. I want to check it it will fit my needs

    Bror -October 23, 2006

    While this article is quite positive there are some inaccuracies in it but that is and will continue to be the fate of any hardware that lives outside the box. What should be pointed out is that the Propeller is as complex or as simple as the user needs. I've not programmed(a Z80 CPU) since the late 80s but I do remember many of the principles involved. Add that to an understanding of OOP(Object Oriented Programming) and programming the Propeller becomes less difficult. But adjusting from the current programming styles or languages will cause problems because of the missing tools, interupts and dedicated hardware. There is a major advantage in not having specific limitations place on the creativity of the programmer. As with any new product and especially with one that challenges the current state of afairs, time will tell if its going to succeed.

    As stated I've not programmed for more than 20 years but the possibilities I came up with provoked me to buying a Propeller. At the moment I'm learning the other bits I need to know to use it and am happily being frustrated by the slow delivery or lack of stock of the other(non Propeller) bits I need.

    I won't say this is for everyone but it does allow for imaginitive and low cost experimentation. Have fun. Frans...

    BiblioTech -August 30, 2006   (Article Rating: )

    Well put SU, that's the way the article should have been written!

    Propeller User Too -August 30, 2006   (Article Rating: )

    While the write-up was useful, it is in fact misleading and actually wrong in a few but KEY areas. Spin files containing a basic like language can be an object in upper level programs. The limit here is system ram, not the number of cogs. Any propeller application can be any of the following combinations: A Spin file up to 32K in size, Quite a few Spin files totaling up to 32K. A spin file may contain Spin basic and or Assembly code, which can be launched into a cog (required for assembly code), or run from the current cog, or launched into it's own cog to run currently with the existing application. If the need for ram exists within the application, it can be added and addressed with a very nominal amount of hardware. Knowing the 512 32bit word limit of each cog is needed, and can't be overcome when working with assembly code. However the core developers at Parallax and private other parties have methods of overlaying code on the fly at runtime from other hardware. Thus, the 32K limit of ram is only for a 'stock' application, and is really limited by the application. Needing white space as a syntactical requirement is a throw back, but it leads to improved readability, and a very powerful command set. The PDT was designed at the same time as the hardware. This provides for an extremely tight correlation between user code and the byte code that is actually executed by the Spin interpreter. Cogs can wait for variables, pin conditions or time constraints for stopping, starting their operations. Multiplexing 32 I/O pins between cogs MAY lead to unintended results, but, even under the most unusual conditions, no developer would commit to sharing I/O pins between hardware tasks. Debugging is nearly nonexistent, however tools do exist to overcome this limitation. Out of the box, the Propeller will handle most applications. Lastly, the entire propeller system was developed for the beginning and experienced user alike. 7th graders are programming in the spin language, working with its hardware and designing the next class of affordable (and fast) multiprocessor robots. It will take someone who can take the idea of interrupt processing and convert it into concurrent processing to move this new chip foward. Developers who grasp the idea of managing several tasks currently, in a timely manor, will have the ability to develop hardware and software that can only be approached with much more money. The current Propeller operates at a published 80Mhz, with private tests exceeding sustained 110Mhz. That’s eight processors running at 100Mhz, in one chip, at less then 1/8 of the opening price of a Pentium, and out performing it. On board counters, frequency generation, modulated AM, FM and TV, VGA, component outputs with nominal hardware, simple and Sigma Delta DACs, again with nominal hardware, PS2 mouse, keyboard input, and simulated output. All of these features, out of the box at $25.00, with less then an additional $50.00 in support hardware, this little micro carves a place for many applications in many places. Thanks for reading; SU.

    Propeller User -August 30, 2006   (Article Rating: )

    author raises a good point about Parallax' need for debugging hooks and hardware level tools. They should study other examples (Freescale iMX31, for example) and cram a bit more into the next spin (sorry, couldn't resist!) of the chip.

    Anonymous -August 23, 2006   (Article Rating: )

    POST YOUR COMMENTS HERE
    Name:

    Email:
    Your Comments:

    Enter the text from the image below


    Please refresh the page if you have trouble reading this text.

    Search Electronic Design
         
      
     
    Web Seminar
    Sponsored By:
    Title: Read Pacing: A Performance Enhancing Feature of PCI Express Gen 2 Switch Devices
    Speakers: 
    Date: 07/01/08
    Register: 

    Electronic Design Europe Electronic Design China EEPN Power Electronics Auto Electronics Microwaves & RF
    Mobile Dev & Design Schematics Find Power Products Military Electronics EE Events Related Resources