As developers look for ways to reduce the cost of their embedded systems without compromising the availability of peripherals or system performance, a potential solution to explore is the option of using one-time programmable (OTP) microcontrollers (MCUs) in their designs. OTP-based MCUs often provide the same peripherals and functionality as those found on flash-based devices, but at a reduced cost, or they can exceed the performance and functionality of flash-based MCUs at the same cost. These functionally dense devices come with an assortment of peripherals and in a variety of package options, some as tiny as 2 × 2 mm.
By Evan Schulz, Silicon Labs
Many embedded applications requiring the use of MCUs are well-suited for OTP-based devices in their design. However, misconceptions about OTP MCUs can steer developers away from using these devices in their applications. The name “one-time programmable” may cause some developers to think these devices can only be programmed one time and cannot have their code space modified again, but OTP devices actually can be programmed multiple times. OTP-based MCUs use a bit-cell memory where each bit can be modified once. For example, a single byte in the device’s code memory could be modified up to eight times by clearing one bit per write instruction. Because of this memory architecture, various portions of code space can be programmed at different times. In most cases, an external programming voltage needs to be applied each time code space is programmed on OTP devices. This voltage needs to be supplied to a particular “VPP” pin on the device for the duration of the programming process in order to successfully write to the device, and it must be removed after the programming sequence is complete.
Some OTP devices are capable of in-application programming (IAP), where the MCU can write to code space through firmware without requiring an external programming voltage. This is useful in applications where a calibration value needs to be written to code space after the MCU has been installed on a printed circuit board (PCB), or if any value needs to be calculated at run-time and stored in code space. To use the IAP feature, an external capacitor is typically connected between a specific pin on the MCU and ground. Using this method for IAP, the MCU charges the external capacitor until it is charged to an acceptable programming voltage. After the necessary voltage is present on the capacitor, the device uses the charge stored on the capacitor to support the write to code space. This process is repeated each time a byte is written.
The IAP feature of OTP MCUs makes these devices an option for any application that does not require the MCU’s code space to be erased through firmware. Since most applications are fixed function, erasing memory is not required for their operation; therefore, an OTP device can be used to implement solutions at lower cost than a flash-based MCU or with enhanced features at the same cost as a flash-based MCU. For example, resistive touch screen applications require the use of MCUs with the ability to take analog-to-digital converter (ADC) samples to calculate which coordinates are touched on the screen. For this type of application, a designer has the option of using either a flash-based MCU or an OTP MCU as a possible solution. By selecting the OTP device, the overall cost of the system is reduced. In addition, the touch-screen user will not be able to tell the difference between a flash-based MCU with a 10-bit ADC and an EPROM-based MCU with a 10-bit ADC running at the same speeds. As long as the necessary peripherals are available, OTP devices are a great choice for appliances such as washing machines, drying machines and blenders, as well as security devices, blood glucose meters or any other devices that perform a fixed function.
Another feature of OTP MCUs is that the code development process is very similar to the process for flash MCUs, but with one added step. Because a code image is typically only programmed once on an OTP device, the majority of the code development and debugging is performed on a flash-based MCU and then ported to the OTP device as a last step in the process. In most cases, the OTP device has a similar flash device that can be used during the initial code development stages to simplify the process. If the flash-based part does not have an identical pinout as the OTP part or if the OTP device has added functionality that does not exist on the flash-based device, the last porting step would involve testing out a new hardware configuration or adding in code that enables the additional functionality. Using a flash-based device during development reduces the overall development costs by minimizing the number of OTP MCUs that are used during the code development process. Figure 1 illustrates the process of porting code to an OTP device from a flash-based device. Silicon Labs offers several OTP device families, which range in size and functionality. The OTP MCU families come in a variety of packages with combinations of the following peripherals and functionality:
• Universal asynchronous receiver/transmitter (UART);
• System management bus (SMBus);
• Serial peripheral interface (SPI);
• Programmable counter array (PCA);
• Analog-to-digital converter (ADC);
• Digital-to-analog converter (DAC);
• Temperature sensor;
• Voltage reference;
• On-chip 5V to 3V regulator;
• In-application programming (IAP);
• Universal serial bus (USB).
Development kits are available that include an evaluation board for testing and debugging, a programming socket, which connects to the motherboard to program the OTP device, and a flash-based daughter card, which connects to the motherboard to aid in the code development process. The motherboards included in the OTP development kits are capable of providing the necessary programming voltage to the MCU during a programming sequence. For devices capable of IAP, the programming sockets have an option to connect an external capacitor to the device’s programming pin to use and test the IAP functionality. The necessary power and debugging cables are included as well as code examples for each device family that show examples of using the available peripherals on the devices.
Although the term OTP can be misleading, the use of OTP MCUs can reduce the cost of developing embedded systems when compared to other, more expensive memory technologies, such as flash. In some cases, use of OTP devices can also enable higher performance, feature-rich systems at roughly the same cost as flash-based approaches. These streamlined devices should be considered for any application that does not require erasing code space. By reducing the overall system cost or increasing system performance at the same cost, OTP devices offer embedded designers a cost-effective solution without sacrificing peripherals or functionality.
For more information on Silicon Labs’ OTP MCUs, visit: