Ultrasonic motor drive control system based on LPC2124

Publisher:知者如渊Latest update time:2012-08-21 Source: 21ic Keywords:LPC2124 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
Ultrasonic motor is a new type of motor that uses the inverse piezoelectric effect of piezoelectric ceramics to obtain rotational torque. It has the characteristics of small size, compact structure, high power density, no electromagnetic interference, low speed and high torque, fast response, strong self-locking ability, etc. Since ultrasonic motors are essentially different from traditional electromagnetic principle motors in terms of structural principles and operating characteristics, their drive control technology is also very different from traditional motors, which makes the quality of ultrasonic motor drive control technology one of the key factors affecting the performance of ultrasonic motors. According to the structural characteristics and motion mechanism of the traveling wave ultrasonic motor, the design of its drive and control circuit system should meet the following requirements: 1) Provide a specific amplitude (peak-to-peak value 150-1 000 V) of orthogonal sinusoidal drive voltage within the two-phase ultrasonic frequency band (generally 20-100 kHz); 2) Ultrasonic motors have capacitive load characteristics, and matching circuits need to be designed to achieve power matching, filtering and resonant boosting functions; 3) It should have one of the methods of frequency modulation, voltage modulation, phase modulation, etc. or a mixed method for speed control; 4) It should have a closed-loop control function to adapt to the drift of the motor resonant frequency caused by the increase of motor temperature during operation. This article introduces an ultrasonic motor drive control system based on LPC2124, which makes the motor debugging work more convenient and quick, and can realize more complex algorithms.

1 System circuit design
1.1 System solution
The circuit block diagram of this drive control system is shown in Figure 1.

a.JPG


In the system, LPC2124 generates two square waves with a phase difference of 90°. After the two square waves are passed through the NOR gate, they form four square waves with the original two square waves. After the four square waves are isolated, driven, DC-inverted, and resonantly matched, the sinusoidal AC signals required for the operation of the ultrasonic motor are obtained. The fine-tuning resistor is mainly used to adjust the frequency of the output PWM signal during motor debugging, which can shorten the time consumed by motor debugging. The temperature sensor is used to detect the ambient temperature of the motor. In this way, when the requirements for the first start of the motor are high, the system can provide different starting frequencies to the motor according to different ambient temperatures, which is conducive to improving the stability of the motor start. When the concave or convex teeth on the motor rotor face the Hall sensor, the current output by the Hall sensor is different. After circuit processing, the current change is converted into a square wave signal, and the square wave signal is used to detect the motor speed and position. In order to facilitate the debugging of the circuit system and the download of the program, the system sets up JTAG and UART ports. Among them, JTAG is mainly used for debugging, and of course it can also be used for program downloading. The UART port can send various data to the computer host, and can also be used for program downloading and Fl-ash erasing.
1.2 Control chip
The control chip of the ultrasonic motor drive control system is LPC2114, whose core is ARM7TDMI. The LPC2124 processor is a member of the ARM general-purpose 32-bit microprocessor family. LPC2124 uses LQFP64 package, CPU operating voltage 1.8V, internal integrated 256 kB on-chip Flash program storage area, 16 kB static RAM, 4-channel 10-bit ADC, 2 32-bit timers, 6-channel PWM output, two low-power modes, 46 GPIO and 9 external interrupts. In addition, the built-in frequency multiplier phase-locked loop (PLL) can achieve a maximum CPU operation rate of 60 MHz. At the same time, LPC2124 supports on-chip debugging and breakpoints, which is convenient for debugging of system software and hardware.
1.3 Key circuits
1.3.1 Isolation drive, push-pull, and resonant matching circuits
The isolation drive, push-pull, and resonant matching circuits are shown in Figure 2.

b.JPG


LPC2124 generates two square waves PWM-S and PWM-C with a phase difference of 90°. The two square waves are respectively formed into two corresponding anti-phase square waves after passing through the 74HC02D or-not gate, and the four square waves are formed into four square waves with a phase difference of 90°. After the four square waves are amplified by the MAX4427 isolation driver, the four square waves are converted into two AC square wave signals with a phase difference of 90° using a push-pull circuit composed of four MOS tubes (IRFR320) and two middle-tapped transformers. Since the ultrasonic motor requires a sinusoidal AC signal and the ultrasonic motor is a capacitive load, a series inductor is used for resonant matching. [page]

