Voltage to the hard drive motor. Connecting the HDD motor to the microcontroller. Schematic diagram of connecting the motor to the LB11880 chip

. The topic is certainly interesting, especially for novice radio “tormentors,” but in my opinion it is far from fully covered. Nological conclusion, namely what scheme was used by the much respected, TwIsTeRfor my decision, whether proposed (by my colleague in journalistic work)S anyaav on M/S TDA5145, MK or some other. With this article I want to fill in some of the gaps in the forum and tell you, in my opinion, about an old microcircuit that is quite decent even by modern standardsLB11880. And so let's get started and start with general information, what is an engine from an HDD, CD-ROM, DVD-ROM

Motor that rotates the hard drive spindle (or CD/DVD-ROM) is a synchronous three-phase motor DC.

You can spin up such an engine by connecting it to three half-bridge cascades, which are controlled by a three-phase generator, the frequency of which is very low when turned on, and then gradually increases to the nominal one. This is not best solution task, such a circuit has no feedback and therefore the frequency of the generator will increase in the hope that the engine has time to gain speed, even if in fact its shaft is stationary. Creating a circuit with feedback would require the use of rotor position sensors and several IC housings, not counting the output transistors. CD/DVD-ROM already contain hall sensors, from whose signals you can determine the position of the engine rotor, but sometimes the exact position is not at all important and you don’t want to waste “extra wires”.

Fortunately, the industry produces ready-made single-chip control drivers, which, moreover, do not require rotor position sensors; the motor windings act as such sensors.Control microcircuits for three-phase DC motors that do not require additional sensors (the sensors are the motor windings themselves):TDA 5140; TDA 5141; TDA 5142; TDA 5144; TDA 5145 and of course LB 11880. (There are some others too, but for another time.)

Schematic diagram connecting the motor to the LB11880 chip.

Initially, this microcircuit is designed to control the motor of BVG video recorders; in the key stages it has bipolar transistors and not MOSFETs.In my designs, I used this particular microcircuit; firstly, it was available in the nearest store, and secondly, its cost was lower (although not by much) than that of other microcircuits from the list above.

Actually, the engine switching diagram:

If your motor suddenly has not 3 but 4 outputs, then it should be connected according to the diagram:

And another more visual diagram, adapted for use in a car.

A little additional information about LB11880 and more

An engine connected according to the indicated circuits will accelerate until either the limit on the generation frequency of the VCO microcircuit is reached, which is determined by the ratings of the capacitor connected to pin 27 (the smaller its capacitance, the higher the frequency), or the engine is destroyed mechanically.You should not reduce the capacitance of the capacitor connected to pin 27 too much, as this may make it difficult to start the engine.

How to regulate the rotation speed?

The rotation speed is adjusted by changing the voltage at pin 2 of the microcircuit, respectively: Vpit - maximum speed; 0 - the engine is stopped.

However, it should be noted that it will not be possible to smoothly regulate the frequency simply by using a variable resistor, since the adjustment is not linear and occurs within smaller limits than Vpit - 0, therefore the best option there will be a connection to this pin of a capacitor to which a PWM signal is supplied through a resistor, for example from a microcontroller, or a PWM regulator on the world-famous timerNE555 (there are plenty of such schemes on the internet)

To determine the current rotation speed, you should use pin 8 of the microcircuit, which contains pulses when the motor shaft rotates, 3 pulses per 1 revolution of the shaft.

How to ask maximum current in the windings?

It is known that three-phase DC motors consume significant current outside their operating modes (when their windings are powered by pulses of low frequency).To set the maximum current in this circuit, resistor R1 is used.As soon as the voltage drop across R1 and therefore at pin 20 becomes more than 0.95 volts, the output driver of the microcircuit interrupts the pulse.When choosing the value of R1, keep in mind that for this microcircuit the maximum current is no more than 1.2 amperes, the nominal current is 0.4 amperes.

Parameters of the LB11880 chip

Output stage supply voltage (pin 21): 8 ... 13 volts (maximum 14.5);

Core supply voltage (pin 3): 4 ... 6 volts (maximum 7);

Maximum power dissipated by the microcircuit: 2.8 watts;

Operating temperature range: -20 ... +75 degrees.


