I’ve noticed that there are two kinds of people in the world: those who have a large armoire full of lightly-used shoes to choose from for their daily activities, and those who have a few (too) well-worn pairs of shoes that they are squeaking out until the toe-holes become intolerable. I am among the latter, and unfortunately for my current pair of sneakers - it is getting time to replace them. But there’s always a golden period to replace old shoes: finding the point in time where the weariness of your current pair is just more cumbersome than the stiffness of a new pair that has yet to be broken in.
Unfortunately, knowing when to replace your shoes seems more of an intuitive process than one which could be tracked and managed like in electronics. Though, end-of-life component obsolescence management is still a common challenge in electronics design. When individual components become obsolete before the product reaches the end of its life cycle, there is a clear transition problem. For example, microcontrollers are frequently replaced by newer versions due to their short end-of-life (EOL) cycles of five years or less. Because of their limited lifespan, long life-cycle products like industrial dataloggers and vehicle parking payment machines face the continuous challenge of outlasting their microcontrollers and requiring regular replacements.
If you’re unprepared, migrating to a new microcontroller can be a painful process that involves close coordination (and potential miscommunication) between hardware and firmware developers. However, following these three important modular design tips can help you develop a smoother microcontroller transition process:
If hardware redesign is required for MCU migration, modular schematics can save lots of time. The convenience of keeping all of your schematics in a single design file simply isn’t always worth it! Replacing an obsolete microcontroller with a new one can be potentially problematic if the two are not pin-compatible. In this case, the microcontroller cannot be replaced until other components have been manually moved around and every single connection has been reconnected.
A modular schematic design is a far better option that provides the flexibility of organizing the microcontroller on single schematic sheets and using nets or ports to connect to other modules. With this approach, you would only need to alter the microcontroller schematic module. This is much neater and more efficient than non-modularized schematics.
It also helps if you create a table within a spreadsheet to ensure the pins are mapped correctly to the new microcontroller. This reduces the possibility of mistakes while revising the new PCB. But if a component’s end-of-life is affecting any of your products, you might want to consider using the item lifecycle management feature of Altium Vault to better track and synchronize your design.
Creating good code is more than just crunching pages upon pages of programming instructions and getting the hardware to work. Good firmware programming involves establishing a systematic hierarchy to plan out the coding module and minimizing changes to the source code when migrating to a new microcontroller. The more portable and structured the code, the better.
The source code of a system can be divided into hardware levels such as Inputs, Universal Asynchronous Receiver-Transmitter (UART), and Timers. These hardware-level modules configure and interact with the microcontroller’s register. Source codes dedicated to the system algorithm are placed in a separate section. For example, the Database, Modbus, and Data Logging modules aren’t hardware-dependent and can be placed separately.
The bottom line is that when transitioning to a new microcontroller, only the source code related to the internal portion of the microcontroller needs to be modified. This approach minimizes the time needed to amend the firmware to suit the new microcontroller. With the right structure, the porting process can begin while the hardware team is simultaneously revising the design.
Ensuring an efficient PCB layout can be the most efficient way to save time and energy when migrating to new microcontrollers. The most tedious part of migrating to a new microcontroller is the process of remapping each and every signal to other components within the circuit. When the microcontroller has hundreds of pins, minor mistakes can complicate the transition process. Therefore, it is wise to check with the manufacturer if the obsolete microcontroller requires a pin-to-pin replacement.
I directly experienced an EOL issue when one of my designs contained the NXP ARM7-based LPC2368 microcontroller. Luck was on my side, though, because the newer microcontroller was pin-compatible with my existing design and saved me the immense trouble of revising the PCB itself. With that said, there are certain circumstances where pin-compatible versions are not available, in which case the hardware design needs to be revised.
Efficient PCB design is challenging to achieve without a streamlined workflow, access to design history, and component customizability. Ideally, the designer needs to be able to monitor independent and modular changes to all components while ensuring overall synchronization. Offering end-of-life management through optimized modularity and less repetitive work per transition, obsolescence management software can minimize surprises and extra work down the line. The PCB design software CircuitStudio offers a comprehensive, cutting-edge solution.
Want to better prepare your design for end-of-life component obsolescence? CircuitStudio could be the perfect tool to prepare your design for common issues like microcontroller transition. Talk to an expert at Altium now for more tips.