1.3.2 Temperature acquisition module
Since the resonant frequency of the ultrasonic motor is closely related to the motor structure and the working environment of the motor, and temperature is a very important factor. Therefore, a temperature sensor is added to this system to detect the ambient temperature and study the influence of temperature factors on the motor startup. The temperature sensor chip uses the LM75 chip, in which SDA and SDL are connected to the SDA and SDL of LPC2124, and a pull-up resistor is required. LM75 is an I2C interface temperature sensor with a measurement temperature range of -55 to 125°C. LM75 has converted the current temperature into a digital value, which can be directly read and used by LPC2124. LM75 can work normally after power-on, without sending commands to set or initialize the startup. In the circuit system, the A0 to A2 pins of the LM75 chip are grounded, so its slave address is 0X90. When LPC212A adopts the master mode I2C data receiving mode, the address read by the LM75 slave is 0X91. There are 4 registers inside LM75, which are accessed through I2C extended addresses. Their extended addresses are 0X00, 0X01, 0X02, and 0X03. The register address of the temperature value is 0X00, which is a 16-bit read-only register. Its temperature value is only represented by D15 to D7, and the lower 7 bits are invalid. When reading the temperature register, two bytes of data are read continuously without worrying about the automatic increase of the sub-address inside LM75. When D15 is 0, it indicates positive temperature, and when it is 1, it indicates negative temperature. D14 to D7 are 8-bit temperature values, and the least significant bit is equal to 0.5℃. So when the temperature is positive, the temperature T=(D14-D7)/2; when the temperature is negative, it is necessary to take the complement of (D14 to D7), so the temperature T=(-(D14-D7)+1)/2.
1. 3. 3 Speed ​​and position detection module
The speed and position detection circuit is shown in Figure 3. At present, in the research on the speed or position of ultrasonic motors, due to the high accuracy of photoelectric encoders, the method used is to use photoelectric encoders to detect the speed or position. However, if the photoelectric encoder is in a relatively harsh environment such as severe vibration, it is generally unreliable. Therefore, this article uses the Hall sensor ATS642 LSH combined with the concave and convex gears installed on the motor rotor to detect the speed or position. The output of ATS642LSH is a current signal. The output current changes every time the motor rotates through a gear. The typical value of the output current is 14 mA for the high level and 7 mA for the low level. A 100 Ω resistor (R12 in Figure 3) is used to convert the current into a voltage signal. At this time, the high level is 1.4 V and the low level is 0.7 V. By comparing with the reference voltage of 1 V, the voltage signal can be converted into a square wave signal. By connecting the square wave signal to LPC2124, the controller can use the frequency and number of square wave signals to calculate the speed and position of the motor.

c.JPG



2 PWM control
The pulse width modulator of LPC2124 is built on the standard timer dedicated to PWM, and the PWM output is realized through matching registers and some control circuits. The pulse width modulator has a total of 7 matching registers, which can realize 6 single-edge controlled PWM outputs or 3 double-edge controlled PWM outputs, or a mixed output of the two.
Since it is impossible to simultaneously generate four PWM signals with a phase difference of 90°, only two square wave signals are output, and the other two signals are generated by inversion through the NOR gate. After setting the PWM-related control registers of LPC2124 through the PWM240UT function (as shown below), P31 and P33 (PWM2, PWM4) output two square wave signals.
d.JPG
Using the built-in 10-bit successive approximation A/D converter of LPC2124, the fine-tuning resistor is adjusted to change the input voltage value to adjust the output PWM frequency. Since it is a 10-bit A/D, the frequency linear adjustment range is (f, f+1 023δ), where f is the lowest output frequency and δ is the frequency modulation accuracy. f and δ are set to corresponding values ​​according to the motor conditions. In this project, the motor resonant frequency is 33.67 kHz, the minimum frequency f is set to 30 kHz, δ is 10 Hz, and the frequency adjustment range is 30,000 to 40,230 Hz.

[page]


3 Experimental conditions
Adjust the fine-tuning resistor to change the motor operating frequency so that the motor is in the required operating state. Figure 4 is the PWM signal output by LPC2124 with a frequency of 33.82kHz.

e.JPG


After the two square waves are transformed into four, the square wave voltage amplitude is increased to 10 V (power supply is 10 V) by the MOS driver MAX4427, and then the four DC square waves are inverted into AC square waves with a peak-to-peak value of 80 V after passing through a 1:4 tap transformer, as shown in Figure 5. As can be seen from Figure 5, the AC square wave has obvious burrs, and the voltage amplitude is obviously insufficient to drive the motor, so before connecting the motor with a capacitive load, an inductor is connected in series to achieve filtering and resonant boosting. The sinusoidal AC signal after resonance matching is shown in Figure 6.