This disk (albeit when there were no copper bolts on it yet), a seemingly small and stunted engine from an old 40GB hard drive, designed for 7200 revolutions/min (RPM), managed to accelerate to approximately 15000 ... 17000 revolutions/min, if don't limit its speed. So, I think the scope of application of engines from abandoned hard drives is quite extensive. Of course, you can’t make a sharpener/drill/grinder, don’t even think about it, but without a special load, engines are capable of a lot.

F file archive for self-assembly download

GOOD LUCK!!

Hard drives typically use three-phase brushless motors. The motor windings are connected by a star, that is, we get 3 outputs (3 phases). Some motors have 4 terminals; they additionally have a middle connection point for all windings.

To spin a brushless motor, you need to apply voltage to the windings in the correct order and at certain times, depending on the position of the rotor. To determine the moment of switching, hall sensors are installed on the engine, which act as feedback.

In hard drives, a different method is used to determine the moment of switching; at each moment of time, two windings are connected to the power supply, and on the third, the voltage is measured, based on which the switching is performed. In the 4-wire version, both terminals of the free winding are available for this, and in the case of a motor with 3 terminals, a virtual midpoint is additionally created using star-connected resistors connected in parallel to the motor windings. Since the windings are switched according to the position of the rotor, there is synchronism between the rotor speed and the magnetic field created by the motor windings. Failure to synchronize can lead to rotor stalling.


There are specialized chips such as TDA5140, TDA5141, 42.43 and others, designed to control brushless three-phase motors, but I will not consider them here.

In the general case, the switching diagram represents 3 signals with rectangular pulses, shifted in phase by 120 degrees. In the simplest version, you can start the engine without feedback, simply by feeding it 3 rectangular signals (meander), offset by 120 degrees, which is what I did. During one meander period, the magnetic field created by the windings makes one full revolution around the motor axis. The rotation speed of the rotor depends on the number of magnetic poles on it. If the number of poles is two (one pair of poles), then the rotor will rotate at the same frequency as the magnetic field. In my case, the motor rotor has 8 poles (4 pairs of poles), that is, the rotor rotates 4 times slower than the magnetic field. Most 7200 rpm hard drives should have an 8 pole rotor, but that's just my guess as I haven't tested a bunch of hard drives.


If pulses are applied to the engine at the required frequency, in accordance with the desired rotor speed, it will not spin up. An acceleration procedure is necessary here, that is, we first apply pulses at a low frequency, then gradually increase it to the required frequency. In addition, the acceleration process depends on the load on the shaft.

To start the engine, I used a PIC16F628A microcontroller. The power section contains a three-phase bridge using bipolar transistors, although it is better to use field effect transistors to reduce heat generation. Square pulses are formed in the interrupt handler subroutine. To receive 3 phase-shifted signals, 6 interrupts are performed, and we get one meander period. In the microcontroller program, I implemented a smooth increase in the signal frequency to a given value. A total of 8 modes with different set signal frequencies: 40, 80, 120, 160, 200, 240, 280, 320 Hz. With 8 poles on the rotor, we obtain the following rotation speeds: 10, 20, 30, 40, 50, 60, 70, 80 rpm.


Acceleration starts at 3 Hz for 0.5 seconds, this is the experimental time required for the initial spin-up of the rotor in the appropriate direction, since it happens that the rotor rotates at a small angle in reverse side, only then begins to rotate in the appropriate direction. In this case, the moment of inertia is lost, and if you immediately begin to increase the frequency, desynchronization occurs, the rotor in its rotation simply will not keep up with magnetic field. To change the direction of rotation, you simply need to swap any 2 phases of the motor.

After 0.5 seconds, the signal frequency gradually increases to the specified value. The frequency increases according to a nonlinear law, the rate of increase in frequency increases as acceleration progresses. Rotor acceleration time to specified speeds: 3.8; 7.8; 11.9; 16; 20.2; 26.3; 37.5; 48.2 sec. In general, without feedback, the engine accelerates slowly, the required acceleration time depends on the load on the shaft, I carried out all the experiments without removing the magnetic disk (“damn”), naturally, acceleration can be accelerated without it.

Switching modes is carried out by the SB1 button, while the modes are indicated on LEDs HL1-HL3, information is displayed in binary code, HL3 is the zero bit, HL2 is the first bit, HL1 is the third bit. When all the LEDs are off, we get the number zero, this corresponds to the first mode (40 Hz, 10 rps), if for example the HL1 LED is on, we get the number 4, which corresponds to the fifth mode (200 Hz, 50 rps). Using switch SA1 we start or stop the engine; the closed state of the contacts corresponds to the “Start” command.

