Designing A Small Peripheral Module Standard

May 18, 2011
Is it time for a Small Peripheral Module (SPM) standard for production and development boards? Technology Editor Bill Wong thinks so.

Possible Small Peripheral Module (SPM) layout

Small peripheral modules (SPM) come in a range of form factors with an almost equal number of connectors and pinouts. Every microcontroller vendor has its own line of development boards with unique expansion support typically to provide access to all the chip's peripheral interfaces.

There are some platforms like Arduino that have garnered support from multiple vendors. Likewise, there are standards like PC/104 and many variations thereof. The problem with the latter is the form factor is rather large and the cost of these boards tends to be rather high.

These days it is relatively easy to pack a lot of logic into a square inch. It would be nice to have a low cost expansion module for the PC/104 crowd where add-on peripherals are often limited. The challenge is that most development kit modules tend to lack details like mounting holes necessary for rugged environments. On the other hand, many embedded standards like the Small Form Factor SIG's (SFF-SIG) SUMIT (see SUMIT Brings Big Improvements In Small Packages) provide high performance bus expansion but utilize rather expensive connectors. In many cases, performance is not necessary. For example, accessing serial flash or wireless interfaces can utilize lower speed interfaces like I2C or SPI. Even serial ports are can be handy.

So what kinds of modules are candidates for this platform? Just about everything from ADCs and DACs to serial memory.

So I've decided to propose my own SPM to get the discussion going. I have talked with a number of board and microcontroller vendors and many expressed interest. Many will ask their users about this issue but I figured it would be a good idea let everyone in on the discussion.

So here it is. Call it Bill's SPM Rev 0.1 (Fig. 1) for now. Keep in mind these initial premises:

  • Low cost
  • Suitable for rugged environment
  • Space for at least one external connector
  • Small form factor
  • Standard bus connectors
  • Low speed interfaces
  • Support for common microcontroller interfaces
  • Modules and host boards do not have to support all interfaces
  • Modules may only work with host boards that support a matching interface
  • Stacking is optional

The sample figure addresses some of these items. For example, the two headers would be standard 0.1-in center headers that would allow stacking. Some interfaces like I2C could be used on a number of boards in a stack. Alternatively, a board using SPI could be stack on top of another that uses I2C or a serial port. The four mounting holes might be overkill especially given rigidity the headers would provide but rugged environments would need at least one way to lock down a module.

Now for some of the signals.

Bank 1

  • SPI/Quad SPI (6)
  • I2C (2)
  • Serial port (4) - TX, RX, CTS, RTS
  • Interrupt (1)
  • Reset (1)
  • 3.3V power (1)
  • Ground (1)


Bank 2

  • Data (8)
  • Control (3) - Strobe, Busy, Ack or Vsync, Hsync, Pixel clock
  • USB (2)
  • Ground (1)
  • 5V power (1)
  • Unregulated power (1)

Some of the annotations highlight possible configurations. Parallel port aficiondos will recognize the Control handshake signals. Likewise, the Data lines could be used for an 8-bit camera chip.

The choice of 16-pin headers is arbitrary but provides for a wide range of options. It leaves out some interface like CAN (controller area network) and it might be worth adding or changing a couple pins to include this. Pins might be able to do double duty so CAN could replace USB. Developers would need to know these limitations but that is the case already since an SPI module would require a host with an SPI interface. The bigger question would be whether a stack would require USB and CAN at the same time.

I've include 3.3V and 5V power but that might be overkill. The unregulated power is one I would recommend keeping because it could go in both directions. It could be used to provide power to servos or a module might supply power. This could be done by putting batteries on the module or a power connector. It might also be possible to scavange power and provide it to the host.

Other areas of discussion include signal placement. For example, it would save a few cents if a carrier board could present half the header pins. This might be the case if the board did not support all of the interfaces. Requiring only the outer rows of pins could be a possibility. Of course, this means pins for power and ground should be on these rows.

Now for the discussion. Are these interfaces sufficient or are there too many? Is the form factor too big or too small? Does it cover enough types of peripherals to be useful? Would you use modules of this type?

Here are a few thoughts. The figure shows a large host board with two SPM sockets next to each other. One possiblity is a double wide SPM module. Another is to have a carrier board that is the same size as the SPM module. That would be a rather compact system. Add a battery to the top of the stack for a mobile prototype.

Another configuration I considered was a host processor board using a camera module mounted at a right angle to the host. A very low cost module is possible using a right angle header if the parallel camera interface is properly place. Of course, if the camera chip needs 3.3V then the current design might not be as amenable to this since that power is provided by the other header.

So what's another connector or circuit board in a design? For the designer, not much. For the supplier, it is added cost and lost profit.

An outfit like SFF-SIG might be a good place to formalize SPM but it definitely needs input from microcontroller vendors. Another major group are vendors that make boards for other form factors and purposes. This would be a useful platform for robotics.

So what do you think? Leave a comment or send me an email.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!