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

Mikrokontroler AVR nie reaguje na polecenia, diody nie działają poprawnie

Jakub17 21 Paź 2016 15:28 1332 10
REKLAMA
  • #1 16009488
    Jakub17
    Poziom 6  
    Witam.

    Problem zdaje się polegać na tym że mój mikrokontroler przestał reagować na polecenia. Poniższy program polega na tym że diody (sterowane minusem z pinu) kolejno zapalają się w te i z powrotem. Poniższy program wcześniej mi działał, ale przestał. Nie wiem czy mogłem coś nieopacznie podłączyć i wyrządziłem jakąś szkodę mikrokontrolerowi? Fusbity chyba są ok, bo nic nie grzebałem w tym temacie, żadnego kwarcu zewnętrzenie też nie podłączałem


    Kod: text
    Zaloguj się, aby zobaczyć kod


    Poza tym mikrokontroler nie reaguje na proste polecenia jak wygaszanie całych portów albo załączanie ich do VCC. Jak mam diody wpięte katodą do pinu a anodą do vcc to jak podaje stan wysoki na piny żeby na katodzie wystąpił potencjał dodani to diody nadal się palą. Sprawdzałem miernikiem i faktycznie jest stan niski... Dzięją się takiego typu rzeczy. Czy to wina uszkodzonego mikrokontrolera czy może programator coś szwankuje z wgrywaniem kodu?
  • REKLAMA
  • #2 16009494
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #3 16010291
    Jakub17
    Poziom 6  
    Włączanie i wyłączanie diody też nie działa. Mówię, że jeżeli chce programowo ustawić port (czy pin portu) na stan niski to mimo że program się wgrał (jakby na to wskazywały komunikaty w konsoli) miernik pokazuje nadal stan wysoki na pinach...

    Wcześniej to miałem tak że jak ustalałem np. stan niski na całym porcie B to kilka pinów faktycznie miało stan niski, a 2 piny tego portu (nie pamiętam które) miały stan wysoki tak więc działa to w cały świat już...

    Dodano po 1 [minuty]:

    Zasilanie układów biorę z programatora. Oczywiście filtracja była zapewniona przez kondensatory 100 nF. Reset podciągnięty do Vcc rezystorem 10k.
  • #4 16010640
    Konto nie istnieje
    Konto nie istnieje  
  • #5 16010661
    Jakub17
    Poziom 6  
    Rezystor 560 om do Vcc następnie anoda diody a katoda do pinu mikrokontrolera. Sterowanie minusem

    Dodano po 7 [minuty]:

    Abstrahuje już od tego programu... Nie działa najprostsze załączenie i wyłączenie pinów (dioda cały czas się pali będąc podłączoną katodą do owego pinu i nie chce zgasnąć)

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Raz przez przypadek ustaliłem stan wysoki na całym porcie, na pinach do których podłączony był programator: MISO, SCK, MOSI itp. Czy to mogło skutkować uszkodzeniem programatora? Czy bardziej prawdopodobne jest że wina leży po stronie programatora czy mikrokontrolera?
  • REKLAMA
  • #6 16010795
    soft.sc
    Poziom 17  
    wgraj na na próbę np. taki program:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    ...

    No dobra. widzę, że kolega autor tematu ma wolne weekendy od forum, ale ponieważ ja mam często wolne tygodnie (od forum oczywiście) wyjaśnię swój zamysł.
    1. wgrać powyższy program:
    jeśli działa... wziąć się za naukę programowania
    (bo np.

    Cytat:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    nie da się wyzerować bitu sumą - trzeba użyć iloczynu.
    Poza tym negacja rejestru portu w którym nie wiesz do końca co się znajduje niekoniecznie zadziała poprawnie

    Cytat:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    )

    jeśli nie działa;
    2. Wgrać program do innego procesora
    jeśli działa wyrzucić poprzedni procesor
    jeśli nie działa wyrzucić programator
  • #7 16011351
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #8 16012840
    Jakub17
    Poziom 6  
    Tak wiem, że trzeba użyć iloczynu. Pisałem po prostu w pośpiechu, przepraszam.
    No niby masz racje z tą negacją portu ale instrukcja znajduje się na samym początku przed pętlą, a przy starcie mikrokontroler domyślnie ma wyzerowane wszystkie porty.

    A wracając do programu: Niestety nie działa. Dioda cały czas się pali zamiast mrugać. Wygląda na to że mikrokontroler jest do śmieci. Wszystkie piny portu A są na zero, sprawdzałem miernikiem z tym że przy pomiarze na PA0 miernik wariuje, podciągnąłem do Vcc i nadal nie ma stabilnego odczytu (na pozostałych pinach było kilka miliwoltów, nawet bez podciągania więc ok). Dodałem jeszcze linijkę kodu żeby ustawić port C na stan niski. Mimo to na pinach: PC2(TCK), PC3(TMS), PC5(TDI) panuje 5V a na pinie PC4(TDO) 1,6 V. Na reszcie pinów jest 0, tak więc widać że połowa portu nie jest prawidłowo wysterowana.

    Żeby było ciekawiej to teraz przy jednej, dwóch próbach wgrania programu (nie koniecznie Twojego) Eclipse wyrzucił mi komunikat że programator nie odpowiada. Kolejne wgrania programu mają succes w Eclipse ale dioda nadal tylko się pali.

    Wygląda na to że i programator i mikrokontroler nie działają poprawnie:/
  • #9 16012917
    krisRaba
    Poziom 31  
    Podane przez Ciebie piny mogą nie być pod Twoją kontrolą dopóki np. masz włączonego w Fusebitach JTAGa...
    Jeśli wcześniej przez przypadek wpisałeś w Fusebitach, że używasz zegara, to dopóki go nie podłączysz do odpowiednich pinów, to będzie z nim problem...
    Ogólnie trochę mało informacji, ktoś już prosił o schemat. Czasami nie powiesz nam rzeczy, która Tobie wydaje się nieistotna, a z punktu widzenia rozwiązania problemu może być kluczowa. Tak jak po czasie np. napisałeś o incydencie z ustawieniem portu, które mogło go usmażyć... ogólnie jest taka opcja, że coś się wtedy uszkodziło i skutki są trudne do przewidzenia.
    Mi kiedyś udało się przez przypadek usmażyć pin w module BT. Całość niby działała, moduł się łączył itp. tylko na niektórych pinach działy się dziwne rzeczy ;)
  • #10 16016783
    dondu
    Moderator na urlopie...
    Jakub17 napisał:
    Wygląda na to że i programator i mikrokontroler nie działają poprawnie:/

    Jak zwykle wina po stronie sprzętu, a nie użytkownika ... ech.

    Załącz:
    - aktualny program,
    - aktualny schemat,
    - zdjęcia całości byśmy mogli sprawdzić,
    - aktualny opis problemu do wyżej załączonych materiałów.

    Nie bez przyczyny proszę o to, bo takie fragmenty Twojego kodu:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    sugerują, że problem leży jednak po Twojej stronie, a nie sprzętu.

    Innymi słowy daj nam pełne materiały byśmy mogli Ci pomóc.
REKLAMA