There’s one element that’s a part of just about every design -- a processor element. That’s a fancy way of saying the microprocessor or microcontroller. While it’s easy to say that most MCUs are similar, there are differences among the various architectures (and sometimes very subtle differences) that can make or break your design.
What is the peripheral mix? How much memory is embedded? How do you relate to the tool chain? Is there an upgrade (or downgrade) path to migrate to for future generations? And so on. Those questions just scratch the surface of how to choose the right processor, because generally, each of the processor vendors can answer those questions within its own offerings.
As a way to assist you in this crucial development stage, we’ve put together a series of classes in our Continuing Education Center that looks at the PIC family of microcontrollers. The lecture series is named Pick (and Implement) the Right PIC MCU. If you’re considering this architecture for your project, I highly recommend you take the time to sit in on this week’s lectures. (Note that the classes are archived, so you don’t have to be there when the live classes occur.)
Find out more about the Digi-Key Continuing Education Center and earning IEEE professional development hours here.
I guess it is true that we have to be sure about the processor according to our need and for that taking guidance is an excellent idea. Usually we just buy it according to the guidance given by the seller or the publicity conducted by the companies.
I agree. I'm teaching a microprocessor and microcontroller class at ITT Tech and one of the questions asked by my students is, "What's the right processor to pick for an embedded application"? Several items I suggest in picking the right processor where discussed in Rich Nass's article. A class on this topic will always draw a large crowd because of the DIY/Maker movement that's happening in the states and overseas. Developers and hobbyist are always interested in knowing how to get the most out of a microprocessor or microcontroller for their embedded projects.
I'll be presenting a CEC course on the Arduino scheduled June 9th - 13th. I'll be using some projects from my latest Arduino book during the course presentations.
I agree. MCU suppliers have a big handle in what type of processor to use based on their marketing strategy. Ultimate, the customer has to know the product they are desigining interms of functional requirements inorder to make the appropriate mcu choice.
Now this is exciting news - I have used PICs in a few projects and really like not only Microchip's amazing selection and a very well done web page for technical support - but they also boast a wonderful online community that has gotten me out of a jam more than once...and the programming tools are easy and intuitive.
Mrdon is right on target with his comment, "Ultimate, the customer has to know the product they are desigining interms of functional requirements in order to make the appropriate mcu choice" in that you have to understand the project so that you select the correct microcontroller for your application, including nuances that you may not think about when you first start out. This series of classes are a great idea!
Thanks for the comments and yes I agree that Microchip has a variety of good PIC MCUs to choose from. I'm currently exploring the PIC18F8680 microcontroller for future training courses and projects. Just wondering if you have tried their MPLABx IDE platform for developing PIC source code?
Hi mrdon - its been awhile since I messed with PICs although that is only because I have been involved in other things...I sure do like 'em! I started out with the old 8751 back in the day and have always had great affection for microcontrollers.
My last PIC project has been awhile - I used a PICkit 2 with the older MPLAB IDE (I would have to go boot up my old lap top to see which version it was) - and programmed in assembly - it worked like a champ. It required PWM which had a great deal to do with my MCU selection - it is onboard the PIC16F616 - very fun project! Hubby designed the hardware and I wrote the software which made it extra special.
I know taimoortariq - call me old-fashioned. Most folks prefer C but I always appreciated the low level control of assembly. When I was a test engineer for a major semiconductor company my software programming language of choice was Testpoint and I was a Certified Testpoint Application Specialist - so I have no objection to mid-higher level languages. Just something about banging bits around in assembly when I'm using microcontrollers is more satisfying :)
I agree. I'm currently teaching my ITT Tech students the 8051 architecture using Assembly language. Your correct, assembly language allows for an indepth analysis of the microcontroller's registers with a view into the binary data that it processes. Also, personally you will have a greater understanding of how high level languages such as "C" can expedite the development of microcontroller based prototypes as well.
Students find using the 8051 quite easy to program. The labs for the curriculum have the code already developed so all the students have to do is build the assembly source code and program the hex file to the micrcontroller. I provide software design challenges to keep them engage as well duing the lab sessions.
You are certainly right. We also in our Undergrad started of with the 8051 controller and shifted to AVR and Arduino later. But we learned alot from the 8051 course, we got to know almost everything that was needed to know about the MCUs and their basic operation. I am sure that the students are learning a lot in your class.
I agree. The students are learning lot about an MCU's architecture by programming and experimenting with an 8051 microcontroller. The transition to other mcus is seamless because most of them have the basic registers, I/O ports, timers, RAM, and ROM circuit blocks like the 8051. I always enjoy teaching this class and students have a great time writing coding and building some really cool devices using the 8051.
I agree, The 8051 is an excellent device to learn how a microcontroller works. To gain a true understanding of microcontrollers, Assembly Language allows students to explore the inner workings of a chip by observing registers, RAM and ROM memory locations quite easily. With the help of Keil uVision 4 IDE, students have access to all of the 8051 internal architectural circuit blocks.
I agree taimoortariq. I myself used to prefer coding in Assembly Language when i was doing small scale projects in University, as this increases the learning and gives you deep knowledge of how things work while you code. But coming into the professional life, i guess one needs to save time by switching to more user friendly languages. It's necessary to start coding from assembly language and then moving forward to C, as only then one can know the overall algorithm happening in the backdrop.
I agree. Universities train Electrical Engineering Students on Assembly Language so the digital circuits they learned can not be integrated into one integrated circuit (microcontroller or microprocessor). The function of these circuits can then be manipulated with Assembly Language which is at a low level of interaction with the device. As you pointed out, new products must be created expediently so they may be in the hands of customers. Therefore, high level languages such as C, C++ expedite the development process so the EE may rapidly build code, test, debug, and ship for production release within a reasonable amount of time.
I agree. PICs are fun to use and there are such an assortment to chose from. I like PICs because of the great documentation provided by Microchip along with an active forum. I'm looking into teaching my high school electronics tech students the wonders of microcontrollers and the PIC will be one of many devices to train them on in the fall.
Good point far911. What people mistake generally is that they over spec their MCU requirement with the fear of failing and believe the hype created my the market which costs them alot. It is very important to have the right knowledge about the requirements of the application along with its corresponding specs on MCUs.
I am currently working with STM 32 and TI HDK kit. Both of the are really good 32 bit architecture MCUs and both utilize ARM architecture. Specially, the compactness of HDK kit is really usefull. You get set up really fast on that and it comes with a Halcogen software which makes coding a whole lot easier with its configuration code.
Sure,here is the Wiki page about the description of the controller http://processors.wiki.ti.com/index.php/RM46_HDK_Kit
It comes with a great user manual and Halcogen software, which can help you setup your code very fast and there are detailed videos on youtube on setting up the peripherals as well. Other than that, It has a vast TI forum, In which people give you continuous tech support on your MCUs.
Thanks for the information. Again, your project sounds interesting. I'll look over the Wiki page you provided. It might be something I can use in a future class discussion for my microcontroller class.
Thanks for sharing Richard. Mostly the focus of everybody is how to work on PIC architectures, and no one really concentrates on choosing the right PIC. This is really a great opportunity for everyone to learn about the selection of PIC depending on the requirement. This will assist us greatly in acquiring the know-how of different architectures available to be selected for our unique implementation.
Danial for an embedded engineer knowing the architecture and coding knowledge is just the part of the whole package. It is essential to know all of the components that are needed for the embedded project. Most of the applications will require you to design an embedded system with best suited components. Like you must know how much RAM your application will take? what best interface will give you the optimal response? whether you want a real time OS or not?
Having Such knowledge will definitely help a lot in professional environment where new projects are coming in everyday.
Exactly taimoortariq. Not only does it help us for the upcoming new projects, but the knowledge itself opens new doors for us. Once we have all the required knowledge of PLCs, we can use the right PLC for our projects and also innovate and design new possibilities for them, covering the defects and drawbacks in the previous versions. In this way you might be able to invent something useful for yourself in particular and the community in general.
Danial,I would also like to mention that it is an iterative process. To be really good at designing an embedded system you have to be constantly in touch with the market. Although to have knowledge of designing the embedded systems is crucial but to keep yourself updated with the new tecnhnology and the latest components is equally important.
Samsung's Galaxy line of smartphones used to fare quite well in the repairability department, but last year's flagship S5 model took a tumble, scoring a meh-inducing 5/10. Will the newly redesigned S6 lead us back into star-studded territory, or will we sink further into the depths of a repairability black hole?
In 2003, the world contained just over 500 million Internet-connected devices. By 2010, this figure had risen to 12.5 billion connected objects, almost six devices per individual with access to the Internet. Now, as we move into 2015, the number of connected 'things' is expected to reach 25 billion, ultimately edging toward 50 billion by the end of the decade.
NASA engineer Brian Trease studied abroad in Japan as a high school student and used to fold fast-food wrappers into cranes using origami techniques he learned in library books. Inspired by this, he began to imagine that origami could be applied to building spacecraft components, particularly solar panels that could one day send solar power from space to be used on earth.
Biomedical engineering is one of the fastest growing engineering fields; from medical devices and pharmaceuticals to more cutting-edge areas like tissue, genetic, and neural engineering, US biomedical engineers (BMEs) boast salaries nearly double the annual mean wage and have faster than average job growth.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.