The selected speed mode can be written to the EEPROM of the microcontroller; to do this, you need to hold down the SB1 button for 1 second, and all the LEDs will flash, thereby confirming the recording. By default, if there is no entry in EEPROM, the microcontroller goes into the first mode. Thus, by storing the mode in memory and setting the SA1 switch to the “Start” position, you can start the engine simply by supplying power to the device.

The motor's torque is low, which is not required when working in a hard drive. When the load on the shaft increases, desynchronization occurs and the rotor stops. In principle, if necessary, you can attach a speed sensor, and if there is no signal, turn off the power and re-start the engine.

By adding 3 transistors to a three-phase bridge, you can reduce the number of microcontroller control lines to 3, as shown in the diagram below.

The motor that rotates the spindle of a hard drive (or CD/DVD-ROM) is a synchronous three-phase DC motor.
You can spin up such a motor by connecting it to three half-bridge stages, which are controlled by a three-phase generator, the frequency of which is very low when turned on, and then gradually increases to the nominal one. This is not the best solution to the problem, such a circuit has no feedback and therefore the frequency of the generator will increase in the hope that the engine has time to gain speed, even if in fact its shaft is stationary. Creating a feedback circuit would require the use of rotor position sensors and several IC packages, not counting the output transistors. CD/DVD-ROM already contain hall sensors, from whose signals you can determine the position of the engine rotor, but sometimes the exact position is not at all important and you don’t want to waste “extra wires”.
Fortunately, the industry produces ready-made single-chip control drivers, which, moreover, do not require rotor position sensors; the motor windings act as such sensors.

Control microcircuits for three-phase DC motors that do not require additional sensors (the sensors are the motor windings themselves):
LB11880; TDA5140; TDA5141; TDA5142; TDA5144; TDA5145.
There are some others, but for some reason they are not on sale where I was looking, and I don’t like waiting from 2 to 30 weeks for an order.

Schematic diagram of connecting the motor to the LB11880 chip
Initially, this microcircuit is intended to control the motor of BVG video recorders, so it is old, in its key stages bipolar transistors not MOSFETs.
In my designs, I used this particular microcircuit; firstly, it was available in the nearest store, and secondly, its cost was lower than that of other microcircuits from the list above.
Actually, the engine switching diagram:

If your motor has not 3 but 4 terminals, then it should be connected according to the diagram:
A little more information about the LB11880 and more
An engine connected according to the indicated circuits will accelerate until either the limit on the generation frequency of the VCO microcircuit is reached, which is determined by the ratings of the capacitor connected to pin 27 (the smaller its capacitance, the higher the frequency), or the engine is destroyed mechanically.
You should not reduce the capacitance of the capacitor connected to pin 27 too much, as this may make it difficult to start the engine.

How to regulate the rotation speed?
The rotation speed is adjusted by changing the voltage at pin 2 of the microcircuit, respectively: Vpit - maximum speed; 0 - the engine is stopped.
However, it should be noted that it will not be possible to smoothly regulate the frequency simply by using a variable resistor, since the adjustment is not linear and occurs within smaller limits than Vpit - 0, so the best option would be to connect a capacitor to this output to which, through a resistor, for example, from a microcontroller, PWM signal.
To determine the current rotation speed, you should use pin 8 of the microcircuit, which contains pulses when the motor shaft rotates, 3 pulses per 1 revolution of the shaft.

How to set the maximum current in the windings?
It is known that three-phase DC motors consume significant current outside their operating modes (when their windings are powered by pulses of low frequency).
To set the maximum current in this circuit, resistor R1 is used.
As soon as the voltage drop across R1 and therefore at pin 20 becomes more than 0.95 volts, the output driver of the microcircuit interrupts the pulse.
When choosing the value of R1, keep in mind that for this microcircuit the maximum current is no more than 1.2 amperes, the nominal current is 0.4 amperes.

Parameters of the LB11880 chip
Output stage supply voltage (pin 21): 8 ... 13 volts (maximum 14.5);
Core supply voltage (pin 3): 4 ... 6 volts (maximum 7);
Maximum power dissipated by the microcircuit: 2.8 watts;
Operating temperature range: -20 ... +75 degrees.

