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

Atmega 128 -logiczne zero-problem

Cersunited 05 Lip 2010 19:04 1777 15
REKLAMA
  • #1 8263483
    Cersunited
    Poziom 16  
    Witam
    Mam następujący problem- mam do zaprogramowania po wykonaniu pierwszych testów mini transponder. O ile transmisja i pomiary działają ok to od paru dni męczę się z głupim problemem. Otóż w układzie tym potwierdzenie wysyłane jest Atmedze 128 stanem niskim poprzez Atmege 8.Problem polega na tym że Atmega 128 nie chce odczytać stanu niskiego z pinu Atmegi 8. Gdy zewrę pin Atmegi 128 do masy to wszystko działa lecz gdy stan ten ustawia Atmega 8 ,Atmega 128 na stan niski nie reaguje. Jak mogę ten problem rozwiązać? Wcześniej Atmega 128 nie chciała też współpracować z popularnym TSOP gdzie wyzwalanie tęż jest stanem niskim. AT128 ma inne progi przełączania z logicznej 1 na 0? Obie zasilane są 5V

    Pozdrawiam
  • REKLAMA
  • #2 8263550
    memek
    Poziom 17  
    A czy zasilanie obu Atmeg jest z tego samego źródła zasilania?
  • REKLAMA
  • #3 8263712
    Cersunited
    Poziom 16  
    tak to samo 5V
  • #4 8263776
    Dexter77
    Poziom 28  
    Moze pin portu M8 nie ustawiasz jako wyjscie?
  • #5 8263867
    Cersunited
    Poziom 16  
    nie nie. od strony programowej jest wszytko ok bo zarówno sczytanie jak i ustawienie zera sie odbywa. Właśnie problem w tym że to takie cyrki tylko z 128 są. Niby błahostka ale już siedzę drugi dzień nad tym
  • #6 8263962
    Dexter77
    Poziom 28  
    W razie czego nie daj sobie nic uciac ;) Czyli zmierzyles miernikiem i faktycznie na tym pinie jest napiecie 0-0,8V ?
  • #7 8264031
    Cersunited
    Poziom 16  
    normalnie jest tam stan wysoki. Podczas ACK na 50ms jest niski. Miernikiem tego sie nie zaobserwuje jednak np gdybyśmy podłączyli diode to mignie(katoda do pinu)Zrobiłem dzielnik prądowy i do masy obniżyłem nap z 5 w stanie wysokim do 3,9 jednak takie rozwiązanie zbyt obciąża zasilacz bo M8 i tak ma źródła prądowe. Nie rozumiem tego to co M128 nie bedzie współpracowała np z bramkami itp? skoro nie reaguje na stan niski i ma inny próg przełączania? spotkał się ktoś kiedyś z tym? Robiłem już na M128 jednak jedyne co odbierała to dane na INT4 chyba jednak był to odbiornik Sony i tam OC dawał równo 0V w aktywnym. A tu prroblem i nie wiem jak rozwiązać

    Dodano po 21 [minuty]:

    sprawdziłem właśnie z 7400 bo tylko taklą posiadałem i też nie działa. Wymuszenie logicznego zera na samym NAND jest ok. Mamy 5V lub 0,1V jednak gdy podam tam pin M128(na q NAND) napięcie jest 2,55V i oczywiście M128 nie klasyfikuje tego jako niski i nie reaguje.Cuda jakieś
  • #8 8264313
    markosik20
    Poziom 33  
    Cersunited napisał:
    Podczas ACK na 50ms jest niski.


    Może Twój program nie jest w stanie takiego impulsu wykryć?
  • REKLAMA
  • #9 8264330
    Cersunited
    Poziom 16  
    nie chodzi o to. Bo gdy przejde na odbieranie ręczne bez ACK to moge ten stan przytrzymać dowolnie długo . A M128 poprostu nie daje sie zewrzeć do masy poprzez M8 ani bramke!!! Nawet jak NAND ma niski to ona nie reaguje a na nóżce NANDa mam 2,.55 V zamiast 0V. A gdy zewrę przewód sam do masy to reaguje
  • #10 8264356
    Dexter77
    Poziom 28  
    A ktory to pin taki oporny?

    No i pokaz kawalek kodu odpowiedzialny za reakcje na ten Twoj stan niski. Z inicjalizacja portu wlacznie (pinu na wejsciowy).
  • REKLAMA
  • #11 8264460
    Cersunited
    Poziom 16  
    Kod napewno jest dobry bo: gdy zamiast połączenia do M8 zastosuje przewód i zewrę ręcznie do masy to działa. Jednak gdy podłącze go obojętnie czy do M8 czy do 7400 to napięcie na pinie M128 nie spada do zera. Chodzi o to że zwieranie poprzez tranzystor w bramce np nie działa. Co do kodu to nawet jak zmienię na test i zrobię tylko DDRB jako wej potem podciągam je do VCC czyli mam na nim 5V. i w pętli czekam na pojawienie się zera-banał. Działa wszędzie tylko nie na 128! Po prostu nie chce dać zewrzeć do masy ,tylko ręcznie. Wiem brzmi absurdalnie ale uwierzcie że sprawdzałem już wszystko. Nawet M8L by zaniżyć progi i też nic. Tylko obciążenie M8 na tyle że zwarcie jej do masy powoduje zero jednak musiałbym stosować R=około 40Ohm co jest nie dopuszczalene ze wzgląd na max I wyj pinów.
  • #12 8264484
    kemot55
    Poziom 31  
    Spróbuj podciągnąć zewnętrznie ten port do VCC przez 10k i wyłącz wewnętrznego PULL-UP'a.M128 jest jednym z lepszych procesorów rodziny AVR i zwykle zachowywał się normalnie bez wykazywania prób siłowych. I jeszcze jedno. Zmierz może prąd jaki płynie z tego pinu przy zwieraniu na sztywno przewodem do masy. Może M128 dostała trochę "po głowie" jakimś przypadkowo oderwanym kabelkiem :-)
  • #13 8264492
    Dexter77
    Poziom 28  
    Przewod o opornosci miliomow to nie pin procesora o wydajnosci rzedu 40mA. Podaj kod bo inaczej nikt Ci nie pomoze. W wielu tematach autorzy sie upierali przy swoim a ujawnienie szczegolow ujawnialo bledy. Zakladamy ze nie uszkodziles jeszcze M8 tymi swoimi zwarciami... Lub M128. Piny GND tez maja swoja wydajnosc pradowa ktora nie moze przekroczyc 200 mA.
  • #14 8264512
    Cersunited
    Poziom 16  
    Oczywiście JTAG i M103 M wył. Udało mi się zewrzeć pierwszy raz ale dopiero za pośrednictwem 7406!Pin musiałem dodatkowo podciągać i zastosować podwójną negację. Zobaczę jak to z M8 zadziała. Jak ktoś ma jakieś pomysły proszę pisac

    Dodano po 1 [godziny] 43 [minuty]:

    Oczywiście że wiem o ograniczeniach i zanim zastosowałem dzielniki policzyłem maksymalne prądy. Kod na pewno jest dobry bo właśnie złożyłem na szybko podwójną negację na dwóch 7406 i działa. Jutro napisze czy działa ostatecznie jak złoże wszystkie kanały jednak prototyp ruszył. Wina softu odpada skoro działa więc skąd takie problemy? Dodam że ten sam kod z M16 i M8 działa(szybko sprawdziłem) Oczywiście ani M128 ani M8 nie uległy uszkodzeniu ponieważ zawsze mam zabezpieczenie prądowe.
    Pozdrawiaqm
  • #15 8266470
    landy13
    Poziom 31  
    Cersunited napisał:
    ...zrobię tylko DDRB jako wej potem podciągam je do VCC...
    kemot55 napisał:
    Spróbuj podciągnąć zewnętrznie ten port do VCC

    Po co podciągać sygnał z wyjścia cyfrowego? To nie przycisk.
  • #16 8266497
    Cersunited
    Poziom 16  
    Podciąganie wewnętrzne starcza w zupełności. Problem rozwiązałem.Tak dla innych użytkowników gdyby też mieli podobny problem z M128. Zastosowałem jako bufory wyjściowe podwójną negację układów 7406. Myślę że ten brak współpracy między M8 a M128 wynika z innych wydajności prądowych poszczególnych portów każdej z Atmeg
REKLAMA