f.JPG


The square wave signal formed by the speed and position control signals collected by the Hall sensor after being processed by the circuit is shown in Figure 7. The motor rotor used in the experiment has 32 teeth in total. As can be seen from Figure 7, the motor rotates 15 teeth in 500 ms, so the motor speed is about 56 rpm.

g.JPG



4 Conclusion
The built-in pulse width modulator of LPC2124 is used to generate the required PWM signal, replacing the traditional discrete devices, which is conducive to the integration and miniaturization of the drive circuit. Combined with the traditional push-pull circuit, DC inverter and power amplification are realized to drive the ultrasonic motor to work. The appropriate minimum frequency f and frequency modulation accuracy δ are set, and the fine-tuning resistor is adjusted to facilitate the debugging of the motor. The temperature sensor LM75 detects the ambient temperature. The LPC2124 calculates and sets the initial frequency of the motor for the first start according to the ambient temperature value, which can effectively eliminate the frequency drift caused by temperature factors when the motor starts, and improve the reliability and stability of the motor start.

Keywords:LPC2124 Reference address:Ultrasonic motor drive control system based on LPC2124

Previous article:Design of a secondary boot loader based on LPC2000 for code upgrade
Next article:Audio processing solution and circuit description based on LPC2214 and uC/OS-II

Recommended ReadingLatest update time:2024-11-17 01:37

Design of controlling a small LED lamp based on PWM
#include reg52.h #define uint unsigned int #define uchar unsigned char   sbit pwm=P1^0;   uint cycle,high,low; //cycle is the time of one cycle; high is the time of high level; low is the time of low level.   void delay(uint t) { while(t--); }   void main() { cycle=800; while(1) { for(high=1;high =cycle;hig
[Microcontroller]
How to add PWM brightness control to LED constant current driver
introduction Maxim Integrated Products provides PWM (pulse width modulation) brightness adjustment LED (light emitting diode) drivers for many applications . In a typical application, the LED driver is sent instructions through the serial port to change the register value of the corresponding LED for brig
[Power Management]
How to add PWM brightness control to LED constant current driver
STM32F103VCT6 Advanced Timer PWM Output
The following waveform is required : dead time 1us, phase difference between CH1 and CH2 3us, frequency 50HZ. 1. To get TIM1 counter clock at 72MHz, the prescaler is  computer  as follows:           Prescaler = (TIM1CLK / TIM1 counter clock) - 1      To objective is to genterate PWM signal at 50KHz:           -TIM1_
[Microcontroller]
STM32F103VCT6 Advanced Timer PWM Output
51 MCU PWM speed control program
This program is a program that uses a 51 single-chip microcomputer to adjust the speed of a DC motor. Of course, it can also be used to adjust the brightness of an LED light, using timer 2.   #include reg52.h //Include a 52 standard kernel header file #define uchar unsigned char #define uint unsigned int #define ulo
[Microcontroller]
ATmega128 (PWM—time 0)
//Atmega128 timer to achieve fast PWM output example program, timer 0 overflow interrupt method //Output PWM waveform to drive the light-emitting diode, the brightness changes from dark to off, and it is in a flashing state. //The sample value adopts the sine wave formula. The example is as follows. //Sine wave samp
[Microcontroller]
Embedded driver learning PWM buzzer driver
Development Environment Host development environment: Ubuntu 12.04 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 CPU:s3c2440 Development board: TQ2440 Development steps 1. Hardware Analysis The hardware circuit diagram is as follows: In the driver program, first initialize the function of the pin corresponding to
[Microcontroller]
Embedded driver learning PWM buzzer driver
STM32F407 timer four-channel PWM code
/********CYSY_Kiti1013***********/   void TIM4_PWM_Init(u16 arr,u16 psc)//PD12 PD13 PD14 PD15 { RCC- APB1ENR|=1 2; //Enable TIM4 RCC- AHB1ENR|=1 3; //Enable GPIOD GPIO_Set(GPIOD,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);     GPIO_Set(GPIOD,PIN13,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_P
[Microcontroller]
C51 microcontroller adjusts PWM wave through serial port
PWM is a commonly used electronic control technology PWM stands for pulse width modulation, which can be simply understood as the control of duty cycle. The figure below is an example of duty cycle, which is the ratio of high level time to cycle time in a cycle. Some MCUs now have built-in PWM control function,
[Microcontroller]
C51 microcontroller adjusts PWM wave through serial port
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号