"Best practice" för drivning av skivspelare?

Planering och tankar kring eventuella framtida projekt.
Användarvisningsbild
gustavn
Inlägg: 297
Blev medlem: 30 november 2004, 12:27:05
Ort: Linköping
Kontakt:

"Best practice" för drivning av skivspelare?

Inlägg av gustavn »

Hej,

Jag går och funderar på hur man bäst bygger drivningen till en skivspelare. Jag tänker mig en rem/gummibands-driven spelare där själva skivan är ca 300 mm i diameter. Drivhjulet på motorn är ca 10-20 mm i diameter.
Skivan ska gå att köra i traditionella 33,3 rpm och 45 rpm. Vilket innebär ett motorvarvtal i storleksordningen 500 - 1000 rpm.
Varvtalet ska både vara jämt och hålla det teoretiskt korrekta varvtalet mycket exakt.

Jag vill att lösningen ska vara enkel och robust. Jag har tänkt ut följande två angreppssätt.

1. Open-loop
- 48 stegs 2-fas stegmotor.
- 1/8 microsteppad för jämn och tyst gång.
- Allegro A4988 stegmotordrivare eller liknande, triggad av en astabil 555-krets.
- Frekvens på 555 trimmas in med 10-varvig trimpot.
- Valbart varvtal genom att man har två olika trimpotar till 555:an som man kan switcha mellan med en vippbrytare.

2. Closed-loop
- PWM:ad DC-motor.
- Reflexdetektor och strobe-matta monterad under den drivna skivan för att mäta varvtalet.
- PIC 12F638 som kollar hastigheten och regelerar PWM-signalen till motorn via en PI-algoritm.
- De valbara varvtalen styrs i mjukvaran genom signal från en vippbrytare.

Någon som har någon kommentar till dessa alternativ? Finns det andra, bättre, möjligheter? Vad är best practice helt enkelt? :)
Användarvisningsbild
tecno
Inlägg: 27039
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: "Best practice" för drivning av skivspelare?

Inlägg av tecno »

#2 alla dar i veckan.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 16773
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: "Best practice" för drivning av skivspelare?

Inlägg av grym »

2 , men med linjärreglering, en dcmotor som man pwm ger störningar som sannolikt plockas upp av pickuppen

man kan faslåsa den relativt enkelt med en 4046
ha en encoder med hög upplöning, och sedan köra relativt hög frekvens på pll så blir det bra reglering
Användarvisningsbild
gustavn
Inlägg: 297
Blev medlem: 30 november 2004, 12:27:05
Ort: Linköping
Kontakt:

Re: "Best practice" för drivning av skivspelare?

Inlägg av gustavn »

tecno skrev:#2 alla dar i veckan.
grym skrev:2 , men med linjärreglering, en dcmotor som man pwm ger störningar som sannolikt plockas upp av pickuppen

man kan faslåsa den relativt enkelt med en 4046
ha en encoder med hög upplöning, och sedan köra relativt hög frekvens på pll så blir det bra reglering
Tack för inputen!

PLL - "Phase-locked loop" var ett nytt koncept för mig men efter lite googling så ser jag nu att detta är precis vad jag letar efter.

Hittade en app note från TI på ämnet http://www.ti.com/lit/an/slua085/slua085.pdf
The precise control of motor speed is a critical function in today’s disc drives. Other data storage equipment, including 9 track tape drives, precision recording equipment, and optical disc systems also require motor speed control. As the storage density requirements increase for these media, so does the precision required in controlling the speed of the media past the read/write mechanism. One of the best methods for achieving speed control of a motor is to employ a phase locked loop.
Nu har jag ännu bara skummat innehållet i dokumentet, men är det rätt uppfattat att metoden förutsätter att man använder en borstlös dc motor/synkronmotor?
Användarvisningsbild
Icecap
Inlägg: 26147
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: "Best practice" för drivning av skivspelare?

Inlägg av Icecap »

Vill du ha precision går en 555 bort!

Det går ganska bra att göra en PLL med en µC och driver man µC'n med ett kristall blir noggrannheten ganska OK.
Användarvisningsbild
gustavn
Inlägg: 297
Blev medlem: 30 november 2004, 12:27:05
Ort: Linköping
Kontakt:

Re: "Best practice" för drivning av skivspelare?

Inlägg av gustavn »

Så rätta mig om jag fel; principen är för PLL med VCO:
4046-kretsen har som input en referens-frekvens och en encoder-frekvens (från skivan i detta fallet). 4046 jämför fasen på de två frekvenserna, om fasen från encodern halkar efter referensen så ökas utspänningen till motorn tills signalerna är i fas igen. Har jag fattat det någorlunda hyffsat?
Icecap skrev:Det går ganska bra att göra en PLL med en µC och driver man µC'n med ett kristall blir noggrannheten ganska OK.
Icecap: Menar du att man kan använda en mikrokontroller för att generera själva referens-frekvensen?
Användarvisningsbild
grym
EF Sponsor
Inlägg: 16773
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: "Best practice" för drivning av skivspelare?

Inlägg av grym »

vilken motor man behöver ha beror på hur man driver den

finns ett sätt till jag skulle kunna tänka mig

att ha en stegmotor eller synkronmotor, sedan driva den med rätt frekvens för att få rätt varvtal
nackdelen är ju då att man om man vill ha det enkelt elektriskt så kan man behöva finjustera utväxlingen mekaniskt
ex svarva drivhjulet på motorn till rätt storlek

med dagens borstlösa motorer finns det ju massor att välja på, och drivningen på ett fast varvtal är om man hamnar rätt på frkvens inte såå svår

