Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Atmega i zakłocenia

Robgie 18 Mar 2009 10:43 2895 25
  • #1
    Robgie
    Level 27  
    Witam
    mam układ z atmega 168 na wejściu int1 mam wyzwalanie poprzez zwarcie do masy. Układ jest zamontowany na motocyklu. Wszystko pracuje ok do momentu odpalenia. Kiedy chodzi silnik to przerwanie bardzo często wyzwala się samo. Sam układ elektryczny zbudowany jest tak

    Atmega i zakłocenia

    po dołożeniu tego kondensatora troszkę jest lepiej ale nadal źle. Kondensatory na zasilaniu tez mam. jak to można wyeliminować.Poza tym cały układ chodzi ok
  • #2
    Citek
    Level 22  
    Popraw schemat, bo jest mało wyraźny
  • #4
    wader_669
    Level 28  
    no na tym schemacie praktycznie nic nie ma. Jak stabilizujesz napiecie itd. Po 2 juz jest taki temat.
  • #5
    elektryk2000
    Refrigeration equipment specialist
    Na początek zmniejsz R2 - 10k może być za dużo.
  • #6
    janbernat
    Level 38  
    Ciekawe jak daleko od procesora jest S1.
  • #7
    Robgie
    Level 27  
    Wader669 @Zasilanie mam na 7805 kondensator przed i po nim.Przy samym procku na zasilaniu mam 100nF. Temat tamten ma inny problem , ale fakt nie znalazłem go(tematu oczywiście).

    elektryk2000 @ Musze sprawdzić z tym zmniejszeniem R2 nie pomyślałem o tym.

    janbernat @ do S1 mam ok 0.5 do 0.8 metra.

    ogólnie układ jest na lcd mierzy napięcie itp itd i z niczym nie ma problemów ogólnie stabilnie działa poza tym że właśnie przerwanie wyzwala mi się samo w momencie odpalania lub przegazowania.
  • #8
    elektryk2000
    Refrigeration equipment specialist
    Jeżeli S1 służy jako przycisk a nie do np. zliczania impulsów to sugerowałbym oprócz sprawy sprzętowej lekko znieczulić układ programowo.
  • #9
    Robgie
    Level 27  
    generalnie nie liczy impulsów. To załącza,wyłącza/resetuje licznik czasu jazdy.Nie chodzi o przyspieszenia do 100 :D tylko czas podroży, chcę mieć jednak załączany ręcznie.

    Pisząc znieczulić programowo miałeś na myśli np wydłużenie impulsu tak aby piki itp nie robiły śmieci?
  • #10
    elektryk2000
    Refrigeration equipment specialist
    Ja miałem podobny problem ale INT0 wykorzystałem jako wejście stanu awaryjnego pewnego urządzenia.
    Pracuje to przy napięciu 230V/50Hz a przy awarii pojawia się szereg impulsów z optotranzystora. Bez znieczulenia też zdarzały się przypadkowe przerwania na co nie mogłem sobie absolutnie pozwolić. Zrobiłem tak, że licznik zlicza impulsy z INT0 i po osiągnięciu 40 generuje obsługę awarii. Co 1s jest licznik zerowany.
    W Twoim przypadku trzeba to rozwiązać inaczej (u mnie przerwanie było 1 raz na okres sinusoidy napięcia).
  • #11
    janbernat
    Level 38  
    "do S1 mam ok 0.5 do 0.8 metra."
    A na świecy masz 10-20kV napięcia w impulsie.
    Te przewody do S1 MUSZĄ być skręcone i w ekranie podłączonym z JEDNEJ TYLKO strony do masy(motocykla).
    Przy "fajce" świecy MUSI być sprawny opornik tłumiący.

    Dodano po 4 [minuty]:

    R1 do 470Ohm, C1 do 1uF, zamiast R3 dławik 100uH na początek.
  • #12
    krzemowy
    Level 19  
    janbernat wrote:
    "do S1 mam ok 0.5 do 0.8 metra."
    A na świecy masz 10-20kV napięcia w impulsie.
    Te przewody do S1 MUSZĄ być skręcone i w ekranie podłączonym z JEDNEJ TYLKO strony do masy(motocykla).
    Przy "fajce" świecy MUSI być sprawny opornik tłumiący.

    Dodano po 4 [minuty]:

    R1 do 470Ohm, C1 do 1uF, zamiast R3 dławik 100uH na początek.


    Dołóż napięcia... potrafi sięgnąć 40kV na wyjściu cewki w nietypowych stanach pracy(tyle mniej więcej mi wychodziło z pomiarów które robiłem jak zaczynałem orać temat mikroprocesorowego zapłonu). Jeszcze bym dorzucił odsprzęganie zakłóceń zdolnych zresetować/zawiesić procesor - przy wejściu kabli na płytkę dodaj po jednym kondensatorze ceramicznym dla każdej żyły kabla(nieważne że jedna z tych żył jest podłączona później do masy), a kondensatory podłącz do obudowy(o ile jest metalowa, samą obudowę połącz z masą zewnętrznym przewodem). Jeżeli obudowa nie jest metalowa podepnij kondensatory oddzielną ścieżką bezpośrednio do wejścia masy na płytkę. Tak to się robi w centralkach samochodowych (patrz np. centralki IAW, a także centralki do 1.3JTD, w innych nie grzebałem/nie pamiętam jak jest). Podobnież jak pisali przedpisemcy ;) należy układ znieczulić na krótkie impulsy, zrób eliminację impulsów krótszych niż 100 us. Samo zakłócenie od zapłonu trwa na ogół kilkadziesiąt us i składa się z dość losowych szpilek nierzadko o bardzo dużej amplitudzie więc filtrowanie kondensatorem nie na wiele się zdaje bo po przejściu przez filtr RC taka szpilka owszem ma o wiele, wiele mniejszą amplitudę ale też czas jej trwania się mocno wydłuża(przynajmniej w moim przypadku takie filtrowanie na nic się nie zdawało). Śmiem twierdzić że zdałoby egzamin obcinanie sygnału wejściowego diodami do zakresu 0-VCC i wycinanie impulsów krótszych niż ww. 100 us układzikiem na bramce Schmitta. Jeżeli znajdę czas i będzie zainteresowanie to Ci to ładnie narysuję.
  • #13
    Robgie
    Level 27  
    No wszelkie rozwiazania mile widziane z 2 powodow.
    1 człowiek sie caly czas uczy
    2 mam nadzieje moto poskladac w ten weekend wiec czasu coraz mniej :D
  • #14
    janbernat
    Level 38  
    Od resetu do + daj diodę (najlepiej szybką) równolegle do opornika katodą do +.
    Mniejsze prawdopodobieństwo latch-up.
    I nie zapomnij o kondensatorze od reset do masy.
  • #15
    User removed account
    Level 1  
  • #16
    Robgie
    Level 27  
    C1 jest praktycznie na nogach procka, mam kondensator za R3 do masy.
    Jutro mam zamiar się zabrać za praktyczne sprawdzenie tych pomysłów
  • #17
    janbernat
    Level 38  
    Przepraszam-nie R1 a R2.
    A jak C1 jest na nogach procka
    to czym tłumisz rozwarty S1 oddalony od procka 0.5-0.8m?
  • #18
    Dr_DEAD
    Level 28  
    Słuchaj Atoma, dobrze gada :-).
    Podstawowy błąd to C1, jest nie w tym miejscu co trzeba, podpiął bym go bezpośrednio do INT1 i masy. R1 = R2 = 1k Ohm. Wszystkie 3 elementy ( C1, R1, R2) daj blisko uProcka. Przycisk z przewodem możesz sobie poprowadzić na większe odległości.
  • #19
    User removed account
    Level 1  
  • #20
    Robgie
    Level 27  
    No ja tak właśnie mam. poza wartościami rezystorów.S1 to jest przycisk stanowiący fragment oryginalnej instalacji, nie ma do niego nic więcej podłączone tylko 1 przewód drugim jest masa (kierownica)


    A juz wiem o co chodzi , hmmm faktycznie teraz nie pamiętam jak podpiąłem C1 ale wydaje mi się ze ne nogach procka od spodu płytki przylutowałem. Musze to sprawdzić ale teraz nie mam jak.
  • #21
    Dr_DEAD
    Level 28  
    Robgie wrote:
    No ja tak właśnie mam.

    No co tak właśnie masz???? Bo ja już nie wiem. Masz tak ja na tym pierwszym schemacie czy nie?? Jak nie to wklej nowy schemat, aktualny.
  • #22
    elektryk2000
    Refrigeration equipment specialist
    Robgie wrote:
    No ja tak właśnie mam. poza wartościami rezystorów.S1 to jest przycisk stanowiący fragment oryginalnej instalacji, nie ma do niego nic więcej podłączone tylko 1 przewód drugim jest masa (kierownica)


    Od tego trzeba było zacząć....
  • #23
    janbernat
    Level 38  
    Może atom1477 masz rację z kondensatorem za dławikiem.
    Ale nie jestem pewien.
    Te dwa kable od S1(skręcone!) to bym przewlókł parę razy przez mały pierścień ferrytowy przy procesorze.
    To dobrze tłumi sygnały współbieżne w.cz.
    Kiedyś to stosowano w oscyloskopach.

    Dodano po 3 [minuty]:

    No to można sobie skręcić kierownicę z jednym kablem...
  • #24
    arturt134
    Level 27  
    Nie używaj do odczytu przerwania, tylko zrób skanowanie jak w normalnej klawiaturze. Stan portu odczytujesz ciągle co np. 5ms (wykorzystaj przerwanie timera). Jeżeli 3 odczyty (lub więcej, dobierzesz eksperymentalnie) pod rząd są takie same to oznacza, że odczytałeś jego stan.
  • #25
    Robgie
    Level 27  
    Dzisiaj będą testy jeśli wcześniejsze rady nie pomogą wtedy faktycznie zmiana metody może być potrzebna.
  • #26
    Robgie
    Level 27  
    Ok wiec testy wypadły pozytywnie. Ostatecznie pozostało na 100nF i rezystory po 1k i śmiga.