Some suggestions for microcontroller beginners

Publisher:shtlswLatest update time:2014-02-14 Source: dqjsw Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
The importance of single-chip microcomputers has gradually increased in the post-PC era. Now, the most discussed topic among electronic designers and enthusiasts is the design of embedded systems. C51, VHDL, RTOS, CPLD, FPGA, DSP, and ARM are the most popular words among electronic engineers today. Due to the advancement of technology, home intelligence is no longer a castle in the air. The emergence of MCUs with increasingly powerful functions, smaller sizes, and lower costs is the driving force of this revolution. So, as an electronic designer, enthusiast, or a student who is about to become an electronic engineer, what knowledge should we have in order to meet this revolution, or to find a job we like? Faced with so many necessary technologies, as a beginner, where should we start? What is the cost of learning these things well? And so on... Here I will write about the road I have traveled and some personal experiences, hoping to inspire my colleagues.


My major is measurement and control technology, a jack of all trades, I have learned everything, but I am not good at anything. However, after working in development for a few years, I found that my major is still relatively good, or more snobbishly, it is more relevant to the market. To summarize the necessary technologies and skills for electronic design engineers at this stage, I think there are the following points:
1. It is the most basic thing learned in college, including circuits, digital electronics, analog electronics, and of course advanced mathematics and English. I will not emphasize the importance of it, but I have to talk about English, which is a deadly thing. There is no way, because all the technical information now is in English, and the translated knowledge is either outdated or incomprehensible. The degree and speed of mastering a new technology - this is a very important ability, otherwise you can only eat other people's leftovers.
2 is single-chip microcomputer and C language, which are the tools of electronic engineers. You have to learn them. However, when you first start learning, don't be greedy or aim too high. Just do it step by step, do more hands-on work, and pay attention to concepts. Everything is interlinked. It won't take more than a week to switch from C51 to AVR C. When designing specific projects, you just need to choose according to the characteristics of various single-chip microcomputers. I started learning from 8031, pure theory, and even the computer experiments were learned by listening. At that time, C51 was not available. This is the disadvantage of Chinese universities. There is little funding, old equipment, and teachers who only talk but don't practice, which discourages enthusiasm. The real hands-on work started when I started working in the company. I learned PROTEL by myself (this is also necessary, so I don't need to say nonsense), and then used the company's money to draw a board (Japanese money, it's a waste not to use it), and then copied examples from the book. For the specific learning process, please see the special introduction below. The third essential knowledge is CPLD/FPGA design. I personally use it most in structured design. CPLD is very flexible and has many unique uses (due to limited space, I will not introduce it in detail. Please refer to the relevant articles on the website). With the advancement of technology, the price is gradually decreasing. I believe that it will soon be as popular as single-chip microcomputers. The
fourth essential knowledge is embedded operating system, such as KEIL's TINY OS, Ucus, and Ulinux, because you can't be around low-end products all day long. I believe that one day you will use 16-bit and 32-bit single-chip microcomputers. At this time, you can't always use C51 programming ideas. Just imagine the pleasure of using C++ in single-chip microcomputers:)
The fifth is ARM. My energy is limited, so I choose this course. Haha, I won't say more.

