Elektroda.pl
Elektroda.pl
X
Adex Agregaty
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega328p - zakłócenia na I2C spowodowane przez pompę 12v

tom_ex 04 Sie 2016 10:01 1395 26
  • #1 04 Sie 2016 10:01
    tom_ex
    Poziom 15  

    Witam,

    W skrócie - projekt to sterownik do akwarium. Składa się on między innymi z urządzeń na I2C (lcd, układ rtc) oraz dwóch pomp wody 12v. Pompy zasilane są poprzez mosfet IRF540N.

    Niestety podczas pracy pomp komunikacja z układami I2C jest zakłócona. Na ekranie pojawiają się artefakty, a zegar też nie wydaje się działać poprawnie. Sam uC raczej działa ok.

    Czy da się jakoś w miarę prostym sposobem (nie wprowadzającym dużych zmian do układu) zniwelować zakłócenia.

    Załączam schemat. Elementy, które nie mają znaczenia rozjaśniłem. Pompy to podłączone są do pinów P1 i P2. Nie wykorzystuję PWM.

    Atmega328p - zakłócenia na I2C spowodowane przez pompę 12v

    Dzięki!

    0 26
  • Adex Agregaty
  • #2 04 Sie 2016 10:35
    excray
    Poziom 39  

    Pokaż płytkę drukowaną.

    0
  • #3 04 Sie 2016 10:59
    tom_ex
    Poziom 15  

    excray napisał:
    Pokaż płytkę drukowaną.

    Układ montowany na płytce uniwersalnej. Nie mam teraz możliwości zrobienia zdjęcia. Czemu chcesz ją zobaczyć?

    0
  • #4 04 Sie 2016 11:06
    excray
    Poziom 39  

    Bo chcę zobaczyć jak zrealizowałeś masę dla mosfetów.

    1
  • Adex Agregaty
  • #5 04 Sie 2016 11:08
    tom_ex
    Poziom 15  

    Tego typu zagadnienia nie są mi bliskie. Wszystkie połączenia zrealizowałem poprzez łączenie przewodów.

    Czy mógłbyś nieco naświetlić temat? Jakimi zasadami powinienem się kierować z zakresie mas mosfetów?

    edit:
    Czy dioda wstawiona równolegle z pompą może pomóc? Przy okazji, jak taką diodę się nazywa fachowo? Z angielska jest to snubbing diode.

    0
  • #7 04 Sie 2016 14:14
    Loker
    Poziom 38  

    Silnik szczotkowy z racji zasady działania będzie "siał" zakłóceniami. Możesz spróbować dać równolegle do silnika kondensator ok. 100nF na samych zaciskach silnika.
    Podstawowa sprawa to prowadzenie przewodów propagujących zakłócenia z dala od "czułych" obwodów - czyli masa i zasilanie silników oddzielnie niż masa i zasilanie reszty układu.
    Nie masz kondensatorów odsprzegających na zasilaniu RTC i LCD, ale to już mniejszy problem.

    0
  • #8 04 Sie 2016 22:14
    tom_ex
    Poziom 15  

    Panowie, proszę o dalszą pomoc.

    Niestety masy pomp już bardziej nie mogłem odsunąć. Była poprowadzona niemal wprost z zasilacza. Pomogło wstawienie kondensatora 4.7uF (akurat 100nF mi się skończyły). Z ciekawości alternatywnie zastosowałem diodę schottkiego - problem również zniknął.

    Zauważyłem inny problem. uC ma wgrany prosty program testowy, który ustawia stan wysoki na pinie na 5 sekund, potem niski na ten sam czas. Pompa chodzi przez 5 sekund... a następnie kontynuuje działanie na znacznie wolniejszych obrotach. Napięcie spada do ok. 5V, a mosfet bardzo się grzeje.

    edycja
    Zdaje się, że mosfety są uszkodzone. Podłączyłem do kolejnego, podłączonego w identyczny sposób i problem znikł. Czy możliwe, że te zakłócenia je uszkodziły? Nie działają dokładnie te, które odpowiedzialne były za pompy.

    edycja c.d.
    Mosfety nie dość, że nie podają prawidłowego napięcia, to jeszcze skutecznie zakłócają działanie układu (niepoprawne odczyty z układu rtc).

    0
  • #9 05 Sie 2016 01:22
    2675900
    Użytkownik usunął konto  
  • #10 05 Sie 2016 11:06
    tom_ex
    Poziom 15  

    Dwa transformatory są ewidentnie spalone. Na kolejnym z identyczną konfiguracją problem nie występuje.

    Pytanie tylko, co mogło być powodem uszkodzenia? Zakłócenia same w sobie?

    Źródło prądowe jest w porządku. Spokojnie wytrzymuje jednoczesną pracę dwóch pomp podłączonych poza układem i samego układu.

    Piotrus_999 napisał:
    Nie masz opornków na mosfetach.

    Jaką wartość powinny mieć te oporniki?

    0
  • #11 05 Sie 2016 11:41
    373522
    Użytkownik usunął konto  
  • #12 05 Sie 2016 11:43
    tom_ex
    Poziom 15  

    niveasoft napisał:
    Dodałeś diody tak w ciemno czy robiłeś jakiś research?

    Dałem 1N5818.

    0
  • #14 05 Sie 2016 12:43
    tom_ex
    Poziom 15  

    piotr411 napisał:
    tak się nie projektuje ukladów sterowania silnikami

    Mam nadzieję, że nie wejdziemy w off-top, ale dla laika, który widzi w necie 20 przykładów takiego właśnie sterowania silnikami ciężko jest zauważyć, że tak się nie projektuje takich układów. :) Chociażby po tym wątku widać, że są różne podejścia.

    0
  • #15 05 Sie 2016 13:08
    2675900
    Użytkownik usunął konto  
  • #16 05 Sie 2016 13:38
    tom_ex
    Poziom 15  

    Piotrus_999 napisał:
    Najłatwiejszą metodą jest podłączenie oscyloskopu

    Dzisiaj takowy nabywam. :)

    edycja
    Ok, nabyłem. Trochę sobie przypomniałem ze studiów, trochę tutoriali w necie i podstawy obsługi oscyloskopu mam. Pytanie, jak się zabrać do badania mojego układu. Gdzie się wpiąć?

    Aktualnie udało mi się zebrać poniższe pomiary po podpięciu na wyjściu zasilacza.

    bez dodatkowych zabezpieczeń
    Atmega328p - zakłócenia na I2C spowodowane przez pompę 12v

    z kondensatorem 100nF
    Atmega328p - zakłócenia na I2C spowodowane przez pompę 12v

    z diodą Schottkiego
    Atmega328p - zakłócenia na I2C spowodowane przez pompę 12v

    0
  • #17 05 Sie 2016 22:11
    popiol667
    Poziom 15  

    1.Równolegle do obciążenia mosfetów (silniki) daj diody (szybkie) - katoda zasilanie, anoda dren, jeśli to możliwe bezpośrednio przy silniku. Poszukaj w internecie rozwiązań sterowania elektrozaczepami.

    2. Między bramką a pinem mosfeta daj rezystor rzędu 1k - 5k, ewentualnie popróbuj z rezystorem parę ohm w szeregu z silnikiem - te zabiegi zapobiegną nagłym "uderzeniom" prądowym.

    3. Kondensator na pinie Reset jest?

    4. Oscylator wewnętrzny, czy kwarc?

    5. I na koniec najważniejsze (od tego trzeba zacząć) - przy każdym scalaku lokalnie (fizycznie blisko) daj kondensatory ceramiczne lub jeszcze lepiej polimerowe rzędu 4u7 - 22u

    0
  • #18 05 Sie 2016 22:45
    tom_ex
    Poziom 15  

    popiol667 napisał:
    1.Równolegle do obciążenia mosfetów (silniki) daj diody (szybkie) - katoda zasilanie, anoda dren, jeśli to możliwe bezpośrednio przy silniku. Poszukaj w internecie rozwiązań sterowania elektrozaczepami.

    To próbowałem, ale mam wrażenie - bazując na moich niedużych umiejętnościach posługiwania się oscyloskopem - że minimalnie lepiej sprawdza się kondensator.

    popiol667 napisał:
    2. Między bramką a pinem mosfeta daj rezystor rzędu 1k - 5k, ewentualnie popróbuj z rezystorem parę ohm w szeregu z silnikiem - te zabiegi zapobiegną nagłym "uderzeniom" prądowym.

    Ok, spróbuję.

    popiol667 napisał:
    3. Kondensator na pinie Reset jest?

    4. Oscylator wewnętrzny, czy kwarc?

    5. I na koniec najważniejsze (od tego trzeba zacząć) - przy każdym scalaku lokalnie (fizycznie blisko) daj kondensatory ceramiczne lub jeszcze lepiej polimerowe rzędu 4u7 - 22u

    Wszystko jest, oscylator wewnętrzny.

    0
  • #19 05 Sie 2016 22:57
    2675900
    Użytkownik usunął konto  
  • #20 05 Sie 2016 23:50
    popiol667
    Poziom 15  

    Piotrus_999 - jeśli tranzystor pracuje jako "włącz - wyłącz" raz na kilka sekund czy minut, to przejście przez liniowy zakres pracy i związane z tym wydzielone straty mocy są nieodczuwalne. Przyznam się bez bicia, że nie doczytałem, czy kolega steruje PWM'em ten silnik, czy tylko włącza / wyłącza raz na jakiś czas.

    0
  • #21 05 Sie 2016 23:59
    2675900
    Użytkownik usunął konto  
  • #22 06 Sie 2016 00:15
    popiol667
    Poziom 15  

    Piotrus_999 - point! Przy takim trybie pracy rezystor nie jest potrzebny, bramka rozładuje się przez rezystor / jego brak.

    0
  • #23 06 Sie 2016 10:31
    Piotr Piechota
    Poziom 21  

    popiol667 a jak procesor jest w stanie resetu wyjście są w stanie wysokiej impedancji i na bramce może pojawić się napięcie powodujące częściowe otwarcie tranzystora, które będzie go 'gotować'

    0
  • #24 06 Sie 2016 10:46
    2675900
    Użytkownik usunął konto  
  • #25 06 Sie 2016 16:53
    tom_ex
    Poziom 15  

    O rezystorze pull-down wiem. Uznałem, że nie jest potrzebny, bo chwile załączenie pompy nie będzie groźne. Tak czy inaczej, o ile się nie mylę, to jedynie kwestia bezpieczeństwa załączenia sterowanych urządzeń, a nie pracy samego układu.

    Do sterowania pompą nie wykorzystuję PWM-a, ale to sterowania ledami już tak. :)

    0
  • #26 06 Sie 2016 16:57
    popiol667
    Poziom 15  

    Mam przed sobą fabryczną konstrukcję sterownika do szafek (30 kanałów). Wyżej wymienionych rezystorów brak. Mikrokontroler zasilany jest z 5V. Zaczepy z 12V. Napięcie zasilania (12V) leci szybciej do zera, niż 5V (napięcie utrzymuje się na kondensatorach za stabilizatorem impulsowym. W mojej konstrukcji niezliczoną ilość razy programowałem układ przy podpiętych testowych elektrozaczepach. Nic się nie działo. Dodam, że tranzystory to IRF7301, każda sekcja 10 wyjść zabezpieczona bezpiecznikiem polimerowym 2A. Dopiero zwarcie wyjścia i cykliczne jego załączanie (które powodowało reset całego układu - zadziałało zabezpieczenie w zasilaczu 12V / 5A) przez około kilka sekund powodowało uszkodzenie tranzystora.

    Ale przyznaję rację - rezystor między masą i bramką to dobra praktyka.

    0
  • #27 07 Sie 2016 20:47
    tom_ex
    Poziom 15  

    Panowie, prosiłbym jeszcze o małą pomoc. Chciałbym spróbować opcję z transoptorem, jednak nie korzystałem jeszcze z tego typu układów.

    Rozumiem, że musiałbym go włączyć w układ przed mosfetem, tj. pin uC > transoptor > mosfet, zgadza się?

    Po drugie, muszę zastosować rezystor, aby nie spalić transoptora.

    Rozumiem, że mosfet musi być wtedy z kanałem P. Nie ma opcji zastosowania N-mosfeta?

    0