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

Atmega128 po odłączeniu JTAGa nie działa

Polok 24 Paź 2010 18:08 1958 14
  • #1 8658161
    Polok
    Poziom 13  
    Witam

    Jak w temacie... Piszę program na Atmegę i to co dotychczas napisałem działa, ale ostatnio zorientowałem się, że jak odłączę programator JTAG ICE (tego używam) to Atmega nie działa, tzn. napewno nie działa tak jak powinna. Mam do Atmegi podłączony m.in. wyświetlacz graficzny, pcf8583 i kilka innych rzeczy i dopóki mam podłączony programator (z niego też zasilany jest mój układ, czyli z usb) to mój układ działa jak powinien. Ale jak odłącze programator i zasile układ z zewnętrznego zasilacza to program nie działa. Ale jeśli napisałem prosty programik, który zmienia co 0,5sek stan jednego z portów to działał zarówno jak do układu był podłączony JTAG, ale tak samo jak układ zasilany był z zewnętrznego zasilacza. Oczywiście mała wydajność zasilacza nie wchodzi w grę, bo jest to 5A zasilacz. Przelutowałem również całą płytkę z podejrzeniem zimnych lutów i wąskie ścieżki podlutowałem przewodami, ale nic to nie pomogło i nie mam już pomysłów co może być tego przyczyną, a przecież układ musi działać samodzielnie...

    Proszę o sugestie i pomoc w rozwiązaniu problemu. Może ktoś miał podobne problemy...

    Z góry dziękuję
  • #2 8658414
    MirekCz
    Poziom 35  
    A jakie jest napięcie bez JTAGa? Idealnie gdybyś mógł spojrzeć jak to wygląda na oscyloskopie.

    Sprawdź też sam układ z wyświetlaczem - on będzie brał zdecydowanie najwięcej energii. Może masz ustawione ograniczenie prądowe na zasilaczu?
    Zasil to z innego źródła 5V - np. przetnij kabel USB i wyprowadź z niego 5V.

    PS.Podłączenie 5V przez JTAGa i z zewnętrznego źródła jest tak samo? Może masz tam jakieś dodatkowe komponenty?

    PPS.Może brak kondensatorów? (JTAG może działać jak ma krótki kabel, a z zasilacza idzie długi kabel)
  • #3 8658501
    gaskoin
    Poziom 38  
    Mi też się nasuwa brak filtracji. Zasilanie z komputera jest dość stabilne, natomiast z zasilacza niiekoniecznie. Filtrujesz napięcie zasilania w jakiś sposób ?
  • #4 8662377
    Polok
    Poziom 13  
    Moim zdaniem problem nie będzie leżał po stronie zasilania, a raczej po stronie Atmegi... Po dokładniejszym przetestowaniu sytuacja wygląda następująco:
    1) jeśli zasilam układ z zewnetrznego zasilacza to nie działa. Sprawdzałem jeszcze dla pewności inny zasilacz. Co do samych zasilaczy to obydwa są stabilizowane (jeden z regulowanym napięciem, drugi na sztywno 5V), a w samym układzie mam kondensatory na wejściu zasilania (zarówno elektrolit jak i ceramiki 100n) i dodatkowo kondensatory 100n na wszystkich nóżkach Vcc Atmegi i zasilaniu pcf...
    2) jeżeli układ podłączę tylko przez programator i wgram program to działa
    3) jeżeli układ podłącze przez programator ale nie wgram programu to też nie działa (mimo, że powinien znajdować się w środku i działać, co potwierdza fakt, że czasami po podłączeniu programatora nie wgrywam na nowo programu tylko włączam weryfikację programu znajdującego się w Atmedze i czasem wystarczy, żeby wszystko zaczęło działać)

    Nie mam pojęcia co może być przyczyną takiego zachowania. Wygląda to tak jakby wszystko działało tylko kiedy podłączony jest programator i to jeszcze po ponownym wgraniu/odświeżeniu prograniu. Jedyne co mi przychodzi na myśl to jakiś problem z resetem. W sensie, że układ jest resetowany w jakiś sposób przez jtag w trakcie wgrywania programu (jeśli tak to jak). I od razu pytanie: jak powinna być podłączona nóżka resetu z Atmegi128 ??
    a) powinna wisieć w powietrzu ?
    b) powinna być podciągnięta do Vcc przez rezystor (np. 4k7)
    c) powinna być podciągnięta do vcc przez rezystor i do masy przez kondensator ?

    Generalnie wypróbowałem wszystkie te możliwości, ale opisywanego problemu nie rozwiązały.

    Proszę o dalsze sugestie, bo męcze się z tym już dość długo i nie mogę się z tym uporać. Z góry dziękuję
  • #5 8662467
    tadzik85
    Poziom 38  
    Reset zwyczajowo podciągany 10k do zasilania. Mniejszy R może być za silym podciąganiem dla niektórych programatorów.
  • #6 8662486
    marekos
    Poziom 16  
    Sprawdzałeś taktowanie tej ATMEGI? JTAG nie wymaga do działania taktowania i dlatego działa Ci tylko wtedy jak odświeżysz program.
  • #7 8664056
    Polok
    Poziom 13  
    "tadzik85"
    Zmieniłem rezystor z 4k7 na 10k, ale idąc Twoim tropem to musiałbym mieć problem z programatorem a nie odwrotnie...

    "marekos"
    Jak mam sprawdzić to taktowanie (nie mam oscyloskopu)?? Tzn. co dokładnie masz na myśli ?? Nie mam włączonego żadnego debugera ani nic podobnego. Podłączam układ do kompa przez programator -> wgrywam program do Atmegi -> mój układ działa -> wyłączam na kompie avr studio (bo z niego korzystam do programowania) i mój układ nadal działa, więc w tym momencie programator służy już tylko do zasilenia mojego układu i nic więcej (moim zdaniem oczywiście)

    Dziękuje za zainteresowanie i proszę o dalszą pomoc
  • #8 8664234
    rpal
    Poziom 27  
    Najprędzej masz to co pisze marekos czyli tak ustawileś fusebity że są np. właczone na zewnętrzny zegar a sprawdzisz to przez tools->auto connect i tam masz wszystko jak na dłoni. Najlepiej włącz wewnętrzny oscylator i jak dalej procek będzie milczał szukaj dalej. Poza tym ciekawe jest to co piszesz o zasilaniu bo dotąd sądziłem że to układ zasila JTAG-a a u ciebie jest odwrotnie, JTAG zasila układ. Czy aby napewno ma tak być ?
  • #9 8664457
    tmf
    VIP Zasłużony dla elektroda
    JTAG może też zasilać układ - zwykle mają zworkę w tym celu. Ale czytając powyższe posty zaczynam wątpić czy piszący ma JTAGa, czy zwykłe ISP. Ja bym sprawdził rzecz najbanalniejszą - czy na pinach procka po odłączeniu tego JTAGa jest zasilanie - może procesor jest zasilany tylko z tego gniazda.
  • #10 8664788
    rpal
    Poziom 27  
    widac jtag, jtagowio nie równy, mój na ten przykład nie zasila układu.
  • #11 8664933
    tmf
    VIP Zasłużony dla elektroda
    Pewnie masz JTAG na RS232? Nie masz do niego dodatkowego zasilacza? Te na USB wszystkie mają zworki, bo mogą brać zasilanie z gniazda USB. Swoją droga może po prostu tą zworkę przeoczyłeś - oryginalny JTAGICE też ją ma.
  • #12 8666391
    Polok
    Poziom 13  
    Mam programator na usb nie na rs232. Osobiście odrzucam szukanie winy po stronie jtaga, dlatego że mój wcześniejszy układ na Atmedze 8 był programowany tym jtagiem i wszystko było ok. Skończony teraz działa bez problemu bez programatora.
    Jeżeli chodzi o generator to objawy są takie same zarówno na zewnętrznym kwarcu 16MHz jak i na wewnętrznym.
  • #13 8666476
    rpal
    Poziom 27  
    Polok napisał:
    Mam programator na usb nie na rs232. Osobiście odrzucam szukanie winy po stronie jtaga, dlatego że mój wcześniejszy układ na Atmedze 8 był programowany tym jtagiem i wszystko było ok. Skończony teraz działa bez problemu bez programatora.
    Jeżeli chodzi o generator to objawy są takie same zarówno na zewnętrznym kwarcu 16MHz jak i na wewnętrznym.
    i tu jest właśnie pies pogrzebany bo kolego nie mogłeś zaprogramować sobie Atmega 8 za pomocą JTAG-a ponieważ ten procek nie ma odpowiedniego interface do tego celu. Było to najwyżej klon STK500 z wejściem na USB. Sprawdź tak naprawdę co ty tam masz u siebie.
  • #15 8667331
    Polok
    Poziom 13  
    Faktycznie Atmega8 nie ma jtaga. Mój błąd, bo się spieszyłem jak pisałem poprzedniego posta. Chodziło o Atmege16, a o Atmedze8 myślałem, bo na niej uruchamiałem kilka prostych układów i z rozpędu tak się napisało. Jakiś czas temu robiłem sterownik PWM do silnika DC na Atmedze16 i korzystałem z tego samego programatora i wszystko było OK.
REKLAMA