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

ATMEGA1284 losowo wysypuje się przez zmianę stanu wejścia

lukaszSZ999 07 Lut 2020 00:45 438 7
  • #1 18454556
    lukaszSZ999
    Poziom 11  
    Witam

    Przejdę wprost do sprawy. Do wejścia PD0 mogącym pełnić funkcję wejścia zliczającego licznika T3 mam podłączony czujnik szybkości wiatru na kontaktronie. Program ma m. in. pokazywać na LCD wartość siły wiatru. Niestety praca czujnika wysypuje całe urządzenie, szlaczki na lcd, reset albo piszczenie buzzera. Postanowiłem kompletnie wyciąć fragmenty kodu odnośnie zliczania impulsów, łącznie z konfiguracją timera. Pin Jest ustawiony jedynie jako wejście i pullup do 5V. Pomimo to program się wiesza i trzeba dodać że bardzo nieregularnie. Czasem po kilku a czasem po kilkuset impulsach.

    Obwód wejściowy to rezystor 22k jako pullup i kondensator 100nF. Kontaktron zwiera do masy wprost podłączony do wejścia. Dodam że mam kilka takich samych urządzeń i na wszystkich to samo się dzieje.

    Myślę że wklejanie kodu nie ma sensu bo tak jak mówię nie ma tam ani linijki odnoszącej się do obsługi timera lub wejścia.

    Dodam że urządzenie wykorzystuje także wejścia ICP1 gdzie tu też doprowadzone są impulsy z innego czujnika i nic się złego nie dzieje.

    Co może być przyczyną wieszania dla wejścia PD0?

    Pozdrawiam
  • #2 18454579
    2konrafal1993
    Poziom 38  
    Jaką filtrację ma to urządzenie? Jeśli tylko kondensator 100n to trzeba dodać do tego jakiś kondensator elektrolityczny powiedzmy że 100uF im więcej tym lepiej.
  • #4 18454584
    bart-projects
    Poziom 29  
    Widziałem to na własne oczy i to właśnie w M1284. To chyba wadliwa partia. Miałem klawiaturę czteroprzyciskową i wciśnięcie "Minus" powodowało wysypywanie się programu :D
    Co ciekawe procesory były z TME, a jeszcze ciekawsze to że procesory z firmy MICROS albo z Allegro działały już normalnie :D
  • #5 18454686
    lukaszSZ999
    Poziom 11  
    willyvmm napisał:
    Dodaj rezystory szeregowo z kontaktronem.
    W tej chili masz kieszonkowy generator impulsów em.


    Tak zrobię. ;)

    Dodano po 1 [minuty]:

    bart-projects napisał:
    Widziałem to na własne oczy i to właśnie w M1284. To chyba wadliwa partia. Miałem klawiaturę czteroprzyciskową i wciśnięcie "Minus" powodowało wysypywanie się programu :D
    Co ciekawe procesory były z TME, a jeszcze ciekawsze to że procesory z firmy MICROS albo z Allegro działały już normalnie :D



    Cos w tym jest kolego. Wyprodukowałem już sporo tych urządzeń i jeszcze w zeszłym roku kupowałem po taniości na allegro i nic się nie waliło. Obecnie ze względu na większe ilości biorę z TME i MOUSERa i na nich się te cuda dzieją.
  • #6 18455004
    djfarad02
    Poziom 19  
    Miałem kiedyś przypadek wywalania się ATtiny2313, gdzie do pinu był podłączony mikrostyk równolegle z C=100nF. Pullup w uC włączony (swoją drogą pullupy w uC są za słabe do obłsugi niektórych przełączników - nie zapewniają wymaganego minimalnego prądu styków). Kondensator był dosłownie zaraz przy przycisku (kilka mm). Ścieżka do procesora kilkanaście mm. Wciskanie przycisku wieszało czasami procesor. Wylutowanie kondensatora rozwiązało problem.

    willyvmm zaproponował dodanie rezystora - przychylam się do tego, lecz przeniósłbym też rezystor podciągający. W ten sposób:

    ATMEGA1284 losowo wysypuje się przez zmianę stanu wejścia
  • #8 18456336
    slawko_k
    Poziom 35  
    A po co w takim przypadku ten kondensator? Załączenie kontaktronu powoduje jego zwarcie i pewnie skraca żywot kontaktronu bo iskrzy na stykach a wyłączenie powoduje jego ładowanie ze stałą czasową 100n*22k. W tym czasie napięcie narasta płynnie od 0 do vcc A to pin cyfrowy a nie analogowy (nie chce mi się patrzeć w dokumentacje czy jest tam branka schmitta czy nie). Albo go wywal albo daj rezystor jak radzą wyżej koledzy.
REKLAMA