Introduction
The study of ARM embedded systems and microcontrollers is closely related, and it is essential to accumulate learning experiences and knowledge during the process of learning microcontrollers.
How can one gradually become a senior embedded engineer in this process? This article will introduce how to accumulate the skills necessary to become a senior embedded systems hardware engineer during the learning process.
Analog
For hardware, there are several directions; purely in terms of signals, they can be divided into digital and analog. Analog is relatively difficult and generally requires a long accumulation of experience. Even a slight inaccuracy in resistance or capacitance can lead to significant signal deviation.
Therefore, young people engage in it less frequently. With the development of technology, analog circuits have been digitized; for example, the RF module of mobile phones uses mature chipsets.
In the past, only two companies in the world had this technology. Those who feel that their analog skills are not strong are not very suitable for this field. If one can truly master the RF module of mobile phones, achieving a general level could lead to a monthly salary of 15K or more.
Digital
The other category is the digital part, which can be broadly divided into 51/ARM microcontroller types, DSP types, and FPGA types. Most FPGA engineers in China work in IC design companies engaged in front-end verification of IP cores. This part does not reach gate-level design, and the future is not very clear. Even as an IC front-end verification engineer, it takes several years to become competent.
The DSP hardware interface is relatively standardized; if one does not lean towards drivers or algorithms, the future will not be very promising.
The content related to ARM microcontrollers is more extensive, with a large market share and a wide application audience, thus the employment space is enormous. The most significant reflection of a hardware designer’s level and standard is in interface design, which is the basis for senior hardware engineers to compete and assess each other’s skills.
Interface
The most critical aspect of interface design is timing, not just simple connections. For example, the PXA255 processor requires an I2C speed of 100Kbps. If an I2C peripheral device cannot reach 100Kbps, connecting it will inevitably lead to design failure.
There are many such situations; for instance, a 51 microcontroller can connect to an LCD on the bus, but why can’t this LCD be connected to an ARM bus? Additionally, an ARM7 bus can connect to a Winband SD card controller, but why can’t this controller connect to an ARM9 or Xscale processor? These are all issues.
Therefore, interfaces are not just simple connections; they must consider timing and parameters.
An excellent hardware engineer should be able to design a product that is superior in cost and performance without a reference solution. Existing solutions should also undergo appropriate feasibility trimming, but not haphazardly.
For example, optimizing the program of a handheld GPS device based on the PXA255 platform, where the map is stored on an SD card, and the SPI interface is used between the SD card and the PXA255’s MMC controller, leading to very slow map reading speeds. This situation is a serious design flaw, not a programming issue.
How to Advance
To become an excellent engineer, one needs to grasp the overall system and understand existing circuits. In other words, if one cannot understand more than 80% of a circuit diagram, it indicates that they are still far from being an excellent engineer.
Secondly, one must have debugging skills and schematic review abilities, but the most fundamental skills are still schematic design and PCB layout, as well as logic design.
This refers to hardware design engineers, from which ECAD engineers can be distinguished, who specialize in PCB design, and EMC design engineers, who help solve EMC issues.
Hardware engineers can advance to board-level test engineers, who are hardware engineers with strong C programming skills. During the debugging process, they can verify hardware functionality through self-written test programs before handing it over to OS-level driver developers.
So, what technical skills are required to advance to a senior hardware engineer?
First, one must master EDA design tools, such as Protel, ORCAD, PowerPCB, Maplux2, ISE, and VHDL language, and be able to use these tools for schematic and board design. Additionally, interface design review skills and debugging abilities are essential. If one can reach the overall solution design level, they are close to becoming a senior engineer.
Conclusion
In summary, the content of hardware is vast and varied. Mastering any aspect of hardware will lead to becoming an expert. There are indeed many unknowns in hardware that even many senior hardware engineers find challenging, but what is essential is to progress through exploration, continuous learning, and practice.
END
1
About the 2021 Autumn Recruitment for Programmers, I have learned these secrets in advance.
2
Linux Application Program Design: Using a clever method to obtain thread stack usage information.
3
Programmers’ Qixi Festival, bringing you a unique romance!
Share it
Like it
View it