Drivare för hårddisks-motor

Relaterade sidor: Nipkow-tv.

När jag pillade isär en gammal hårddisk nyligen, så märkte jag att motorn för hårddisken vara en synkronmotor. Hårddisken var en gammal 40MB hårddisk, modell Conner Peripherals CP-3044. Notera att dom balanserat lagringsskivan genom att använda flera olika sorters skruvar vid monteringen...

För att ta reda på hur den skulle drivas, så mätte jag upp spänningarna till anslutningarna medan hårddisken var igång. Hade varit lätt med ett trekanals oscilloskop, men har i stället mätt två anslutningar i taget och lagt ihop bilderna med GIMP för att se kurvformerna. Färgerna på kablarna till motorn var rött, svart och grönt.

Jag provade också att mäta spänningarna till de FET-transistorer som satt på hårddiskens kretskort. Jag har tänkt löda loss dom transistorerna, och använda dom i den egenbyggda drivkretsen. För varje anslutning till motorn finns det ett komplementärt transistorpar (en N-FET och en P-FET). Eftersom motorn hade tre anslutningar, så behöver man tre identiska drivkretsar. I schemat för en av dom är några mätpunkter utmarkerade:

Bilden nedan visar uppmätta signaler i dom utmarkerade punkterna ovan för ett av de tre komplementära par som driver en av motorns anslutningar. Notera hur mycket störningar som man fått på 0V samt +12V-linjen. Det kan eventuellt ställa till med problem för logikkretsar om man inte avstör sina kopplingar riktigt ordentligt.

Observera följande från vågformen:
1) Vardera transistoren leder exakt en tredjedel av periodtiden
2) P-FET:arna leder då insignalen till gaten är låg
3) De komplementära transistorerna slås på 180 grader ur fas jämfört med varandra
4) Det finns två glapp på 60 grader när ingen av de komplementära transistorerna leder
5) Man kan dela in allt i 60-graders block
6) Periodtiden är c:a 5,66 ms, vilket ger att vågformen repeteras c:a 177 ggr per sekund

Markerat när dom är PÅ eller inte

    0    60  120  180  240  300  360  420  480  520
    |    |    |    |    |    |    |    |    |    |
N1    ON   ON  ...................  ON   ON  .....
P1  ...............  ON   ON  ....................
    |    |    |    |    |    |    |    |    |    |
N2  ..........  ON   ON  ...................  ON  
P2    ON  ...................  ON   ON  ..........
    |    |    |    |    |    |    |    |    |    |
N3  ....................  ON   ON  ...............
P3  .....  ON   ON  ...................  ON   ON  
    |    |    |    |    |    |    |    |    |    |

Och man får då fram den bit-sekvens som behöver matas ut till drivkretsarna (kom ihåg att LÅG till P-FET:arna betyder att den leder.

      N1 P1 N2 P2 N3 P3
 T    1  1  0  0  0  1
 i    1  1  0  1  0  0
 d    0  1  1  1  0  0
 |    0  0  1  1  0  1
\|/   0  0  0  1  1  1
 '    0  1  0  0  1  1

Hela Mönstret ovan repetereades c:a 177 gånger per sekund, vilket betyder att man behöver ändra utdatat c:a 1062 ggr per sekund. Det är trivialt att göra med en microkontroller. För övrigt kändes 18 distinkta lägen när man roterade axeln på motorn ett varv, vilket troligen innebär att den roterar 6 gånger långsammare än man upprepar hela mönstret, dvs kanske 1800 varv per minut.

OBS! Du bygger alltid på egen risk, jag garanterar inte att något fungerar för dig.
Du ansvarar själv för risken att skada dig själv/andra/saker/datorer/eller annat!