But actually, why I used the engine from the HDD in conjunction with the specified microcircuit:


This disk (albeit when there were no copper bolts on it yet), a seemingly small and stunted engine from an old Seagate Barracuda hard drive, 40GB, designed for 7200 revolutions/min (RPM) managed to accelerate to 15000 ... 17000 revolutions/min , if I didn't limit his speed. So, I think the scope of application of engines from abandoned hard drives is quite extensive. Of course, you can’t make a sharpener/drill/grinder, don’t even think about it, but without a special load, the engines are capable of a lot, for example, if you use them to rotate a drum with mirrors, for mechanical scanning laser beam etc.

Some time ago I came across a driver circuit stepper motor on the LB11880 chip, but since I didn’t have such a chip, and there were several motors lying around, I put the interesting project of starting the motor on hold. Time passed, and now with the development of China there are no problems with parts, so I ordered an MS and decided to assemble and test the connection of high-speed motors from the HDD. The driver circuit is taken standard:

Motor driver circuit

The following is a short description of the article; read the full article. The motor that rotates the spindle of a hard drive (or CD/DVD-ROM) is a conventional synchronous three-phase DC motor. The industry produces ready-made single-chip control drivers, which, moreover, do not require rotor position sensors, because the motor windings act as such sensors. Three-phase DC motor control chips that do not require additional sensors are TDA5140; TDA5141; TDA5142; TDA5144; TDA5145 and of course LB11880.

An engine connected according to the indicated circuits will accelerate until either the limit on the generation frequency of the VCO microcircuit is reached, which is determined by the ratings of the capacitor connected to pin 27 (the smaller its capacitance, the higher the frequency), or the engine is destroyed mechanically. You should not reduce the capacitance of the capacitor connected to pin 27 too much, as this may make it difficult to start the engine. The rotation speed is adjusted by changing the voltage at pin 2 of the microcircuit, respectively: Vpit - maximum speed; 0 - the engine is stopped. There is also a signet from the author, but I created my own version as a more compact one.

Later, the LB11880 microcircuits I ordered arrived, I soldered them into two ready-made scarves and tested one of them. Everything works great: the speed is regulated by a variable speed variable, it’s difficult to determine the revolutions, but I think it’s up to 10,000 for sure, since the engine hums decently.

In general, a start has been made, I will think about where to apply it. There is an idea to make the same sharpening disk from it as the author’s. And now I tested it on a piece of plastic, made it like a fan, it blows just brutally, although in the photo you can’t even see how it spins.

You can raise the speed above 20,000 by switching the capacitances of capacitor C10 and supplying power to the MS up to 18 V (18.5 V limit). At this voltage my motor whistled completely! Here is a video with 12 volt power:

HDD motor connection video

I also connected the motor from the CD, drove it with a power supply of 18 V, since mine has balls inside, it accelerates so that everything around it jumps! It’s a pity not to track the revolutions, but judging by the sound, it is very high, to the point of a thin whistle. Where to apply such speeds is the question? A mini grinder, a table drill, a sharpening machine come to mind... There are many applications - think for yourself. Collect, test, share your impressions. There are many reviews on the Internet using these engines in interesting homemade structures. I saw a video on the Internet, where Kulibins make pumps, super fans, sharpeners with these motors, I wonder where such speeds can be used, the motor here accelerates over 27,000 rpm. I was with you Igoran.

Discuss the article HOW TO CONNECT A MOTOR FROM A DVD OR HDD

I've had this one collecting dust for a long time small engine, which I uprooted from some hard drive. By the way, the disk from it was also preserved! If I get around to it, I'll screw it on at the next stage. In the meantime, I decided to just try to revive him. This engine is interesting because in theory (as I understood - a person who knew nothing about engines before) it is valve-type. And as Wikipedia tells us: “valve motors are designed to combine best qualities engines AC and DC motors." And due to the absence of sliding electrical contacts (since the brush assembly is replaced there with a contactless semiconductor switch), such motors have high reliability and a long service life. Further, I will not list all the other advantages of these motors and thereby retell Wikipedia , but I’ll just say that the use of such gizmos is quite wide, including in robotics, and therefore I wanted to learn more about the principles of their operation.

