Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Problem z programowaniem - Atmega32

02 Cze 2007 00:58 1443 7
  • Poziom 20  
    Witam! Niedawno postanowiłem zbudować prosty moduł edukacyjny na układzie AVR (Atmega32 konkretnie), jednak po jego zbudowaniu natrafiłem na dość spory szereg problemów i wątpliwości, jak ktoś będzie w stanie mi pomóc będę wdzięczny.

    Zaczynając od początku - oto schemat jaki 'zaprojektowałem':
    Problem z programowaniem - Atmega32

    (schemat użytego przeze mnie programatora jest tu: http://www.olimex.com/dev/pdf/avr-pg1b.pdf oczywiście wszystkie potrzebne piny z odpowiednich linii poprowadziłem do programatora)

    Sa tu pewne różnice co do wartości i typu elementów jakie są na schemacie, a jakie użylem - użyty stabilizator to L78S05CV (a samo zasilanie było puszczone z baterii 9V), zamiast kondensatora 10u widocznego na schemacie użyłem 22u i zamiast obu 20p mam 24p, dioda D1 to zwykła dioda prostownicza, nie wiem nawet dokładnie jaka, poprostu w sklepie poprosiłem o prostowniczą ;). W programatorze też są pewne zmiany - nie było w sklepach tranzystora BC846B, wiec dali mi BC546B mówiąc, że to ten sam ;), tak samo zenery, poprostu chciałem na 5.1V. w związku ze schematem pojawia się problem nr 1 - otóż nie jestem na 100% pewny czy jest dobry ;) (głównie chodzi mi o obwód zawierający przełacznik i reset, czy tak może to być zrealizowane) jeżeli jest w nim coś co wymaga poprawy to byłbym wdzięczny za informację.

    Po zlutowaniu układu (w wersji 1 ;) ) zdałem sobie sprawe z wielu błędów jakie zrobiłem. W związku z każdym z nich chciałbym wiedzieć, czy mogły one doprowadzić do uszkodzenia procesora i jeżeli tak to czy bez użycia specjalistycznych narzędzi, można stwierdzić czy procesor jeszcze 'żyje':
    - na początku układ chciałem zlutować tak, aby był 'kompatybilny' z przewodem typu com-com do łączenia szeregowego 2ch pc'tów. Poza tym, że kabel jest dość długi (na oko ok. metra, co podobno też za dobrze na transmisję nie wpływa) to jeszcze nie patrzyłem na numeracje pinów gniazda com ;) przez co przylutowałem wyprowadzenia z płytki 'na wid' co oczywiście powodowało Test failed w PonyProg'u (i m.in. tu pada pytanie czy tego typu złe polutowanie mogło spowodować rozwalenie procka)
    - po przemyśleniu sprawy przelutowałem końcówke com z męskiej na żeńską (tym razem patrząc na numeracje pinów) i podłączyłem programator bezpośrednio (bez użycia wspomnianego kabla) do kompa, zaowocowało to Test ok w PonyProgu (co ciekawe przy wyłączonym zasilaniu też jest Test ok, nie wiem czy to normalne czy nie) ale niestety niczym więcej (Earse, Read, czy Write oczywiście nie działa i non stop błąd 'Device missing or unknown device (-24)')
    - przyglądając się bliżej schematom zauważyłem, że w chyba wszystkich układach z pinu Vcc do Resetu sygnał idzie przez rezystor, a z pinu reset na programator, wcześniej miałem to połączenie rozwarte, teraz zlutowałem to połączenie (oraz dodatkowo pozwierałem wszystkie widoczne zworki na schemacie - AVcc do Vcc, AGnd do Gnd i ARef do Gnd, nie wiem czy to dobre rozwiązanie, oraz czy na coś wpływa przy programowaniu), oczywiście w PonyProgu bez zmian - Test ok i Device Missing przy jakichkolwiek operacjach...
    - przeszukując forum znalazłem informację o tym, że procek fabrycznie jest ustawiony na działanie z wewnętrznego oscylatora (o czym wcześniej nie wiedziałem i miałem wlutowane kondensatory i kwarc), więc wylutowałem kwarc i kondensatory, jednak sytuacja nie uległa zmianie w PonyProgu (i tu po raz kolejny pytanie czy taki błąd mógł spowodować zniszczenia proca)
    - kolejne rzeczy jakie mi przychodzą do głowy to, to że mogłem źle wlutować tranzystor w programatorze ;). Jeżeli dobrze pamiętam widziałem w necie kilka takich tranzystorów różnych producentów, z różnymi rozkładami pinów (chyba, że mi sie wydawało ;) ) i w związku z tym jakby ktoś mi podał jakie mniej więcej powinny być spadki napięć na rezystorach polaryzujących tranzystor bym pomierzył i zobaczył czy się zgadza
    - ostatnia wątpliwość jaka mi przychodzi do głowy to to, że używam systemu win2000 i że 'doinstalowałem' porty com dopiero co (nie były mi do niczego potrzebne już baaardzo długo, więc miałem je wyłączone w biosie). Tu się też pojawia kwestia czy nie są one jakoś 'blokowane' przez system (bo też o czymś takim słyszalem) oraz czy trzeba ich jakoś specjalnie ustawiać w menadżeże urządzeń (szybkość, parzystości, kontrola przepływu itd.) czy nie ma to znaczenia.

    To jest chyba wszystko co mi w tej chwili przychodzi do głowy, jak coś mi się przypomni to dopiszę, dzieki za wszelką pomoc.
  • Poziom 20  
    Nikt nie ma pomysłu co możnaby zrobić, żeby układ dało się zaprogramować :cry: ?
  • Poziom 32  
    Czy na pewno masz poprawne połączenia µC z gniazdem programatora? A
    może spróbuj zaprogramować przez LPT przy pomocy programatora STK200?
    Ja nie miałem z nim nigdy problemu.
  • Poziom 20  
    Wydaje mi się, że wszystkie połączenia są poprawne, sprawdzałem je kilka razy, z notą katalogową proca w ręce i dodatkowo miernikiem (czy aby na pewno nie ma jakiejś przerwy) wygląda na to, że jest ok.
    Co do innego programatora to prawdę mówiąc rozważałem tą możliwość, jednak nie chciałem juz się bawić w budowę nowego. Ten podobno jest ok, i powinien działać.
    Jedyne co mnie zastanawia odnośnie tego programatora to to co napisałem wcześniej - nie wiem czy tranzystor jest dobrze wlutowany. Sprawdziłem jeszcze raz i faktycznie nie wydawało mi się - np. na tej nocie katalogowej Philipsa: http://www.ortodoxism.ro/datasheets/philips/BC546_547_3.pdf
    tranzystor ma emiter po lewej stronie (patrząc jeżeli 'wcięcie' jest na dole i rzut jest z góry), ale tu sie pojawia problem bo nie widzę nigdzie w tej nocie katalogowej czy jest to rzut z góry czy z dołu a to jednak dużo zmienia :|. Inna sytuacja jest np. w tej nocie:
    http://www.ortodoxism.ro/datasheets2/8/0i28jky7o48ey0z6oq8zuoldcq7y.pdf
    , gdzie emiter jest po prawej stronie... Niestety i to mi niewiele pomaga, bo nie wiem nawet jakiego producenta mam tranzystor, i dlatego chciałem, żeby ktoś mi napisał jakie powinny być spadki napięć na tranzystorze, bo jak jest źle wlutowany to na pewno będą inne. No, ale jeżeli nie będę miał innej opcji i nikt nie będzie mi w stanie czegoś podpowiedzieć co można by zrobić, żeby układ zaczął działać, to będę musiał złożyć inny programator (zakładając, że moje operacje nie rozwaliły procka :| ).
  • Pomocny post
    Poziom 14  
    Mogłeś uwalić procesor. W złączu com mogą występować napięcia +15V i -15V więc jeśli coś źle połączyłeś mogłeś podać na procka za duże napięcie. Proponuję zbudować prosty programator STK200 na układzie 74hc244 i sprawdzić procka.
  • Pomocny post
    Poziom 32  
    Jeśli masz tranzystor ustawiony ścięciem w swoją stronę i nóżkami do dołu,
    to emiter masz po prawo. I tak jest w obydwu notach które przedstawiłeś.
    Nie wiem dlaczego u Philipsa widzisz go z lewej strony. Na tym rysunku gdzie
    widać ponumerowane nóżki tranzystor jest widziany od dołu, a nóżka nr 1 to
    emiter, co widać z numeracji na ostatnim rysunku po prawej. Ten sam typ
    produkuje wielu producentów, ale skoro to jest ten sam BC547 to robią to
    z takim samym rozmieszczeniem końcówek. Inaczej niezły bajzel by się zrobił.
    Co do programatora, to w pdf-ie który podałeś nie pisze że współpracuje z
    ATMega32. Jest ATMega8, 16, 64 ale 32 nie widzę. A Ty właśnie z 32 próbujesz.
    Może w tym problem?
  • Poziom 20  
    Co do tego tranzystora, no to w sumie fakt, że jeżeli jest to ten sam typ, to muszą być nogi tak samo rozłożone, tu sie w sumie trochę wygłupiłem :oops: (no ale cóż, elektronik ze mnie nie jest najlepszejszy...). Jednak nie pozostawia to faktu (moim zdaniem), że jednak w nocie Philipsa nie widać jak one są rozłożone (bo ja nadal nie widzę, gdzie tam jest napisane, że to jest rzut z dołu). To jest jednak bez znaczenia w tej chwili, bo już wiem, że tranzystor miałem dobrze wlutowany.

    Jeżeli natomiast chodzi o współpracę to faktycznie, znowu mój błąd, bo przeczytałem tylko 2ga linijkę - tę która mówi o obsłudze procków przez PonyProg, a nie o współpracy programatora z prockami :| ahhhh, mój błąd. Jednak chyba najbardziej mnie zmartwiło to, że faktycznie, na com jest napięcie jednak, wiec jeżeli źle podłączyłem to pewnie procek już jest trupem :(:( (chyba, że fuksem podłączyłem gdzieś gdzie nie ma napięcia). Teraz mi pozostaje, albo kupić nowego, kompatybilnego z programatorem, albo zbudować inny programator... Ehhh i tak źle i tak niedobrze.

    No nic, dzięki za odpowiedzi i jeżeli ktoś ma jeszcze jakiś pomysł co (na podstawie mojego opisu, schematu) mogłem skopać to proszę o info. Również, jeżeli ktoś wie czy ten programator jest kompatybilny z Atmegą32 (bądź też, że na 100% nie jest kompatybilny) to nie obraziłbym się gdyby się tą informacją podzielił.
  • Poziom 20  
    Już wszystko udało mi się ustalić - procek na szczęście działa, po zbudowaniu najprostszego z możliwych programatorów stk200 (na rezystorach nawet bez bufora :) ) czyta, i komunikuje się z procesorem bez problemu. Wniosek jest taki, że albo coś źle zrobiłem podczas budowy programatora, albo jest on niekompatybilny z atmegą32. Tak czy inaczej póki co jest wszystko jasne. Dzięki za pomoc i zainteresowanie.