In the application of single-chip microcomputers, this situation often occurs. When using a single-chip microcomputer to make an electronic clock or a control system that requires clock-based control, you will suddenly find that the time of the originally calibrated electronic clock has become faster or slower.
So, we tried various methods to adjust its timekeeping accuracy, but the final effect was still unsatisfactory, so we had to adjust it manually every once in a while. So, is it possible to make the clock more accurate? Now let's explore as follows:
1. Error Cause Analysis
1. The timing pulse reference of the single-chip microcomputer electronic clock is provided by the frequency of the external crystal oscillator after 12 divisions, and the internal timing and counter are used to realize the timing function. Therefore, the accuracy of the external crystal oscillator frequency directly affects the accuracy of the electronic clock timing.
2. The microcontroller electronic clock uses internal timing, counter overflow to generate an interrupt (12MHz crystal oscillator is generally 50ms) and then multiplies it by the corresponding multiple to achieve the conversion of seconds, minutes and hours. As we all know, it takes 3-8 machine cycles from the timing and counter generating an interrupt request to responding to the interrupt. The data stack in the timing interrupt subroutine and the initial value of the timing and counter also take several machine cycles. In addition, it also takes a certain machine cycle to switch from the interrupt population to the interrupt subroutine. For example:
From the above program, it can be seen that it takes 2+2+2=6 machine cycles to load the lower 8 bits from the interrupt population to the initial value of the timer/counter. Therefore, these 6 machine cycles are generally added to the initial value of the timer/counter during programming. However, it takes several machine cycles (3~8 machine cycles) from the timer/counter overflow interrupt request to the execution of the interrupt. It is difficult to determine the exact value, which is the reason why the electronic clock timing is inaccurate.
2. Solution
1. Use high-precision crystal oscillator solution
Although the use of high-precision crystal oscillators can slightly improve the accuracy of electronic clock timing, the crystal oscillator is not the main factor causing inaccurate timing of electronic clocks, and high-precision crystal oscillators are more expensive, so there is no need to adopt this solution.
2. Dynamic synchronization correction scheme
From the programmer, the dynamic synchronization correction method is used to assign an initial value to the timing counter. The dynamic synchronization correction method is as follows: Since the timing counter will automatically add numbers from 0 after overflow, before assigning a value to the timing counter again, first add the value in the timing counter low position (TLO) and the initial value, and then send it to the timing counter. At this time, the value in the timing counter is the accurate value after dynamic synchronization correction. The specific procedure is as follows:
After adopting this method, I believe the accuracy of the electronic clock has been improved. [page]
3. Automatic adjustment plan
After adopting the synchronous correction scheme, the accuracy of the electronic clock has been greatly improved, but due to the deviation of the crystal frequency and the influence of some other unknown factors (the same circuit board, the same program, after changing a single-chip microcomputer, the running error is different, and the reason is unknown), there will still be accumulated errors over time. For this reason, an automatic adjustment scheme can be adopted. In fact, it is a fault-tolerant technology. The principle of its automatic adjustment is: the time required for the error Is is measured, and then the seconds are adjusted by adding "1" or subtracting "1" every such period of time. For example: the electronic clock is 1 second slower every 50 hours, and its automatic adjustment procedure is as follows:
Here is a complete example:
Conclusion
This method takes time to adjust, but the effect is very good. Through experiments, one adjustment can control the monthly error to about Is. If the number of days required for the error Is is measured again according to this method and a second adjustment is made, the accuracy will be higher.
Previous article:Research on Intelligent Infrared Thermometer
Next article:"Eleven Golden Rules" help you easily design DC/DC power conversion circuits
Recommended ReadingLatest update time:2024-11-16 18:10
- Popular Resources
- Popular amplifiers
- Wireless Sensor Network Technology and Applications (Edited by Mou Si, Yin Hong, and Su Xing)
- Modern Electronic Technology Training Course (Edited by Yao Youfeng)
- Modern arc welding power supply and its control
- Small AC Servo Motor Control Circuit Design (by Masaru Ishijima; translated by Xue Liang and Zhu Jianjun, by Masaru Ishijima, Xue Liang, and Zhu Jianjun)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- What is the development trend of machine vision surface defect detection system?
- What does the MCU REFO pin stabilization time mean? How is it related to the connected capacitor?
- [Project source code] Static address alignment and dynamic address alignment of NIOS II custom IP core
- How to design a suitable power supply
- New uses for old phones (6) - Optimizing file management
- Two Problems in DSP/BIOS Programming
- Lingdongwei MM32 series MDK5 project from 0 to 1
- SD8906A_600aA 1.5MHz Synchronous
- i.MX RT port of openmv
- CLUE badge