I started with 8031. I had some knowledge of microcomputer principles, such as 8086. The school could only teach these outdated but basic things. I also had some knowledge of digital and analog electronics at that time, so I personally think that I got started with microcontrollers relatively quickly. At the beginning, we learned the basic principles and architecture of 51, and later the instruction set. My teacher was an assembly expert, so the things he taught were very detailed, such as how many cycles each instruction executed, the difference between direct addressing and indirect addressing, the difference between ACALL and LCALL, etc. These questions required us to understand them deeply, so beginners need experts (at least veterans) to guide them. It is very difficult to become a master by self-study without any concept. However, after graduating, I found that these things were rarely used, but they were very helpful in deepening my understanding. What I learned in school was mainly to have a concept. When practicing programming, I mainly watched other people's programs. Even when I was on the computer, I just copied other people's programs and compiled them (sometimes the programs were not all correct, and it was not easy to compile them:)). Because the experimental equipment was expensive at that time, Chinese leaders were eager for quick success and did not invest much in general education. So even though I was a professional, I only started to use programmers after I started working. At that time, I only knew that there were programmers that could write HEX files into microcontrollers. There were a few emulators, but they were the teacher's experimental products, with many restrictions, such as P0 and P2 ports could not be used as IO ports, and the EA pin had to be grounded during simulation. It was very annoying, so until now I have been resistant to emulators. In fact, there are also advantages to not having an emulator. Several of my larger projects were completed without an emulator. Learning knowledge by doing is indispensable, especially applied knowledge. It is absolutely impossible without more hands-on practice.
I started to learn MCU after I started working. I learned PROTEL by myself, and then used the company's money to draw the board (I spent 400 yuan, Shenzhen price), and then found a ready-made program to compile and burn into the MCU for verification. However, no one taught you at this time. This is how it is after work. Although the company said that there is training when recruiting, it is limited to specific knowledge. In my first experiment, even the crystal oscillator did not vibrate. Facing the board drawn in the book, everything was correct. I worked for two days, asked many people, jumped a few lines, and finally replaced the 33PF capacitor drawn in the book with a 22PF capacitor. It was OK. Such a simple problem made me feel frustrated. Later, I ran a few more programs according to the book. Few of them were ready to use. It took a lot of time. There was a colleague who joined the company with me. He had no foundation, so he bought a learning development board. In the end, he seemed to learn to get started faster than me. Maybe I am stupid:) But there was a problem when I bought the development learning board. Here are some suggestions for beginners based on the problems I and others have encountered in learning:
1. How much does it cost to learn MCU?
This is a question that everyone is concerned about. Nowadays, you can't do anything without money. The tuition fees of university will make some families fall apart (just kidding). Generally speaking, it is better to start learning MCU from 89C51. It is the most basic, many people learn it, many places ask questions, and there are many pirated things. Learning 51 requires a program compiler. KEIL's C51 is very famous, and pirated versions of version 7.04 have been released. For learning, it's okay to steal once, and this expense is 0. What about the programmer? I think you are lucky. Now there are ISP download microcontrollers, which can download programs online. This is the current technological trend. It can be used for learning and small batch products. 89S51, 52, 53 all support ISP download function, and most AVR microcontrollers also support it. I am most opposed to individuals buying programmers, especially those of unknown brands. You can save as much as possible. For this item, you only need to buy a download cable (you can do it yourself, but it won’t save you money, and it’s a lot of work), 20 yuan. Then there is a DEMO board, which you can do yourself, but even the simplest one costs more than 100 yuan. I am against beginners making their own boards. You can’t afford to waste energy. You want to learn microcontrollers, not PROTEL. Besides, it’s rare for beginners to get the board right in one go. There are many DEMO boards now, and this part is the main place to spend money, ranging from 100 to 700 yuan. The key is to combine your own situation. If you have money, you can also find a tutor, about 1,000 yuan. So I said that it only takes 100 to 2000 yuan to learn MCU. The key is to see how you think.
2. Issues to pay attention to when choosing DEMO board
There are many boards now, with many grades and prices. There are two main points to pay attention to when choosing DEMO board: <1> Function. It is best to adopt modular design for the board. Each module should be separated from the MCU and leave leads. In this way, you can plug in the wires during the experiment, deepen your understanding of the circuit, and leave room for future development. In addition, the pins of the MCU should also be connected, and the function is the same as above. Such a learning board can be used as a development board in the future. There must be an ISP interface. You don’t need the simulation function, but it costs money. After downloading with the ISP interface, its role is really small. Sometimes it is even more difficult to find problems with the simulation function (for debugging methods without the emulator, please see the relevant articles on this site). Don’t just care about the price. Since you are going to buy it, you should care about what you need most. If you don't have money or are an enthusiast, you can choose a board with fewer functions. For professionals, I think it's best to buy a board with all functions at once. You can use it as a development board when you do projects in the future, and you don't have to spend the money for the first board. I think the one with CPLD and multiple CPUs is the most suitable. The more programmable devices there are, the more useful it will be in the future. Don't let the board become useless after you learn it. By the way, you must pay attention to the size of the board. Don't just look at the photos in the introduction. I was fooled once. <2> The most important thing to pay attention to is the help document. This is the key point. You spend money to buy something and hear it boast about many functions. When you come back, you find that the help document is simple and there is nothing to follow the operation. You have to start all over again. Isn't your money wasted? What's worse, the example program you are given is wrong. Then you cry. For beginners, just jump off the building. This is the key point. Because there are many people making DEMO boards now, the profit is low, and many people copy them. Maybe they haven't tried it on the computer themselves. Don't just listen to him saying that there is forum support. That's fake. If there is only forum support, then just go to the forum. Why spend the money? Technical support is also important, but you can't rely on it. Imagine so many people have so many questions, which one should he care about? So the key is to read the document, not how much information there is, but whether it is written by the developer himself, whether he is careful, and whether he can follow the steps above?

Reference address:Some suggestions for microcontroller beginners

Previous article:Matrix keyboard scanning principle
Next article:Testing Method of RAM in Single Chip Microcomputer System

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号