Time-to-market is one of the most important parameters for any product’s success. It matters most for first-of-a-kind products and the companies are putting in great effort to reduce it. Design and prototyping is one of the largest phases in product development and a lot of time could be saved here by using ready development platforms. The time saved can help reduce time-to-market to a great extent and increase chances of the product’s success
Time-to-market is the time taken from conception of a product to its launch in the market. There is no standard way to measure time-to-market and the definitions for start and end points of product development period vary greatly from one organisation to another.
In some organisations, development period starts when the product concept is approved. Others consider the start point when the project is fully staffed. Similarly, end point of the time-to-market period also varies from one organisation to another. Those who look at product development as engineering consider the end point when engineering department transfers the prototype to manufacturing. Others consider shipping of the first lot as the end point. High-volume industries often consider end point when a certain production volume is reached.
Organisations even have different approaches to reduce the time-to-market. Some think that time-to-market and product quality are opposing attributes of a development process. Time-to-market may be improved by skipping certain steps of the development process, thus compromising product quality. These organisations use highly structured development processes such as phase-gate model or Six Sigma, and often view product development as a clearly defined sequence of steps to be followed. Skipping a step here means the quality has been compromised, which eventually increases time-to-market.
Other organisations operate more aggressively, recognising that not all steps need to be completed for every project. Furthermore, they actively apply tools and techniques that shorten or overlap steps, cut decision-making time and automate activities.
The product design and manufacturing cycle has different phases and the largest of them all is design and prototyping phase. Organisations use various techniques to save time on each phase. One method is to use development platforms to design and develop the product and finally realise the prototype. This saves a lot of time as you can skip the basic setup for your project.
As microcontroller is part of most electronics products these days, we will focus here on microcontroller development boards and how they speed up hardware and software development.
Why development boards?
Development board is basically a printed circuit board with circuitry and hardware on-board to facilitate experimentation with certain microcontrollers. These boards can save you from a lot of repetitive tasks. Imagine you want to work on a microcontroller-based project, but to be able to use a microcontroller, you have to set up a bunch of circuitry and hardware on your breadboard each time. Obviously, this is going to frustrate you, especially when there are portions that are going to be the same every time, such as the power circuit. Also, there are certain hardware circuits such as pushbuttons and LEDs that greatly aid in testing and debugging. Having all of the hardware and circuitry already assembled makes experimentation and general prototyping much easier.
If you build this basic setup yourself with a general-purpose PCB or breadboard, you can never be 100 per cent sure about the connections. Every time something does not work, you do not know whether it is because of the setup or the development you are carrying out. Thus a lot of time is wasted debugging the issue.
Also, if you plan to use SMD chips in the final product, building the basic setup becomes very time-consuming. You cannot build such a setup with general-purpose PCBs and have to design a dedicated PCB. A lot of time is wasted due to the lead times for manufacturing this PCB, sourcing components and assembly before you can really start with the development.
So it is better to use a suitable development board with ready interface and immediately start moving on with your project. These development boards can be used in multiple projects, so it is a one-time investment that will not hit your budget much.
Typically, components of a development board include:
1. Power circuit (typically, set up to run from a 9V/12V power supply)
2. Programming interface (to program the microcontroller through computer)
3. Basic input circuitry, like buttons
4. Basic output circuitry, like LEDs
5. Input/output (I/O) pins access (to be used for everything else such as motors, sensors and LCD screens)
Which development board to use?
Selection of the development board mainly depends on the microcontroller that you plan to use. You can also do it the other way around; select the development board first and then plan the project based on that microcontroller.
Selecting the right microcontroller for your product application is itself a challenging task. There is a huge variety of microcontrollers available in the market. DigiKey, for instance, shows more than 15,000 different items under ‘microcontroller’ search, and it is almost impossible to find the one best suited for you if you have not figured out your requirement beforehand.
Some engineers jump to microcontroller selection even before the system overview has been worked out, which is definitely a bad idea. Engineers should first work out the high levels of the system, block diagram and flow-chart and then select the microcontroller with the information available.
You can consider the following points to select the right microcontroller:
Hardware interfaces required. Using the block diagram that you made earlier, list out all the interfaces you need for external hardware. First, figure out the communication interfaces needed. This will narrow down your choices. Communication interfaces commonly inbuilt in microcontrollers are Ethernet, CAN, USB, serial ports, I2C, SPI and UART.
Next, determine the required digital inputs and outputs, analogue-to-digital converter inputs, PWM, etc. This will further narrow down choices for you.
Computing power. To decide on the computing power needed, analyse the architecture and requirements of the software that will be burnt into the microcontroller. Check whether the software has parts such as floating-point mathematics, high-frequency control loops that require more computing power. Also check the subtasks and how often they run. This will give you an idea of the processing power required, which is actually indicated by the clock speed of the microcontroller.
Within each CPU there is an electronic clock. The clock’s job is to create a series of electrical pulses at regular intervals. This allows the computer to synchronise all its components, determining the speed at which it can pull data from its memory and perform calculations. When you talk about how many gigahertz or megahertz your processor has, you are really talking about clock speed.
Architecture. If you have worked out the hardware interface and computing power requirements correctly, you will automatically land up on selecting the architecture of the microcontroller for your project.
The architecture of a microcontroller refers to the philosophy of internal implementation. All architectures are well-proven but one might work better than the other for a particular application. Decide on the architecture based on the hardware interface and computing power requirements as well as the future requirements. Here consider whether an 8-bit core would be sufficient for future developments too, or you need a better core. In any case, the decision has to be made between 8-bit and 32-bit as 16-bit is not much popular these days.
Memory. Flash and RAM are very critical components of any microcontroller and it is important to make sure that you do not run out of program space or variable space. Using the software architecture and the communication peripherals included in the application, you can estimate how much Flash and RAM will be required for the application.
Power. You will now have a list of potential candidates that suit your requirement. This is the right time to examine the power requirements of the part. If the device will be powered from a battery, select a low-power microcontroller.
Cost. Do not forget to examine the price per piece and minimum-order quantities. Make a smart decision as the price will greatly affect the overall cost of the product.
Hardware and software tools. Finally, check the availability and quality of development tools. Minimally, you will need some sort of programmer to load the program into the microcontroller. Here availability of the development board is a plus. Selection of the development kit nearly solidifies the choice of the microcontroller.
The last consideration is to examine the compiler and tools that are available. Most microcontrollers have a number of choices for compilers, example code and debugging tools. It is important to make sure that all the necessary tools are available for the part. Without the right tools, the development process could become tedious and expensive.
By following the above points one by one, you can arrive at the right microcontroller for your product. Once you are done with the selection, you can move ahead and select the development board for the microcontroller. For most popular microcontrollers, you can purchase the development board either from the manufacturer or a third party. However, you have to be careful while selecting a less common microcontroller because its development board might not be available. Tables I and II give overview of some popular microcontrollers from different manufacturers.
Give preference to an official board from the microcontroller manufacturer as with it you will have at least the basics right. Some small manufacturers also sell these boards but these are designed without giving much attention to the design guidelines.
Some popular development boards
The Arduino family. Arduino family needs no introduction. It is an open source electronics prototyping platform based on flexible, easy-to-use hardware and software. It is intended for anyone interested in creating interactive objects or environments without having much programming experience. Because of the simple IDE and coding environment, Arduino is a common choice for engineers and non-engineers alike. The hardware of the various boards in the family is completely open source and designed around an 8-bit Atmel AVR microcontroller, or a 32-bit Atmel ARM. The boards come pre-burnt with a bootloader that allows you to upload new code without the use of external hardware programmer.
Raspberry Pi. Raspberry Pi has recently gained huge popularity due to its small size, great computing power and low cost. The heart of the board is a Broadcom BCM2835 system-on-a-chip (SoC) that contains a 700MHz ARM 11 chip and a GPU capable of playing movies with BluRay quality. The Raspberry Pi Foundation has allowed overclocking up to 800 MHz. The CPU power is comparable to that of an old Pentium III with at least ten times lower power consumption.
On-board hardware includes a 3.5mm audio jack, an RCA connector for connecting analogue television sets and also a modern HDMI interface for transferring digital audio and video. An RJ45 network connector is also available and a dual USB type ‘A’ connector allows connection for mouse and keyboards. The operating system used is LINUX, with several distributions already optimised to run on Raspberry Pi. The OS boots from the SD card. To interface with external hardware, a complete GPIO connector is provided, which has pins with different functions. The device has seven true GPIO pins, I2C interface, SPI interface, serial TX/RX pins and PWM pins that can be used to control external hardware.
TI’s MSP430 LaunchPad. The MSP430 LaunchPad (Part No. MSP-EXP430G2) is an easy-to-use Flash programmer and debugging tool for Texas Instruments’ MSP430G2xx series microcontrollers. It has lots of debugging and interfacing features on-board for any development across MSP430 microcontroller device. It has on-board emulation for programming and debugging and features a 14-/20-pin DIP socket, on-board buttons and LEDs, and BoosterPack-compatible pinouts that support a wide range of plug-in modules for added functionality such as wireless and displays.
The MSP-EXP430G2 LaunchPad also comes with two MSP430 devices, with up to 16kB Flash, 512B RAM, 16MHz CPU speed and integrated peripherals such as 8-channel 10-bit ADC, timers and serial communication (UART, I2C and SPI). Free software development tools such as TI’s Eclipse-based Code Composer Studio, IAR Embedded Workbench, and Open Source tools like the MSPGCC compiler or Energia make it a complete development platform.
STMicroelectronics’ Discovery. For students and professionals who are looking to start with ARM architecture, this Cortex-M3 based system would be a great choice. STMicroelectronics actually has come up with several different development boards for virtually every type of ARM microcontroller that it offers. The one shown in Fig. 4 has following features:
1. STM32F051R8T6 microcontroller featuring 64kB Flash and 8kB RAM in an LQFP64 package
2. On-board ST-LINK/V2 with selection-mode switch to use the kit as a standalone ST-LINK/V2 (with SWD connector for programming and debugging)
3. Board power supply through USB bus or from an external 5V supply voltage
4. External application power supply: 3V and 5V
5. Four LEDs: LD1 (red) for 3.3V power-on, LD2 (red/green) for USB communication, LD3 (green) for PC9 output, LD4 (blue) for PC8 output
6. Two pushbuttons (user and reset)
7. Extension header for all LQFP64 I/Os for quick connection to prototyping board and easy probing
mbed. The mbed platform provides free software libraries, hardware designs and online tools for professional rapid prototyping of products based on ARM microcontrollers. Hardware of the latest mbed microcontroller boards is based around an NXP microcontroller, which has an ARM Cortex M3 core running at 96 MHz, with 512kB Flash, 64kB RAM, as well as several interfaces including Ethernet, USB Device, CAN, SPI, I²C and other I/Os.
PandaBoard. PandaBoard is a low-power, low-cost, single-board computer development platform based on Texas Instruments’ OMAP4430 SoC. PandaBoard ES is a newer version based on OMAP4460 SoC, with its CPU and GPU running at higher clock rates.
OMAP4430 SoC on PandaBoard features a dual-core 1GHz ARM Cortex-A9 MPCore CPU, a 304MHz PowerVR SGX540 GPU, IVA3 multimedia hardware accelerator with a programmable DSP, and 1GB DDR2 SDRAM.
PandaBoard ES uses a newer SoC, with a dual-core 1.2GHz CPU and 384MHz GPU. Primary persistent storage is via an SD card slot, which supports SDHC cards up to 32 GB. The board includes wired 10/100 Ethernet as well as wireless Ethernet and Bluetooth connectivity.
The device runs the Linux kernel, with either traditional distributions, Android or Mozilla Firefox OS. Optimised versions of Android and Ubuntu are available from the Linaro Foundation. Linaro has selected PandaBoard as one of the hardware platforms that it supports with monthly build images.
BeagleBoard. BeagleBoard is a low-power, open-source hardware, single-board computer produced by Texas Instruments in association with DigiKey and Newark element14. It was also designed with open source software development in mind, and as a way of demonstrating Texas Instruments’ OMAP3530 SoC.
OMAP3530 includes an ARM Cortex-A8 CPU, a TMS320C64x+ DSP for accelerated video and audio decoding, and an Imagination Technologies’ PowerVR SGX530 GPU to provide accelerated 2D and 3D rendering that supports OpenGL ES 2.0. Video-out is provided through separate S-Video and HDMI connections. A single SD/MMC card slot supporting SDIO, a USB On-The-Go port, an RS232 serial connection, a JTAG connection, and two stereo 3.5 mm jacks for audio in/out are also provided.
Atmel STK600. It is a complete starter kit and development system for 8-bit and 32-bit AVR microcontrollers that gives designers a quick start to develop code on the AVR with advanced features for prototyping and testing new designs. The AVR device connects to STK600 using an innovative routing and socket card sandwich system, which routes signals from the device to the appropriate hardware.
The system consists of a generic socket card, on which the AVR device is inserted, and a device-specific signal routing card, which routes signals from socket pins to different functions on the STK600 main board dependent on the device. The kit offers access to all device pins, and several useful hardware functions such as pushbuttons, LEDs and data Flash to create a complete system for prototyping and testing new designs.
Microchip’s PIC18 Explorer board. This low-cost demo board is used for evaluation of Microchip’s PIC18 MCU families. PIC18 is the highest-performing 8-bit architecture and has three different families: standard PIC18, PIC18 J-series and PIC18 K-series. This single development board supports dozens of general-purpose PIC18 families using various processor plug-in modules. PICtail daughter boards enable many different accessory boards to connect to PIC18 Explorer board for a flexible and complete development environment. It conveniently connects to MPLAB PICkit 3, ICD 3 or REAL ICE for in-circuit programming and debugging. Other features include alphanumeric LCD display, USB interface for USB to RS232 communication, 25LC256 SPI EEPROM, crystal oscillator, potentiometer (connected to 10-bit A/D, analogue input channel), analogue-output temperature sensor, LEDs and RS-232 port.
Renesas’ RDK for RX63N (Part No. YRDKRX63N). The Renesas demonstration kit (RDK) for RX63N (32-bit MCU) is an evaluation and demonstration tool for Renesas RX63N microcontrollers. The goal is to provide the user with a powerful debug and demonstration platform targeted at common applications. The board also provides a useful platform for evaluating the Renesas suite of development tools for coding and debugging, using the High-performance Embedded Workshop (HEW) IDE as well as programming the device using the on-board SEGGER J-Link JTAG debugger. The features are as follows:
1. 32-bit, 100Mhz RX63N MCU @ 165 DMIPS
2. 10/100 Ethernet
3. USB host and device ports
4. 3-axis accelerometer from Analog Devices
5. 128MB PCM serial Flash from Micron
6. Stereo audio output and on-board speaker
7. Analog Devices silicon microphone input
8. Temperature sensor from Analog Devices
9. User pot and three switches
10. Micro SD card slot
11. 96×64 graphics LCD from Okaya
12. Expansion headers
13. Dual Pmod connectors
14. LED simulated motor phases
15. USB or externally powered
16. Total Phase Beagle I2C/SPI debug interface
17. Built-in SEGGER J-Link debugger
18. Myriad of software, code examples, and demos
The Renesas demonstration kit for RX63N is also the hardware platform that is included in a special RX63N-specific edition of Micrium’s book on the µC/OS-III Real Time Kernel. The book and board combo targets serious programmers and college students who need to understand and create programs based on the time-saving features of a real-time kernel.
The author is a technical editor at EFY