I always thought that if you want to be successful, you need to emulate the success of others and avoid failure. When I started my career, there weren’t any single board computers like Raspberry Pi, and no one took Arduino seriously for industrial applications. You can imagine how bad it was the first time I had to do maintenance on a general purpose controller I had designed. It was a fire alarm controller that had over 50 wires manually screwed onto it. I had to replace a faulty 8 pin Electrically Erasable Programmable Read-Only Memory (EEPROM). The client was not happy, and I was under pressure to get the job done quickly and without error. That’s when I started separating general purpose controller designs into separate physical modules. Likewise, today, you will find Raspberry Pi making its way in industrial applications. This is not only because of its cost but also because of its modular design.
What is a General Purpose Controller?
As components and labor costs continue to increase in the electronics industry, it seems logical to have a minimal design footprint. However, when it comes to designing general purpose controllers this may not be the best option in the long run.
Unlike consumer electronics, like smartphones and TVs, a general purpose controller is designed with generic specifications and often used on a smaller scale. WIth different firmware, the same controller can have different functions. For example, they can be used as payment machine controllers, security management controllers or as a simple data monitoring station.
A typical general purpose controller consists of
A Microcontroller (MCU)
Memory chips e.g. SRAM, FRAM, Flash, EEPROM
Peripheral Interface (Ethernet, USB, RS485)
Inputs (Analog, Digital, Optocouplers)
Outputs (Relays, Digital)
Power Management Circuit
Wire To Board Connectors
In practice, cables from external sensors, switches, and equipment are terminated to the general purpose controller’s PCB at their respective connectors. The general purpose controller is then secured to an industrial enclosure or a terminal rack where they are serviced on a regular basis.
In certain industries, downtime means loss of revenue and angry customers.
Why you should use a modular design for your general purpose controller
From a design to cost point of view, It makes sense to design a general purpose controller on a single PCB. However, if you consider the applications that these general purpose controllers are being used for, a cost saving design could actually turn into expensive support and upgrade work. It’s better to use a modular design with multiple PCBs since general purpose controllers are used in applications that are subjected to harsh electrical environments. Their requirements evolve over time and will need to be upgraded, so it is critical to keep the downtime minimal in some of these applications.
A well designed modular general purpose controller allows its users to remove critical parts without dismantling the whole unit from the enclosure or removing all the connected cables in a time-consuming operation. Replacement can be done by merely removing the faulty module and plugging in a new one.
A Typical MCU module on a general purpose controller
Best modular general purpose controller design practices
Separating your general purpose controller into two or more modules will make repairs or upgrades more convenient. However, if you fail to segregate components correctly onto the appropriate module then this will be a wasted effort. There isn’t a standard practice for how to design modular general purpose controllers, but here are the principles that have served me well to date.
In my designs, I separate my general purpose controller into two modules, the I/O module and the MCU module. The I/O module is eventually mounted and screwed into an enclosure, and the MCU module can be easily plugged into the I/O module.
Passive components that are robust and have long life cycles go on the I/O module. This includes power management circuits, wire to board connectors, communication ICs, optocouplers, and relays. The MCU module includes the more intelligent components, like the MCU, memory chips, ethernet circuitry, and Bluetooth or WiFi modules.
In my experience as a design engineer, I’ve found that active components, like the MCU and memory chips, tend to fail more frequently than parts like voltage regulator or relays. This is why segregating active/passive components made sense. If a component is likely to fail, it can be found on the easily removable MCU module.
Besides segregating components into modules, you’ll also want to ensure interconnectivity between the modules with properly placed board-to-board connectors. Since the MCU module relies on the I/O module for power, sufficient voltage and ground pins need to be allocated on the inter-board connectors.
At the end of the day, designing general purpose controllers goes beyond prioritizing short term manufacturing costs. To be truly effective, you need to consider the long-term brand reputation and ease of support. Designing modular general purpose controllers will let you focus solely on making excellent designs and firmware enhancements, and the support team will be able to replace faulty modules with minimal discomfort and downtime.
If you want to start segregating your general purpose controllers into modules, you’ll need the best PCB software to get started. Altium Designer’s ability to manage various schematic blocks and synchronize the nets on your PCB will come in handy.
Have a question about general purpose controllers? Contact an expert at Altium now.
About the Author
PCB Design Tools for Electronics Design and DFM. Information for EDA Leaders.More Content by Altium Designer