finns ju synkrona motorer för 50hz, då kan man göra en konstgjord 50hz som är stabil nog, men nätets 50hz är stabil nuförtiden
Användarvisningsbild
Icecap
Inlägg: 26147
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: "Best practice" för drivning av skivspelare?

Inlägg av Icecap »

gustavn: uppfattningen av funktionen är rätt.

Och ja, det går utmärkt att låta en µC skapa referensfrekvensen så länge man ser till att pulserna passar så att det kan gå "jämt ut" med vilka frekvenser µC'n kan skapa. men väljer man en modern µC (t.ex. någon PIC med inbyggd PLL för kristallen) kan µC'n köra på t.ex. 64MHz och då kan man träffa snart sagt vilken frekvens som helst med mycket litet fel.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: "Best practice" för drivning av skivspelare?

Inlägg av Micke_s »

Varför inte köra #2 och linjärregulator istället för pwm. Då blir du av med massa brus från pwm. Antar att skivspelaren är nätansluten och elda lite effekt gör inget
Användarvisningsbild
gustavn
Inlägg: 297
Blev medlem: 30 november 2004, 12:27:05
Ort: Linköping
Kontakt:

Re: "Best practice" för drivning av skivspelare?

Inlägg av gustavn »

Nu har jag slängt ihop en snabb skiss på hur jag tror man skulle kunna lösa detta med en PLL. Se schema nedan.
pll-dc-motor-skiss.png
Det jag inte riktigt har kommit fram till är hur referens-signalen ska genereras i den färdiga lösningen.
Det känns onödigt att sätta dit en mikrocontroller bara för att genrerera en fyrkantsvåg. Jag har räknat fram att jag behöver 200Hz och 270Hz för 33,3 rpm respektive 45 rpm. Nån som har någon smart/enkel/robust ide?

Lästips för den intresserade: En mycket intressant uppsats/analys av DC-motor styrning med PLL.
http://te.ugm.ac.id/~bsutopo/isnu1.pdf
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Icecap
Inlägg: 26147
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: "Best practice" för drivning av skivspelare?

Inlägg av Icecap »

"Jag har räknat fram att jag behöver 200Hz och 270Hz för 33,3 rpm respektive 45 rpm. Nån som har någon smart/enkel/robust ide?"

Javisst, en kristalloscillator med neddelarkretsar i logikform (blir nog 3-5 kretsar) - eller en µC som gör det hela i en enda krets.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 16773
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: "Best practice" för drivning av skivspelare?

Inlägg av grym »

bara till att börja räkna baklänges och försöka hitta kristaller som passar

sista delningsteget ska vara /2 för att få 50%dute cycle
2 är lätt att dela med, 10 med

3 5 6 7 9 kan man om man delar med 2 efter det , 4040 och 4017
Användarvisningsbild
gustavn
Inlägg: 297
Blev medlem: 30 november 2004, 12:27:05
Ort: Linköping
Kontakt:

Re: "Best practice" för drivning av skivspelare?

Inlägg av gustavn »

Icecap skrev:eller en µC som gör det hela i en enda krets.
Låter helt klart smidigare att köra µC om man annars måste använda flera kretsar föra att uppnå samma sak.

Är det görbart att skapa hela PLL-funktionen i mjukvaran också? Eller är det smidigare/bättre att köra den separata kretsen CD4046 för det? Vad är fördelarna nackdelarna? Finns det skillnader i t.ex precision/noggrannhet?
Användarvisningsbild
Icecap
Inlägg: 26147
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: "Best practice" för drivning av skivspelare?

Inlägg av Icecap »

Har lekt en del med 4046 och den är inte bättre än en µC - men rätt utförd inte heller sämre. Men gör man ett bra program är det ingen vinst i att använda en µC + 4046 kontra "bara" en µC - så varför komplicera i onödan?

Grejen är att det enklaste att bygga är en µC - programmet kan sedan förbättras och trimmas utan att ta fram lödkolven. Många vil kanske påstå att jag bara kan lösa funktioner med µC men sanningen är att det är det enklaste sätt om man kan programmera.

Det som verkligen har betydelse för noggrannheten är pulserna som kommer från tallriken, de ska alltså vara exakt placerat - eller bara en enda per varv. Annars får man sensorjitter. Även det kan man kompensera vid att få två olika pulser från tallriken:
A: X pulser per varv.
B: En puls per varv.

Då kan man låta programmet kalibrera sig själv och kompensera för brist på precision på B-pulserna mha. A-pulsen. När kalibreringen är klar får man dels en snabb feedback på belastningsändringar och dels en hög noggrannhet.

Men programmet blir en aning komplicerat och man ska ha en µC med lite muskler i, mest i form av exekveringshastighet.
Användarvisningsbild
gustavn
Inlägg: 297
Blev medlem: 30 november 2004, 12:27:05
Ort: Linköping
Kontakt:

Re: "Best practice" för drivning av skivspelare?

Inlägg av gustavn »

Tack för tips och råd Icecap! Jag har bestämt mig nu för att köra styrningen helt i mikrokontrollern. Jag har hållit på en del med PIC-µC för några år sedan och har en hel del kretsarna liggande i lådorna så det passar bra.

Hittade denna fullkomligt eminenta sidan för att generera C-kod för att ställa in timern på en PIC mikrokontroller. Räknade snabbt fram att med Timer1 kan jag uppnå 200.00 Hz och 270.04 Hz med 8 MHz oscillatorfrekvens. Så det är ju toppen :)

http://eng-serve.com/pic/pic_timer.html

Har inte helt funderat ut hur jag ska utforma algoritmen för att köra PLL i mjukvaran. Men det löser sig nog när jag börjar labba lite med en test-uppställning.
Skriv svar