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

[Atmega32][C] PWM 20 kanałów sterowanie elektromagnesow

berkoF 28 Wrz 2009 09:48 2484 5
REKLAMA
  • #1 7066115
    berkoF
    Poziom 11  
    Witam,

    Mam następujący problem:
    Potrzebuje zrobić sterownik do urządzenia, w którym muszę wysterować 20 elektromagnesów (Pobierają one ok. 4A. przy 12V). Czas załączania to krótkie impulsy 10-20ms. W danej chwili ma działać tylko jeden elektromagnes. Ograniczenie jest takie, że z mikrokontrolera mam do dyspozycji tylko 6 pinów sterujących + 1 pwm. Reszta to obsługa czujników, LCD i innych peryferiów. Mój pomysł był taki:
    3 de/multipleksery CD4051, przełączanie sygnału 12V i z nich sterować mosfety N, dodatkowo w obwodzie mosfet P sterowany z pwm mikrokontrolera (Rys - na nim tylko 12 tranzystorów, ale to tylko idea)
    Za pomocą wejścia EN wybieram sekcję, którą chce sterować (ST1-ST3), a za pomocą wejść adresowych A,B,C wybieram 1 z 8 wyjść i steruję cewkami.
    Przy załączeniu na te 10-20ms pracuję ze 100% wypełnieniem, a sam PWM potrzebny jest tylko w sytuacji, gdy zachodzi konieczność załączenia cewki na kilka sekund. Częstotliwość PWM jest ok 15kHz.
    Problem jest taki, że gdy wysteruję któreś z wyjść to z jakiegoś powodu załącza się też inny mosfet, czasem nawet 2. Pytanie w czym tkwi błąd? Pojawiał się on także, gdy pwm był odłączony, a pod sygnał PWM_OUT podłączyłem 12V. Po odłączeniu cewek, a podpięciu diod LED jest trochę lepiej, ale też nie działa w 100%. Program testowy był trywialny: włącz tranzystor, poczekaj 1s, włącz kolejny i tak od 1-20.
    Będę wdzięczny za każdą sugestię lub pomysł innego rozwiązania.

    [Atmega32][C] PWM 20 kanałów sterowanie elektromagnesow [Atmega32][C] PWM 20 kanałów sterowanie elektromagnesow
  • REKLAMA
  • #2 7066240
    Loker
    Poziom 39  
    Nie znam się specjalnie na sterowaniu MOSFETów ;) ale problem może tkwić w fakcie, że podczas gdy sterujesz jedną sekcje (jeden 4051) wyjścia pozostałych, a co za tym idzie bramki podłączonych do nich MOSFETów "wiszą" w powietrzu.
  • REKLAMA
  • #3 7066251
    loocasm
    Poziom 15  
    To jedna intrygująca rzecz... A druga.. Zastanawia mnie zasilanie multiplekserów, 12V? Jeśli z procesora idzie 5V jako logiczna 1, to jeśli to CMOS, to przecież nie jest >połowa Vcc...?
  • REKLAMA
  • #4 7066406
    berkoF
    Poziom 11  
    słuszna uwaga, a ja zapomniałem napisać, że z tą różnicą napięć to już też kombinowałem, zrobiłem prosty układ konwersji napięcia z 5V na 12V na tranzystorze bipolarnym (x6 sztuk do każdej linii) i problem dalej był, chociaż poprawa była zauważalna. Pokombinuje jeszcze z tymi "wiszącymi": bramkami. 10k będzie ok? A może zna ktoś jeszcze jakieś inne rozwiązanie (tzn. bez tych cd4051)?
  • REKLAMA
  • #5 7067915
    janbernat
    Poziom 38  
    Bezwzględnie bramki mosfetów nie mogą "wisieć" w powietrzu.
    Zbierają wtedy wszystkie "śmieci"-zwłaszcza z sąsiednich ścieżek- i ustawiają się losowo.
    Przecież bramki to są kondensatory-otwarte z jednej strony.
  • #6 7068172
    berkoF
    Poziom 11  
    Sam rano nie zauważyłem, że zrobiłem już podciągnięcie bramek do masy przez drabinkę 4.7k (na drugim zdjęciu oznaczone jako ResPack). I nie w tym tkwił błąd. Jest to symbol złącza i stąd brak skojarzenia z rezystorami.
    Okazało się, że loocasm miał dobre oko i wypatrzył różnice w poziomach napięć - owszem, jak wcześniej pisałem zrobiłem konwersje z 5 na 12, ale sprawdziłem w układzie pomocniczym (pająku) i okazało się, że zrobiłem to tylko do sygnałów wyboru układu ST1-ST3 (EN). Jakoś uznałem, że adresy mogą zostać na poziomie 5V i tu był błąd:) Układ lutowałem już jakiś czas temu i zupełnie nie zwracałem na to uwagi. Póki co działa jak należy. Jutro podłącze jeszcze PWM, ale widzę, że teraz już powinno hulać.
    Dzięki wszystkim za świeże spojrzenie na sprawę i pomoc.
REKLAMA