Designing for electronics has always been regarded an art. While putting together a circuit or a board is itself a challenge, designing what is to be done requires a thinking that comes only easily to a talented few. Creating an embedded system is no different; with one added complication. You are not the only brain behind the design; the tiny guy sitting inside controlling everything, thinks for himself too.
This was the point highlighted by Siddharth Unny, director, TL Micro Automation, in an interview with EFY. Interestingly, his company is called TL Micro, which stands for ‘Think like a micro’. With tips from his experience in this domain, this articles takes us through the approach that is needed to create a successful embedded system. If you are a beginner in this field, there is no better place to start.
Think like a micro….
The most important factor while designing for a microcontroller is to think right. While working with embedded systems, people tend to think of how a human would react to a situation, rather than how a controller or a processor would. What is required is to channelise our thought process to how a microcontroller would behave to an input, an interrupt or an instruction, and how it generates outputs. “These are the inputs coming in. This is the code I am going to execute. Oh no! There’s an interrupt and I am going to jump to this line of the code.” This reduces a lot of errors and reworking of our code, and helps us code better.
…What we get is decided by how well we choose what goes into it
Care needs to be taken while selecting the elements that make our system. Choosing the right hardware components and controllers best suited for that particular application, is key. While a platform independent approach might add complications in terms of learning how to work with a new tool or controller, it gives us the flexibility to optimise for our design and not compromise for the available feature set. It is for this reason that it becomes important to ensure that we are comfortable with what we use, or we learn to get comfortable with the set we work with. Learning the art of designing in its true sense automatically equips one with skills needed to adapt to a new design environment.
The bargain should be between cost and performance…
The main component of our system that decides how our system functions is, of course, the processor. The processor needs to be able to comprehend and work at the pace at which random events happen. Once the system to be designed is known, set out to figure out the specifications, and choose components accordingly. Regularly updating ourselves with the latest in our domain- be it components, vendor costs or a new technology itself -is highly necessary. A mix of these to arrive at a comprehensive design that works for our application and can be realised within our cost and performance constraints, is what is required. Designing for cost is the challenge.
…A detailed costing is as important as the product itself
We see a lot of start-ups that have a brilliant idea, invest a little, start working, but give-up mid-way due to escalating costs or lack of design feasibility. The simplest way to avoid this is to do a costing evaluation right at the start; a detailed one that includes not just basic costs, but end-of-product cost, including vendor charges, charges for tools, development charges and so on, at minimum order quantity (MOQ). Not only does this prepare us for what we can expect, but also helps us pitch correctly to the players we are dealing with and work out details viable to both parties.