The operating principle of the HDD engine.


The motor has three windings connected according to the star principle. The common point of the windings is shown as positive. +5V is perfect for work. The motor is controlled by a PWM signal, which must be supplied to its windings with a phase shift of 120°. However, it is not possible to supply the required frequency to the engine immediately; it must first be overclocked. The simplest way connect three windings through transistors, sending a PWM signal to them from the microcontroller to the base. I’ll immediately make a reservation about transistors: it’s better to take field switches, because it seems like a decent amount of current flows through them, and the bipolar ones get very hot. First I took 2N2222a. They heated up in seconds, I temporarily solved the problem by installing a cooler nearby, but then I decided that I needed something more reliable, that is, larger ☺ As a result, I installed our KT817G. There was no third one, instead I have a KT815G. In this scheme they can be replaced, but KT815 are designed for permanent collector current 1.5 amperes, and KT817 - 3A. I note that 2N2222a is generally up to 0.8A. The letter KT81... also does not matter, since we only have 5 volts. In theory, the signal change frequency is no faster than 1 millisecond, in reality it is even slower, so the high frequency of the transistors does not play a role either. In general, I suspect that in this circuit you can experiment with almost any transistors n-p-n type, with a collector current of at least 1 ampere.

I am attaching the diagram, the resistors were also selected experimentally, for 1 kilo-ohm - they work quite well. I set another 4.7k - that's a lot, the engine stalled.

The motor has 4 terminals. First, let's find out which one is common. To do this, use a multimeter to measure the resistance between all terminals. The resistance between the ends of the windings is twice as great as between the end of one winding and the common midpoint. Conventionally, 4 ohms versus 2. It doesn’t matter which winding is connected where, they still go one after another.

Program text:

// Program to start the hard drive engine
#define P 9100 // Initial delay for engine acceleration
#define x 9 // Pin number to winding x
#define y 10 // Pin number for winding y
#define z 11 // Pin number for winding z
unsigned int p; // Delay variable for overclocking
long time_pass; // Timer
byte i = 0; // Motor phase control cycle counter
void setup()
{
p = P; // Assign the initial delay value for acceleration

//Serial.begin(9600); // Open the COM port for debugging
pinMode(x, OUTPUT); // Set pins that work with the motor to output data
pinMode(y, OUTPUT);
pinMode(z, OUTPUT);
digitalWrite(x, LOW); // Set the initial phase of the motor, you can start from any of the 6 phases
digitalWrite(y, HIGH);
digitalWrite(z, LOW);
time_pass = micros(); // Resetting the timer

void loop()
{

if ((i< 7) && (micros () - time_pass >= p)) // If the counter has a number from 0 to 6, and the phase change waiting time has passed
{
time_pass = micros(); // Reset the timer
if (i == 0) ( digitalWrite (z, HIGH ); ) // Set 0 or 1 depending on the phase number on the desired pin
if (i == 2) ( digitalWrite (y, LOW ); )
if (i == 3) ( digitalWrite (x, HIGH ); )
if (i == 4) ( digitalWrite (z, LOW ); )
if (i == 5) ( digitalWrite (y, HIGH ); )
if (i == 6) ( digitalWrite (x, LOW ); )

I++; // Add the phase counter
}
if (i >= 7) // If the counter is full
{
i = 0; // Reset the counter
if (p > 1350) (p = p - 50;) // If the engine has not yet entered maximum speed- we reduce the time of phase change
//Serial.println(p); Timeout debug
}

What is the result?

The result is an engine that accelerates in a few seconds. Sometimes the acceleration gets unbalanced and the engine stalls, but more often than not everything works. I don’t know how to stabilize it yet. If you stop the engine by hand, it will not start again - you need to restart the program. So far this is the maximum that we have been able to squeeze out of it. When p drops below 1350, the engine spins out of acceleration. 9100 was also selected experimentally at the beginning, you can try changing it and see what happens. The numbers will probably be different for another engine - I had to adjust them for mine. With a load (the original disk), the engine stops starting, so installing anything on it will require calibrating the firmware again. It spins relatively quickly, so I recommend wearing glasses when starting, especially if something is hanging on it at that moment. I hope to continue experimenting with it. That's all for now, good luck everyone!

If you find an error, please select a piece of text and press Ctrl+Enter.