logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB

p.kaczmarek2 10 Paź 2022 05:03 3042 3
  • Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Witajcie, dziś krótka ciekawostka - uruchomienie silnika BLDC ze starej stacji dyskietek przy użyciu oryginalnego PCB z tej stacji i Arduino. Zero dodatkowych części, MOSFETów, driverów, zero L293D i innych. Tylko jeszcze kabelki stykowe. Co zatem będzie sterować silnikiem BLDC? Oryginalny układ scalony z płytki - w tym przypadku FAN8422G. Przeczytamy jego notę katalogową i zapewnimy mu odpowiednie sterowanie tak, by silnik znów ożył.

    Wnętrze stacji dyskietek
    Na początek galeria z rozkręcania takiej stacji; nie ma z tym raczej problemów, wystarczy mały śrubokręt, trzeba też czasem podważyć zaczepy.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Oznaczenie mojej stacji: SFD-321B, 5V 0.7A, Samsung.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Jedno wielkie PCB... nie zawsze tam jest, czasem PCB ze sterownikiem BLDC jest osobno.
    FAN8422G. To jest sterownik BLDC który uruchomimy.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    SF12021A. Ten układ usuniemy. To jest ten "mądrzejszy" procesor. Nie mam jego noty katalogowej.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Zdemontujmy jeszcze z ciekawości resztę. Uwolnimy mały silniczek krokowy - ale to na inny dzień.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Możemy też podejrzeć cewki od BLDC. Trzeba odkręcić śrubkę, która jest dość nietypowa - odkręca się ją w drugą stronę.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Oto cewki:
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Budowę BLDC znajdziecie w wielu miejscach w sieci, więc teraz umieszczę tylko kilka fotek z bliska i przechodzimy do uruchamiania:
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB


    FAN8422G nota katalogowa
    Umiejętność czytania not katalogowych jest niezbędna w elektronice. Tutaj robimy rozpoznanie, co trzeba podłączyć.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Pinout; tym razem nie jest niezbędny, bo na PCB mamy podpisane pady - 1MHz, NMTO i tak dalej.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Role pinów - interesują nas inputy, ale nie wszystkie. Niektóre są od sensorów co są już na PCB.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Aplikacja - widać, że 1MHz będzie potrzebne, tak jak oczywiste chip enable (na PCB podpisane NMTO - not motor on?)
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Schemat aplikacji - tu też widzimy, co podłączamy:
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Co ciekawe, ten driver ma wyjście 'index', to pewnie coś przeznaczonego dla samego odczytu dyskietek. Ogólnie, ten układ scalony jest przeznaczony do tego zastosowania, nie jest to raczej sterownik BLDC ogólnego użytku, co wskazuje jego nazwa - "Floppy Disk Drive Spindle Motor Driver".

    Uruchomienie z Arduino
    Zacząłem od odlutowania drugiego układu scalonego w obudowie TQFP - tak dla zasady, by nam nie zakłócał sterowania, gdyż to do niego idą sygnały takie jak uruchomienie silnika czy tam zegar i mógłby on też przy podaniu zasilania próbować nimi sterować, nie wiem.
    Po prostu nałożyłem topnik, potem spoiwo ołowiowe i grzałem z każdej strony. Generalnie to jest słaba metoda dla układów w TQFP (można przegrzać ścieżki, zerwać pady), ale chciałem go po prostu usunąć, więc sobie na to pozwoliłem.

    A jednak odlutował się bez uszkadzania PCB.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Potrzebny będzie zegar 1MHz. Można go wygenerować na samym Arduino poprzez PWM. Pin 3. Oto kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Szczegóły znajdziecie w nocie katalogowej - ale w skrócie ustawiamy to Timer 2 by generował PWM. Uruchamiamy tryb Fast PWM i ustawiamy, że kiedy silnik osiągnie OCR2A to zaczynamy od 0 a gdy osiągnie 7 to zmieniamy jego stan na niski (wróci na stan wysoki przy 0). Dodatkowo nie ustawiamy żadnego preskalowania zegara (zostaje na 16MHz).
    Czyli obrazowo, Arduino liczy: "0, 1, 2, 3 ... " dociera do 7 i wtedy zmienia stan pinu 3 na niski a potem dociera do 15 i zmienia stan pinu na wysoki i od nowa. Czemu akurat do 15? Ano, gdyż taktujemy przez 16MHz.
    W ten sposób możemy uzyskać też 2MHz sygnał, 4MHz, dowolnie na ile nam pozwolą liczniki, też o różnych wypełnieniach (np 25%) itd.
    Rezultat:
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Podłączyłem:
    - masę (oczywiście)
    - VDD (na 5V)
    - 1MHz (omawiane już, na PWM, pin 3)
    - RPM (wybór prędkości; do masy)
    - NMTO (to uruchamia silnik - na pin 13 od migającej LED dla demonstracji; może być zwane też jako CEN)
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    I tyle - silnik włącza się w rytm LED:
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Oraz stała praca:
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB



    Pomiar prędkości obrotowej
    Czy rzeczywiście można przełączać między 300 i 360 RPM? Mam narzędzie, które pozwoli to sprawdzić - DT-2234C - Digital Tachometer:
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Niezbyt lubię to urządzonko. Ciężko się czyta wyniki z jego wyświetlacza gdy pada na niego światło pod kątem (lub gdy patrzymy pod kątem). A po puszczeniu przycisku on momentalnie gasi wyświetlacz i trzeba patrzeć w pamięci co zmierzył. To jest niewygodne.
    Nakleimy odblaskowy fragment paska na obracającym się elemencie i miernik zmierzy jak często odbija on światło lasera.
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Hm, 302RPM (widywałem też 299 i 300, pomiar nie jest idealnie dokładny):
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Po zmianie trybu... 360.2, nieźle!
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Teraz z ciekawości... co jak na wejście 1MHz puścimy 4MHz?
    Czy uda się w jakimś stopniu kontrolować prędkość silnika:
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB
    894RPM! Rzeczywiście są odczuwalnie szybsze obroty, chociaż silnik pracuje poza warunkami przewidzianymi przez producenta.

    Podsumowanie
    Silnik BLDC z FAN8422G ze stacji ruszył na zasadniczo samym Arduino - można było mu kontrolować RPM (w zakresie przewidzianym przez producenta - 300 vs 360 RPM) oraz też nieco w zakresie który nie jest przewidziany (poprzez podanie innej częstotliwości na wejście 1MHz; co można by więcej potestować). Nie było wcale możliwości zmiany kierunku obrotów, co jest z pewnością minusem tego rozwiązania, ale należy pamiętać, że opisany tu sterownik BLDC dostajemy całkowicie za darmo z napędem dyskietek, więc czy można narzekać?
    Przy okazji udało mi się też pokazać wnętrze takiego napędu.
    Czy macie jakieś pomysły jak można by wykorzystać teraz taki silnik/napęd?
    PS: nie omówiłem małego silnika krokowego który też w tym napędzie dyskietek był, to będzie innym razem, pamiętam o tym.

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
  • #2 20229502
    Mlody_Zdolny
    Poziom 30  
    p.kaczmarek2 napisał:
    Teraz z ciekawości... co jak na wejście 1MHz puścimy 4MHz?

    Datasheet mówi o max f = 1.1 MHz, więc możliwe, że dla wyższej częstotliwości driver działa niewłaściwie.

    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB

    Można poeksperymentować z zależnością prędkości silinika od częstotliwości na wejściu i to najlepiej z generatorem płynnie przestrajanym, niekoniecznie na Arduino ale np. prosty generatorek na układzie 74HC132.
  • #3 20230935
    ArturAVS
    Moderator
    Tak w zasadzie do uruchomienia silnika (a nawet całej stacji) nie ma potrzeby demontażu kontrolera, sygnały sterujące to logika TTL;

    Uruchomienie silnika BLDC ze stacji dyskietek z Arduino (oryginalny driver z PCB


    Podając odpowiednie sygnały z Arduino można sterować również napędem głowicy, powstają później tego typu konstrukcje; https://www.youtube.com/watch?v=kCCXRerqaJI, https://www.youtube.com/watch?v=oGfkPCZYfFw, https://www.youtube.com/watch?v=AbyDKLSJ3B8 . W prosty sposób można spiąć trzy napędy do Arduino z wgranym GRBL i po napisaniu "programu" w G-Code sterować.
  • #4 20238088
    p.kaczmarek2
    Moderator Smart Home
    Trochę za duże "toto" by było z całą stacją jak chcemy tylko silnik, ale ogólnie tak, te filmiki z napędami grającymi były popularne już dawno.
    A co do spinania razem napędów, to mam plan na małe DIY CNC lub coś w tym stylu, ale zobaczymy jak wyjdzie. Trochę napędów CD/DVD z silnikami krokowymi już się zgromadziło (nie każdy ma krokowy)
    Pomogłem? Kup mi kawę.
REKLAMA