Ogłoszenie

Collapse
No announcement yet.

Atmega32u4/Atmega328 Regulowana przetwornica dc typu buck step-down.

Collapse
X
 
  • Filtr
  • Czas
  • Pokaż
Clear All
new posts

    Atmega32u4/Atmega328 Regulowana przetwornica dc typu buck step-down.

    Witajcie, tym razem trochę nie o audio, ale też elektronika.
    Od miesiąca po godzinach szukam informacji jak dobrze zrobić kontroler obrotów pomp i wentylatorów DC na silnikach bezszczotkowych o dużej mocy(2-3A) oparty o Atmege.
    Czemu Atmega? Chciałbym móc sterować kontrolerem z poziomu Windows po USB, jest tania i gotowa na allegro / ebay w formie arduino.

    W ciągu miesiąca zbieram wiedzę co chcę i jak wykonać, z kontroli stabilizatorem, napięciem PWM, czy filtracją RC/LC tego napięcia PWM dotarłem już pod drzwi przetwornic typu buck step-down i myślę, że to będzie najlepszy wybór.

    Nie wiem tylko:
    1. Czy budować przetwornicę opartą na Atmedze i z niej wykorzystać sygnał PWM do sterowania kluczem...
    2. Czy na jakimś dedykowanym scalaku przetwornicy jak LM2596 (i podobne) ewentualnie jakoś na timerze ne555 i tymi scalakami sterować jakimś sygnałem z Atmegi...
    3. Coś innego lepszego?

    Zależy mi na płynnej regulacji napięcia na wyjściu np w 20 krokach (co 5 w zakresie 5-12V. Napięcie wejściowe z zasilacza ATX - trochę większe niż 12V.
    Nie musi być to dokładne napięcie, nie musi być idealnie stabilne pod dużym obciążeniem, wystarczy procentowa wartość Vin.

    Niestety atmega na wyjściu ma trochę małą częstotliwość PWM i kolejnym pomysłem oderwanym od poprzednich jest zbudować właśnie jakiś timer jak NE555 o częstotliwości np 150kHz, ale by wypełnienie miał takie samo jak podane z Atmegi - tego w ogóle nie wiem jak zrobić, czego można by wykorzystać oraz czy by to działało i czy takie coś istnieje (coś jak zwiększacz częstotliwości o tym samym wypełnieniu w czasie).

    Niestety w sieci nie znalazłem nic co mogło by przypominać oraz odpowiadać na moje pytania.
    Może macie inne propozycje? Czy to w ogóle będzie działać czy potrzebuję może jeszcze sygnał feedback?

    //swój temat prowadzę także na elektrodzie:
    //http://www.elektroda.pl/rtvforum/vie...50224#12950224

    Pozdrawiam i proszę o porady.

    #2
    Zamieszczone przez morozaw Zobacz posta
    1. Czy budować przetwornicę opartą na Atmedze i z niej wykorzystać sygnał PWM do sterowania kluczem...
    To raczej jest najprostszy i najszybszy sposób osiągnięcia zadania a jako, że sam klucz będzie albo w pełni otwarty albo w pełni zamknięty to straty będą minimalne na nim.

    Za kluczem jakiś RC jako low-pass filter (lub nie, w końcu to silnik z cewką) i fajrant.

    Zamieszczone przez morozaw Zobacz posta
    Niestety atmega na wyjściu ma trochę małą częstotliwość PWM i kolejnym pomysłem oderwanym od poprzednich jest zbudować właśnie jakiś timer jak NE555 o częstotliwości np 150kHz
    To ją podkręć - standardowo Atmega chodzi na 1 MHz wewn. oscylatorze ale także może na 8 MHz (zmieniając fusebity) ale i 16 MHz z zewn. kwarcem.

    Skomentuj


      #3
      Zamieszczone przez morozaw Zobacz posta
      Od miesiąca po godzinach szukam informacji jak dobrze zrobić kontroler obrotów pomp i wentylatorów DC na silnikach bezszczotkowych o dużej mocy(2-3A) oparty o Atmege.
      Gdybys napisal silnik DC to wtedy wystarczy jeden mosfet i sterowanie PWM o czestotliwosci ok 1khz. Ale jesli chodzi o bezszczotkowe silniki DC to zapomnij!! To juz wyzsza szkola jazdy, bo do tego sa specjalne mostki z mosfetow i dosc trudne sterowanie a z tego co piszesz to jestes kompletmnym amatorem. Chyba najprosciej byloby kupic "regulator" modelarski i procem sterowac nim (specjalny sygnal).

      Skomentuj


        #4
        .3lite
        Chciałbym to oprzeć na czymś takim:

        Podmieniając attiny na wyjście z atmegi i delikatnie zmieniając pewnie wartości filtra.

        Niestety nie wiem jak to jest z tą częstotliwością i ile bez problemu mogę wyciągnąć.

        Irku, odnośnie silnika DC to wiem jak zrobić, trochę już poszukałem :)
        O mnie się nie martw, bardziej o tych, którzy mi proponowali takie sterowanie jak piszesz, ale do silnika BLDC

        Myślę, że dam sobie radę, to tylko 4 elementy na krzyż.
        Może nie aż tak wielkim amatorem, możliwe, że sam nie zaprojektuję sobie od całkowitego zera, ale czuję się na siłach wykonać zbierając wiadomości z sieci :)

        PS możesz podrzucić linka do jakiegoś z tych regulatorów modelarskich i jakiś pomysł jak nim sterować - tak tylko z czystej ciekawości.

        Skomentuj


          #5
          Może być (rozumiem też, że wiesz jak on działa) ale taki układ też możesz zrobić sam na praktycznie dowolnych tranzystorach.

          Atmega ma PWM na timerze 1 i o ile dobrze pamiętam to dosyć łatwo można to ustawić: porty PWM (Atmega8 ma OC1A i OC1B) na wyjście (lub jeden z nich, ile potrzebnych) i teraz zakładając, że Atmega jest taktowana z szybkością 1 MHz to ICR1 = 399 da nam PWM 2.5 kHz (1 MHz / (399 + 1) = 2.5 kHz) a wypełnienie jest w OCR1A i OCR1B (od 0 do wartości ICR1 czyli w naszym wypadku gdy ICR1 ma 399 a OCR1A damy na 200 to wypełnienie będzie 50 i włączenie FAST PWM:

          TCCR1A |= 1 << COM1A1; // bit od włączenia PWM na 0C1A pinie
          TCCR1A |= 1 << COM1B1; // bit od włączenia PWM na 0C1B pinie
          TCCR1A |= 1 << WGM11; // razem z poniższymi ustawia FAST PWM i górną granicę liczenia (ICR1)

          TCCR1B |= 1 << WGM13 | 1 << WGM12; // Fast PWM, top: ICR1, update of OCR1x: BOTTOM, TOP
          TCCR1B |= 1 << CS10; // źródło zegara dla timera i prescaling: clkI/O/1 (No prescaling)

          Dlaczego 399 a nie 400? A no dlatego:


          TOP ustawiliśmy na ICR1 a prescaler na 1 i fclk to taktowanie procesora.

          Następna sprawa to rozdzielczość samego PWM (najszybsze taktowanie jakie możesz osiągnąć z danych zegarem) :
          Last edited by .3lite; 14.11.2013, 20:44.

          Skomentuj


            #6
            Dzięki 3lite za opracowanie, ale wstyd się przyznać, nie do końca rozumiem to.
            Wiem, że częstotliwość jest uzależniona od zegara bazowego, prescalera oraz ICR1, ale nie miałem nigdy wcześniej z tym nic wspólnego i się gubię w tym, nie wiem jak dobrać odpowiednie wartości, by uzyskać max co potrafi Atmega oraz nie tracąc rozdzielczości itp. SeerKaza wspominał coś o 180kHz, ktoś inny z innego forum o "lajtowym" 1MHz. Jak dobrać tą najlepszą oraz jakie skutki niesie ze sobą jej zwiększenie?

            Trochę za bardzo zawiłe jest to wszystko z tymi zegarami, ale czy mogę Cię poprosić o wskazanie max prędkości PWM dla Arduino Nano 3 z Atmegą 328, ewentualnie Atmegą 32u4 na pokładzie. Oba korzystają z zewnętrznego kwarca 16MHz.

            Jaki tryb wybrać do przetwornicy? Fast PWM czy Phase Correct PWM? Potrzebuję minimum 4 wyjścia PWM, ewentualnie jeśli to możliwe pozostałe 2 także wykorzystać jeśli to w niczym nie przeszkadza.
            Potrzebuję znać częstotliwość, by móc policzyć wartości L i C.

            Nie wiem czy zaglądałeś do wątku na elektrodzie, ale tam bardzo namawiali mnie by porzucić Atmegę, że ona się do tego w ogóle nie nadaje - co o tym myślisz?
            Mimo wszystko jednak chciałbym to oprzeć na Atmedze zamiast innych, dużo bardziej skomplikowanych i droższych procków.
            Mam wrażenie, że Atmega da sobie w zupełności radę.

            Znajomy jarux z forum PCLab już dziś przetestował ten układ, mówił, że przetworniczka działa, ale trzeba policzyć odpowiednie wartości LC i dobrać częstotliwość.
            Powiedział też, że wraz ze wzrostem częstotliwości zawężało mu się pole do manewru z napięciem na wyjściu, tylko on to robił na Atmega8.

            Skomentuj


              #7
              Tak, mówimy o FAST-PWM i bodajże jest to 91 strona w datasheet Atmega8.

              To jest dosyć proste o ile pamiętam a dawno temu się w to bawiłem, Atmega taktowana zegarem 1 MHz może wygenerować sygnał PWM o częstotliwości 333 kHz przy rozdzielczości 3 bitów - wypełnienie może być jedynie w zakresie 33% 66% i 100% a to jak wiemy to troszkę za mało dla Ciebie :)
              Atmega taktowana zegarem 16 MHz przy ICR1 na 100 wygeneruje sygnał PWM o częstotliwości 160 kHz przy rozdzielczości 6 bitów co daje już 64 możliwe wartości wypełnienia a nie 3 jak poprzednio.

              Niestety nie patrzyłem w tamten temat ale myślę, że Atmega jak na 8 bitowy procek pokaże jeszcze dużo ale też nie ma co cudów wymagać.

              Skomentuj


                #8
                morozaw przeczytaj dokładnie co Ci napisał irek . Jeżeli jest to 3 fazowy silnik bezszczotkowy to wszystko co robisz i nad czym kombinujesz nie ma najmniejszego sensu bo jesteś w ślepej uliczce. Sterowanie takim śilniczkiem jest strasznie skomolikowane bo trzeba na PWMach wytworzyc 3 sygnały trapezowe przesunięte w fazach o 120 stopni odpowiednio zsynchronizowane z położeniem wału silniczka co jest akurat realizowane o ile się nie mylę poprzez badanie samoindukcji jednego z uzwojeń silnika (bo na raz mogą być załaczone 2 uzwojenia). Ogólnie są gotowce w necie takich regulatorów, schematy , wzory PCB, wsady do procków, ale cena fabryznego w sklepie modelarskim zaczyna się od kilkudziesięciu zł co jest naprawdę dobrą ceną i masz problem rozwiązany .
                Taki regulator modelarski należy wysterować odpowiednim sygnałem co akurat nie jest zbyt trudne. Sygnał jest to impuls o dlugości od 1 do 2 ms (1 minimum, 2 max obroty) powtarzany z czestoliwoscią 50Hz, czyli co 20ms. Steruje się nim tak samo jak serwa modelarskie a pod tym hasłem w necie znajdziesz sporo gotowców. Zresztą sam powinienem mieć gdzieś kody źródłowe układu timerka który sterował takim regulatorem i po zadanym czasie wyłączał silnik.

                Jezeli masz jednak silnik szczotkowy DC to sprawa jest banalna, timer ustawiony na tryb PWM, z procka sygnał na mos-fet jako element wykonawczy (mocy) i jedziesz z koksem na silnik.

                Skomentuj


                  #9
                  Zamieszczone przez Yoshi_80 Zobacz posta
                  Jezeli masz jednak silnik szczotkowy DC to sprawa jest banalna, timer ustawiony na tryb PWM, z procka sygnał na mos-fet jako element wykonawczy (mocy) i jedziesz z koksem na silnik.
                  To jest dobre pytanie w sumie, bo tak piszemy o PWM na Atmedze a dokładnie nie wiadomo jaki kolega ma silnik.

                  Skomentuj


                    #10
                    Dzięki 3lite, dokładnie o to mi chodziło.
                    Yoshi, tak, wiem co do mnie napisał Irek, rozumiem to doskonale, ale przepraszam, nie napisałem tutaj (sam nie wiem czemu), że są to zwykłe silniczki zastosowane w wentylatorach komputerowych i pompach wodnych do chłodzenia wodnego. Posiadają one wtyczkę 3 pin bez dedykowanego 4 pinu dla sygnału PWM.

                    Są to zwykłe odbiorniki, które jak się domyślam trzeba sterować już napięciem liniowym, a nie napięciem w postaci PWM.
                    Posiadają one swoją dedykowaną elektronikę, której napięcie PWM podane na zasilaniu może zaszkodzić, wtedy traci się także możliwość kontroli obrotów RPM oraz jest możliwość piszczenia cewek w wentylatorach - tak w skrócie.

                    Raczej wiem czego szukam i co chcę zbudować. Wybaczcie, nie wiedziałem, że Irek myślał, że chce sterować całkowicie silnikami BLDC czyli każdymi zwojami osobno.
                    Nie, nie, nie, ja chcę po prostu sterować silnikami, które już mają swoją elektronikę, a z tego co wiem jedynym sposobem jest zmiana napięcia przy nich.
                    Podsumowując - są to najzwyklejsze wentylatory komputerowe i pompki wodne do chłodzenia wodnego, które pewnie działają na tej samej zasadzie.

                    Skomentuj


                      #11
                      Potrzebujesz atmegi, filtra dolnoprzepustowego i tranzystora. Tylko ja widzę jedną sprzeczność - skoro ten silnik ma swoją elektronikę po co Ci aż 2-3A do ich wysterowania? Chyba, że ta "elektronika" to kondensator przesuwający fazę. Zrób też zabezpieczenie aby silnik działający jako prądnica nie sfajczył Ci elektroniki.

                      Skomentuj


                        #12
                        damiani, dzięki za odpowiedź, myślałem kiedyś (zanim zacząłem myśleć o przetwornicy buck step down) o filtracji filtrami RC i LC, ale poddałem się ze względu na problem typu:
                        -niskie wypełnienie, a praktycznie już pełne napięcie na wyjściu na wentylator przy dużej wartości kondensatora w filtrze RC - wyczytane z sieci, nie wiem jak w praktyce i ile w tym prawdy.

                        Są to zwykłe wentylatorki komputerowe, czemu 2-3A? Sporo pomp do chłodzenia wodnego ma właśnie taki pobór mocy, przyjmuję też pesymistyczny warunek np 10-15 wentylatorów na 1 kanał.

                        Możesz rozwinąć myśl z tą filtracją?

                        Skomentuj


                          #13
                          Nie musisz dodawać filtra do silnika DC ponieważ jego cewka, że tak się wyrażę - sama jest takim filtrem.

                          Skomentuj


                            #14
                            Zamieszczone przez morozaw Zobacz posta
                            Są to zwykłe odbiorniki, które jak się domyślam trzeba sterować już napięciem liniowym, a nie napięciem w postaci PWM.
                            Posiadają one swoją dedykowaną elektronikę, której napięcie PWM podane na zasilaniu może zaszkodzić, wtedy traci się także możliwość kontroli obrotów RPM oraz jest możliwość piszczenia cewek w wentylatorach - tak w skrócie.
                            Wreszcie!! Tylko slowo domyslam sie nadal powoduje ze ci nic nie pomozemy. Wez silnik podlacz do regulowanego zasilacza laboratoryjnego i daj znac czy zmieniaja sie obroty.


                            Zamieszczone przez .3lite Zobacz posta
                            Nie musisz dodawać filtra do silnika DC ponieważ jego cewka, że tak się wyrażę - sama jest takim filtrem.
                            Jesli to jest zwykly szczotkowy silnik DC to owszem ale jesli silnik bezszczotkowy czyli taki z elektronika to na decyduje o tym jak sie bedzie krecil a nei koniecznie napiecie zasilajace ktoro wplywa wtedy tylko na moment obrotowy. Obroty sa uzaleznione od sterownika a scislej czestotliwosci jego falownika.


                            Zamieszczone przez morozaw Zobacz posta
                            wstyd się przyznać, nie do końca rozumiem to.
                            Modulator pwm to po prostu licznik liczacy do pewnej wartosci ustalonej wartosci ktora decyduje o wypelnieniu. Jesli chcesz miec 256 krokow regulacji (8bitow) To maksymalnie mozesz uzyskac pwm o wartosci = zegar dzielone na 256. Zeby uzyskac 100khz muslabys miec zegar rzedu 25MHZ!! Przy mniejszej rozdzielczosci czestotliwosc moze byc PWM wyzsza. W zaawansowanych procesorach stosowane sa rozne zabiegi ktore umozliwiaja podniesienie rozdzielczosci. PWM o wartosciach kilkuset khz to zadkosc.

                            Skomentuj


                              #15
                              Zamieszczone przez irek Zobacz posta
                              Jesli to jest zwykly szczotkowy silnik DC to owszem ale jesli silnik bezszczotkowy czyli taki z elektronika to na decyduje o tym jak sie bedzie krecil a nei koniecznie napiecie zasilajace ktoro wplywa wtedy tylko na moment obrotowy. Obroty sa uzaleznione od sterownika a scislej czestotliwosci jego falownika.
                              Zamieszczone przez morozaw Zobacz posta
                              Posiadają one swoją dedykowaną elektronikę,
                              Faktycznie ma elektronikę, nie doczytałem :(

                              Skomentuj


                                #16
                                Witajcie po krótkiej przerwie, szukam podpowiedzi dla jakich wartości napięcia i natężenia obliczyć cewkę i kondensator?
                                Jako, że przetwornica ma być regulowana to nie wiem dla jakich wartości policzyć elementy.
                                Z tego co sam zauważyłem to cewka wychodzi największa dla małego obciążenia i napięcia odrobinę niższego niż połowa wejściowego.

                                Jaki wybrać również I ripple do obliczeń, próbowałem 5%, ale bardzo duże wartości cewek wychodziły, jedni doradzają 10%, w innych artykułach do 30% nawet.
                                Co wybrać, by jakoś to działało? Pracować ma ona pod max obciążeniem około 3A, ale pewnie większość czasu będzie pracować z 150mA obciążenia i tu kolejny problem i zagwozdka jak dobrze to wykonać.
                                Jakieś pomysły?

                                Skomentuj


                                  #17
                                  Wartości elementów przetwornicy dobiera sie dla warunków skrajnych. Czyli np masz przetwornicę podwyższającą to bierzesz pod uwagę maksymalny prąd jaki będziesz pobierać i minimalne napięcie zasilania bo wówczas będą to najgorsze warunki pracy i cewka musi być dostatecznie duża aby zgromadzić odpowiedni ładunek.
                                  Ważnym też jest właśnie prąd impulsowy przy doborze cewki. Rzutuje on na to jaką maksymalną rezystancję powinna mieć cewka. Często przy cewkach podają prąd maksymalny np 1A ale w praktyce nie da się na niej zrobić przetwornicy która ten 1A wyciągnie bo zwyczajnie prąd impulsowy jest dużo wyższy. Miałem taki przypadek że musiałem cewkę przewymiarować ok 3 krotnie aby działało. Czyli dopiero cewka w TME "nominowana" na 3A pozwalała na pracę przetwornicy z prądem 1A .

                                  BTW co to za driver przetwornicy ? Czy robisz na atmedze ?

                                  Skomentuj


                                    #18
                                    Witajcie, wybaczcie za to, że temat umarł na kilka miesięcy, chciałbym wszystkim podziękować za rady i pomoc.
                                    Aktywnie studiuję programowanie, miałem sesję i małe problemy ze zdrowiem, niestety projekt zszedł na bok na krótki czas.
                                    Wraca trochę wolnego czasu więc chciałbym także wrócić do tematu.

                                    Przez ten cały czas nie próżnowałem i zbierałem informacje.
                                    Już wiem co chcę zbudować, wybrałem już jak ma to wszystko działać.
                                    Douczyłem się trochę i doczytałem wiele for i artykułów, datascheetów i app notów.

                                    Chciałbym Was zapytać jak najlepiej sterować scalakiem przetwornicy DC-DC czy też LDO poprzez modyfikację sygnału feedback poprzez napięcie odniesienia generowane z uC.
                                    Zdecydowałem się na dedykowany scalak przetwornicy lub LDO, gdyż wiem, że nie zaprojektuje nic lepszego niż producenci układów.

                                    Niestety nie mogę się zdecydować na sposób sterowania tym scalakiem poprzez przetwornicę.
                                    Z najciekawszych schematów znalazłem:





                                    oto linki do źródeł:
                                    http://www.mosaic-industries.com/
                                    http://www.maximintegrated.com/

                                    Proszę Was o porady, może macie własne pomysły, niestety nie mogę od dawna znaleźć nikogo kto jest w stanie doradzić.
                                    Myślę, że powyższych schematów nie muszę opisywać.

                                    Pozdrawiam i życzę wesołych świąt!
                                    Dominik

                                    Skomentuj


                                      #19
                                      Pierwszy i ostatni schemat to w zasadzie to samo, lepszy jest ostatni bo prostszy ale będziesz musiał dobrze dobrać filtr R4-C1 żeby nie było za dużych tętnień bo te się przeniosą na wyjście przetwornicy. W oba przypadki to sumator sygnałów z feedbacku przetwornicy i z mikrokonrolera. Innym rozwiązaniem które można by wziąć pod uwagę to zastosowanie cyfrowego rezystora sterowanego I2C/SPI.

                                      Skomentuj


                                        #20
                                        Dziękuję Yoshi za odpowiedź,
                                        niestety w schemacie maxima mam problem z dobraniem rezystorów - podstawiając napięcia wychodzi mi rezystancja ujemna dla którychś rezystorów dlatego myślę nad innym rozwiązaniem.

                                        Chciałbym uniknąć stosowania rozbudowanych DAC czy też potencjometrów cyfrowych - chciałbym tylko z uC wygenerować napięcie tak jak wspomniałem wcześniej.
                                        Myślę o filtrze drugiego stopnia i buforze.

                                        Rozumiem, że nic lepszego nie znajdę niż to co znalazłem w tej materii?
                                        Ostatnio bardziej skłaniam się nad rozwiązaniem nr1 ze względu dość dobrego opisu i arkusza do obliczania wartości - nie pamiętam tylko czy mogę użyć do tego celu wzmacniacza o pojedynczym napięciu zasilania.
                                        Z tego co się dowiedziałem nie ma możliwości uzyskania napięcia poniżej referencyjnego bez podania na pin feedback napięcia ujemnego - chyba, że się mylę?
                                        Schemat numer 3 to jedyny jaki rozumiem jak działa :(
                                        Dziwi mnie fakt, że w sieci jest tak mało tego - moim zdaniem przecież to świetny sposób na budowę regulowanego zasilacza sterowanego napięciem z uC.
                                        Chciałbym także uniknąć prowadzenia sygnału feedback do uC - w zupełności zadowalają mnie procentowe wartości napięcia, a te można w przybliżeniu sobie obliczyć ze wzoru.
                                        Przetwornica sama powinna sterować "sobą", bez pomocy z zewnątrz.

                                        Poczytam dziś o sumatorach na rezystorach coś więcej, ale jeśli rozwiązanie na wzmacniaczu może być lepsze to nie widzę w tym nic złego. :)

                                        //edit
                                        sterować chciałbym początkowo scalakiem MIC29302WU - później może przetwornicą dc-dc o podobnej budowie

                                        Pozdrawiam
                                        Last edited by morozaw; 20.04.2014, 21:03.

                                        Skomentuj

                                        Czaruję...
                                        X