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.

n-ty raz programatory. Do kupy: ISP (In System Programing)

15 Cze 2005 11:47 3741 23
  • Poziom 12  
    Witam,

    Pare lat temu, gdy zajmowałem sie 8052 wykorzystywałem programator Willema i PonyProg - wtedy nie było jeszcze XP i problemów z zablokowanym portem LPT

    Dziś powracam do programowania (os: XP) (jeszcze nie wiem z jakim skutkiem...), i chcę skorzystać z ISP. Złożyłem więc prosty programator (jedynie z "buforem" 74HC244 [u]http://www.amwaw.edu.pl/~adybkows/elka/ispprog.html i ... niestety, nic nie działa (a korzystałem z Bascom, avrdude, AvrISP, ISPprog itd - w sumie ze wszystkiego o czym czytałem na elektrodzie.
    Analizując układ doszedłem do wniosku (z praktyki również), że newralgicznym punktem układu jest właśnie bramy pomiędzy uP a PC. Wyeliminowałem bramę, łącząć LPT bezpośrednio z podstawką.... (zachęcam do zapoznania się z http://www.patron.net.pl/AVRintropl.htm#_Toc91331579)
    Hm, co uzyskałem? Po może 10 próbie raz zaprogramowałem 90s8515, potem drugi, odłączyłem LPT od PC'ta potem chciałem zaprogramować 3 raz i nic. Po restarcie - też nic. Programowałem przy pomocy avrdude.
    Po tej akcji sprawdziłem napięcia na pinach - takie jak poprzednio. Ponownie próbowałem - ale bezskutecznie. Wziąłem 2 procek - tym razem AT 2313. Hm, co jeszcze mogę zmieniać?
    Proszę więc o wszelkie rady, nawet jeśli mam zrobić coś 10 raz, to zrobię. Ale podpowiadajcie....
    Jakie napięcia powinny być pinach LPT normalnie i w czasie programowania?
    Jak diagnozować układ aby odszukać problem?
    Czego jeszcze mogę próbować?
    Wiem, że XP może mi stawiać problemy. W tej chwili mam z avrdude że device not response, jak więc sprawdzić czy port nie jest blokowany? Albo jak sprawdzić, że go nie posadziłem?
    Czekam na wszelkie info i z góry dziękuję,
    - pozdrawiam - kali
  • Pomocny post
    Poziom 21  
    Witam.

    Najczęściej przyczyną, tego, że ten prog nie chce działać jest "niedomaganie" na jednej z linii RST,SCK,MISO,MOSI. Na początek spróbuj oczywiście podłaczyć programator bezpośrednio (bez kabla pośrdnika długości 1,8m). Weź pony proga, daj setup-> calibration. Programator jaki masz wybrać to AVR ISP I/O. Nie zapomnij o rezystorze podciągającym do plusa (100k) międdzy linią miso i vcc w programatorze. No i próbuj. Jak nic nie zadziała, to moze jeszcze raz zrób ładnie (ładniej niż poprzednio :) ) programator (czyste STK200) :), ale wcześniej odłącz wszystko od lini SCK,MISO,MOSI przy procku poza prog oczywiście, spróbuj dodać kondensatory filtracyjne na zasilaniu procka i hc 244, idź na LPT'a do kolegi, Posprawdzaj wszystko miernikiem jeszcze raz i ze przede wszystim schematem (albo daj sprawdzić koledze, może cały czas robisz ten sam błąd). Powodów dla których nie chce ten prog działać jest w 99% są złe połaczenia.

    Powodzenia.
  • Poziom 12  
    Dzięki - aż mi szkoda ruszać tych pięknistych lutów... ale masz racje, przelutuję wszystko od nowa.
    Nie wiedziałem natomiast (kiepski ze mnie elektronik) że należy podciągać linię do vcc. Układ jest zaisilany nie z LPT lecz zewnętrznego źródła (jakieś 5.3V), czy w tym wypadku też mam podciągną do vcc?

    Mam 2 kompy, i na obu mam ten sam problem, choć prawie cały czas korzystam z laptopa... Wykorzystuję LPT1 (378). Jeżeli chodiz o PonyProg, to narazie daje spokuj. Zająlem się czystym ISP bez bramy 74HC244 - bo na takim właśnie układzie poszło mi 1 programowanie.
    Ale a propos tego (STK200) to miałem tu problem - może wynikający z mojej głupoty. Otóż, zestaw który kupiłem miał wlutowaną kość 74hc i port żeński. W komplecie zestawu otrzymałem port żeński i kabel LPT (1,5m) z jedną końcówką męską a drugą żeńską :) czyli ni jak nie można było podłączyć zestawu. Wymieniłem więc port w układzie na męski. Następnie spostrzegłem, że kabel LPT jest przekrosowany na wtyczkach (PIN1 --> PIN14 itd), więc go przelutowałem na zwykły przedłużacz (czyli PIN1--->PIN1). I tu sie zacząłem zastanawiać......
    Ale rozumiem, że jeżeli chodzi o STK200, to na większości schematów (choć często nie jest to dla mnie czytelne), pokazana jest wtyczka LPT wtykana bezpośrednio do PC i jest ona od str lutowania... ? Tak? Bo jak mi to wszystko nie chciało działać, to zacząłem kombinować no i się pogubiłem. Dlatego najpierw staram się odpalić wszystko, podpinając procek bezpośrednio pod port w PC....

    Czekam na dalsze sugestie, sorry za laizm, dzięki
  • Pomocny post
    Poziom 21  
    tkalinows napisał:
    Dzięki - aż mi szkoda ruszać tych pięknistych lutów... ale masz racje, przelutuję wszystko od nowa.
    Nie wiedziałem natomiast (kiepski ze mnie elektronik) że należy podciągać linię do vcc. Układ jest zaisilany nie z LPT lecz zewnętrznego źródła (jakieś 5.3V), czy w tym wypadku też mam podciągną do vcc?

    Mam 2 kompy, i na obu mam ten sam problem, choć prawie cały czas korzystam z laptopa... Wykorzystuję LPT1 (378). Jeżeli chodiz o PonyProg, to narazie daje spokuj. Zająlem się czystym ISP bez bramy 74HC244 - bo na takim właśnie układzie poszło mi 1 programowanie.
    Ale a propos tego (STK200) to miałem tu problem - może wynikający z mojej głupoty. Otóż, zestaw który kupiłem miał wlutowaną kość 74hc i port żeński. W komplecie zestawu otrzymałem port żeński i kabel LPT (1,5m) z jedną końcówką męską a drugą żeńską :) czyli ni jak nie można było podłączyć zestawu. Wymieniłem więc port w układzie na męski. Następnie spostrzegłem, że kabel LPT jest przekrosowany na wtyczkach (PIN1 --> PIN14 itd), więc go przelutowałem na zwykły przedłużacz (czyli PIN1--->PIN1). I tu się zacząłem zastanawiać......
    Ale rozumiem, że jeżeli chodzi o STK200, to na większości schematów (choć często nie jest to dla mnie czytelne), pokazana jest wtyczka LPT wtykana bezpośrednio do PC i jest ona od str lutowania... ? Tak? Bo jak mi to wszystko nie chciało działać, to zacząłem kombinować no i się pogubiłem. Dlatego najpierw staram się odpalić wszystko, podpinając procek bezpośrednio pod port w PC....

    Czekam na dalsze sugestie, sorry za laizm, dzięki


    No to z tym kablem to musisz se pogłówkować i dojść jak będzie dobrze. Rzeczywiście, bez sensu, że dali ci żeński w samym programatorze. Na wszystkich schematach STK200 i podobnych, które widziałem w sieci, w programagtorze jest port meski, po to aby można to odrazy przypiąć do LPT'a. Skoro kabel w tym zestawie już rozebrałeś, to może odlutuj port żeński i przylutuj bezpośrednio kable do programatora. (porównaj ze schematem ZL2PRG <- google) Co do rezystora podciągjącego, to potrzebny on jest tylko jeśli używasz tego byfora HC aby na jego wejście (te po którym idzie sygnał MISO) nie "pływało" (i w sumie nie jest chyba tak bezwzględnie potrzebny, ale go daj). Do 5,3V też je możesz podciągnąć.

    Wymiana portu w programatorze z męskiego na żeński (rozmumiem że to zrobiłeś) na płytce która została zaprojektowana pod żeński musi się skończyć niepowodzeniem, bo żeński w tyk ma układ pinów będący odbiciem lustrzanym męskiego.

    Ten zestaw co kupiłeś, to był jakis do gotowego monrtazu ?? Jeśli tak to podaj oznaczenie, a najlepiej link.

    Powodzenia
  • Poziom 12  
    Tak, był to zestaw do samodzielnego montazu 300-k. A oto link: http://www.nikomp.com.pl/zestawyK/K-3000.htm

    Dzięki za cierpliwą pomoc...

    Dodano po 1 [godziny] 56 [minuty]:

    No niestety... przelutowałem wszystko na nowo. Sprawdziłem czy nie ma zimnych lutów. Zrobiłem 2 kabelek (około 50cm) i połączyłem lpt laptopa bezpośrednio z podstawką avr'a. avrdue zwraca komunikat, iż urządzenie nie odpowiada.
    Jak moge sprawdzić czy port lpt działa poprawnie? Czy podłączenie drukarki da mi konkretny obraz? Na ogół drukarki też nie wykorzystują wszystkich pinów.... może jakiś soft polecicie?
  • Pomocny post
    Poziom 21  
    tkalinows napisał:

    No niestety... przelutowałem wszystko na nowo. Sprawdziłem czy nie ma zimnych lutów. Zrobiłem 2 kabelek (około 50cm) i połączyłem lpt laptopa bezpośrednio z podstawką avr'a. avrdue zwraca komunikat, iż urządzenie nie odpowiada.
    Jak moge sprawdzić czy port lpt działa poprawnie? Czy podłączenie drukarki da mi konkretny obraz? Na ogół drukarki też nie wykorzystują wszystkich pinów.... może jakiś soft polecicie?


    A włączyłeś w avrdude, giveio ?? Bo to jest potzrebne aby avrdude dobrał się do LPT'a po XP. Dlatego poleciłem ci Ponyproga, bo tam nic nie musisz ustawiac poza tym co napisałem.
  • Poziom 12  
    oczywiście. Status OK. Na początku był problem, bo w configu avrdude, system nie mógł otworzyć ścieżki %SystemRoot%, ale wpisałem ją ręcznie, oczywiście upewniając sie wcześniej o jej prawidłowości. Teraz przy install_givo daje mi że skopiowało plik, wystartowało serwis i status ok....
    Co dalej?
  • Pomocny post
    Poziom 21  
    http://www.btc.pl/pdf/zl2prg.pdf Na tym schemacie widac, ze między liniami 2-13 i 3-13 jest połączenie. Ono jest pewnie po to aby software mógł wykryć programator, że jest obecny i tak dalej. Ze schematu płytki widze, że do tych podstwek nie jest doprowadzony żaden sygnał. Więc musisz dać VCC,GND,RST,MISO,MOSI,SCK. No i jeśli wyłączyłeś pull-upy w tym programie, który ci się raz udało wgrac (w co wątpie) to i rezystor podcigający reset do plusa. Teraz, skoro raz ci się udało go zaprogramowac, to co dokładnie wgrałeś ?? Chodzi mi o to czy nie przestawiałes fusebitów, bądż wyłączałeś globalnie pull-upy no i gnd w LPt i procku muszą być oczywiście wspolne. No niestety kończą mi się pomysły co jeszcze może być nie tak. A próbowaleś PonyProgiem2000 ??
    Jednym ze sposobów "obejrzenia" co się dzieje podczas programowania, jest podłączeni diodek do lini RST,MISO,MOSI,SCK przy procku przez rezystory (prponuje 2k, aby nie obciązac za bardzo lpt'a) Jesli RST mrugnie kilka razy i nic (używając ponyproga, bo nie wiem jak avrdude sie zachowuje) to dalej obstawiam złe połączenia.

    Powodzenia

    ps. Moj znajomy ma ta sama płytke i nie udało mu się odpalić programtora na tej płytce, ale on podłączył gnd do obudowy kompa, więc duza szansa że coś mogło wysiąść
  • Poziom 12  
    Hm. Procek raz udało mi się zaprogramować (a właściwie dwa razy pod rząd). Akurat jesem tego pwien (to nie przypadkowe stany lini), albowiem wgrałem program który zadziałał (za drugim razem bo oczywiście za pierwszym popełniłem zonka ;) ). Program sterował LCD, czyli porty były ustawione standardowo do obsługi LCD czyli port B od 4 do 7....
    A i jeszcze jedno. Tak jak powiedziałem, zaprogramowałem go omijając 74HC i podłączając piny LPT bezpośrednio do podstawki procka. Rzeczywiście na schemacie nie ma połączeń między programatorem a procekiem, no ale przecież to to już trzeba podłączyć. Jest tak ponieważ, twórca przewidział programowanie różnych uP.

    Sam już nie wiem. Ale dzięki za pomysł z diodą. Sprubuję też PonyProgiem2000.

    W razie pomysłów - czekam. pozdrawiam
  • Poziom 2  
    Nie chce tworzyc nowego posta wiec podlacze sie do tego, mam nadzieje, ze jakas odpowiedz dostane.
    No wiec ja mam bardzo podobny problem jak kolega. Wykonalem programator wg schematu http://www.patron.net.pl/AVRintropl_pliki/image026.jpg dla uC atmega8. probuje zaprogramowac poprzez avrdude, oczywiscie wczesniej instaluje driver giveio. Przy probie programowania dostaje komunikat:
    Cytat:
    AVRDUDE: AVR device not responding
    AVRDUDE: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    Problem wystepuje takze na laptopie, zas na komputerze mojego brata smiga bez problemu. Dodam odrazu, ze LPT na wszystkich trzech komputerach pracuja w trybie ECP+ESP, a programowanie odbywa sie pod systemem windowsXP.
  • Poziom 21  
    Ten programator, który jest na tym schemacie (niestety strasznej jakości) nie jest compatybilny z STK200, ma inny układ linii. Jak chcesz zrobic STK200 przez bezpośrednie połaczenie to połącz : (złącze DB25 męskie-> uC)
    6 - > SCK(PB5)
    7 -> MOSI(PB3)
    9 -> RST
    10 -> MISO(PB4)
    20,21,22,23,24,25 -> GND
    oprócz tego połącz 2 z 12 i 3 z 13

    Wtedy avrdude, będzie miał dopiero szanse to obsłużyć.
    avrdude -p m8 -c stk200 -e -E noreset -U flash:w:plik.hex
    proponuje taka linie poleceń.

    Powodzenia.
  • Poziom 14  
    Wpisze i ja moje zdanie.
    Choć nie programuje AVR-ów tylko jak na razie 8252 to posiadam bardzo prosty programator AEC ISP Programmer.
    Programator to kabel drukarkowy +wtyk męski z 40 cm przewodami i rezystorem do linii RESetu jedynie.
    Programuje bez problemu i tylko nie wiem jak się to z procesorami AVR zachowuje.
    Jesli problem nadal istnieje to jutro postaram sie przesłać schemacik.

    działa na Windows 2000. Z portami drukarkowymi to pozmieniałem w biosie jak miałem wcześniejsze programatory i nie pamiętam jakie jest ustawienie.
  • Poziom 27  
    :arrow: tkalinows
    Mam płytkę z tego zestawu (kiedyś te płytki sprzedawała f-ma Gotronik) i zastosowałem 74LS244 (HC nie mogłem dostać). W płytkę wlutowałem złącze typu męskiego i łączę ją z portem LPT w komputerze za pomocą kabla typu "przedłużacz". Kabel ma jakieś 1,5 metra długości.
    Próbowałem programować AT90S2313 i AT90S8515 i wszystko działa poprawnie. Sprawdzałem w pracy na komputerze z Windows XP. Działa zarówno przy użyciu programu PonyProg2000 jak i Yaap. Szczególnie polecam Ci zapoznanie się z tym ostatnim. Znajdziesz go na stronie http://www.myplace.nu/avr/yaap/.
    Powodzenia!
  • Poziom 26  
    Myslę, że ważnym elementem takiego pogramatora jest filtr RC na linii SCK (od strony LPT-a). Komputery są coraz szybsze i śmieci przenoszą się na kabel LPT.
    Ja zastosowałem taki filtr:
    pin 6 złącza -> rezystor 1k (szeregowy) -> kondensator 100p (równoległy do GND) i podłaczenie do 74HC244.
    Pod Windowsem XP działa bez zarzutu. Używam PonyProg 2000.
  • Poziom 2  
    lbugiera napisał:
    Ten programator, który jest na tym schemacie (niestety strasznej jakości) nie jest compatybilny z STK200, ma inny układ linii. Jak chcesz zrobic STK200 przez bezpośrednie połaczenie to połącz : (złącze DB25 męskie-> uC)
    6 - > SCK(PB5)
    7 -> MOSI(PB3)
    9 -> RST
    10 -> MISO(PB4)
    20,21,22,23,24,25 -> GND
    oprócz tego połącz 2 z 12 i 3 z 13

    Wtedy avrdude, będzie miał dopiero szanse to obsłużyć.
    avrdude -p m8 -c stk200 -e -E noreset -U flash:w:plik.hex
    proponuje taka linie poleceń.

    Powodzenia.


    Po pierwsze wiem, ze programator przedstawiony na schemacie nie jest zgodny z stk200, poniewaz jest zgodny z bsd. Po drugie, dlaczego ten programator dziala na jednym komputerze, a na dwoch innych nie dziala?:)
    No i po ostatnie, zlutowalem tak jak mi powiedziales no i niestety dalej dostaje ten komunikat... nawet juz nie wiem od czego to moze zalezec:/
  • Poziom 21  
    adm0 napisał:

    Po pierwsze wiem, ze programator przedstawiony na schemacie nie jest zgodny z stk200, poniewaz jest zgodny z bsd. Po drugie, dlaczego ten programator dziala na jednym komputerze, a na dwoch innych nie dziala?:)
    No i po ostatnie, zlutowalem tak jak mi powiedziales no i niestety dalej dostaje ten komunikat... nawet juz nie wiem od czego to moze zalezec:/


    Tutaj co piszą w dokumentacji avrdude:
    avrdude.pdf napisał:

    A.2.3.2 Parallel Ports
    AVRDUDE will only accept 3 Windows parallel port names: lpt1, lpt2, or lpt3. Each of these names corresponds to a fixed parallel port base address:
    lpt1 0x378
    lpt2 0x278
    lpt3 0x3BC
    On your desktop PC, lpt1 will be the most common choice. If you are using a laptop, you might have to use lpt3 instead of lpt1. Select the name of the port the corresponds to the base address of the parallel port that you want.


    Więc moze na tych dwóch kompach na których ci nie działa, masz ustawione inne niż domyśle adresy portu dla lpt1 ?? Spróbuj wszystkich trzech. Spróbuj także na innych typach portów, u mnie działa na ECP
    Ten komunikat, o którym pisałes, avrdude wyrzuca gdy nie ma kontaku z programatorem. No skoro na jednym dział a na drugim nie to programator raczej jest dobry, a problemy są z portem. Spóbuj takze z innymi programami, ponyprog, ispprog.
    Pomysły mi sie skończyły

    Powodzenia
  • Poziom 12  
    Mój problem został rozwiązany, przynajmniej jeśli chodzi o bsd (bezpośredni podłączenie LPT do pinów uP). A wiecie co było problemem??? Nik nie zgadnie, bo znalazałem go przypadkowo. Otóż, chcąc sprawdzić LPT, wyjąłem Laptopa ze stacji dokującej i podłączyłem drukarkę. Wydruk poszedł. Wróciłem do programowania. Okazało się, ze wszystko działa super, do momentu, kiedy zadokuję komputer w stacji. Nie mam pojęcia dlaczego tak się dzieje, ale to nie ważne. A ha, drukarka działa nawet jeśli komp jest zadokowany, programator już nie. Port jest oczywiście umieszczony w laptopie nie w stacji.
    A dlaczego nie działał na dużym komputerze? Tu kłania się BIOS - tego nie zrobiłem na tym kompie, a jedynie w laptopie :). W biosie port parelel trzeba ustawić do opcji ECP/EPP.

    Natomiast nie zdążyłem jeszcze wypróbować, czy działa programator poprzez bramę HC(T). Ale może dziś wieczorem. Ważne, że się procek programuje i wszystkie porty są w nim ok. Bo szczerze mówiąc, myslałem, że tymi wszystkimi kombinacjami posadziłem albo procek, albo LPT.

    No naszczęście dopuki poruszamy się w granicach 6V jest w miarę bezpiecznie dla LPT choć jeśli wejdzie w stan niskiej impedancji, to pewnie i kilka miliamper wystarczy do upalenia portu.


    Proponuję jednak skupić w tym temacie wszelkie spostrzeżenia. Ja szukając pomocy na forum, dlugo przeszukiwałem tematy (oczywiście korzystam z wyszukiwarki) i co prawda jest ich mnustwo, to albo sie powtarzają albo nie dają odpowiedzi na niektóre pytania.
    Podrawiam.

    PS: Dzięki wszystkim!
  • Poziom 10  
    ja dzisiaj mialem problem ze swoim programatorem , nie chcial mi odczytac sygnatury z procka, w sumie to wogole procka nie widzial... na poczatku myslalem ze spieprzylem procka ostro, bo do ATmegi8 podpielem kwarc 32 MHz :X ... po wyjeciu kwarcu dalej mimo to nie dzialal, zatem czytajac tu i owdzie zauwazylem ze LPT musi byc ustawione w biosie w trybie ECP, no to hop siup do biosa, modyfikacja no ale jak nie dizala tak nie dziala.. w akcie desperacji zaczalem probowac wszystkich presetow jakie daje ISP Prog w rubryce "ISP cable pinout".. z przylozonymi kabelkami od miernika napiec sprawdzalem stan na wejsciu RESET... po ustawieniu na SI-Prog i pusczeniu resetu na ON zadzialało... i sygnature tez odczyta.. wiec sadze ze juz mam otwarta droge do zaprogramowania ;] chyba ze ktos jest bardziej doswiadczony, ze odczyt sygnatury i reset nie ma wplywu na to czy proc jest zablokowany czy nie...

    sproboje w biosie przestawic LPT na ECP/EPP i zobacze czy wtedy tez dziala...
  • Poziom 12  
    witam,
    mam podobny problem avrdude i pony prog wykazuja brak kontaktu z prockiem, ale gdy podlacze led do kabelka reset dziala gdy powinien dzialac. (w pony progu przy resetowaniu i w jakims programie do sterowaniea uzadzeniami przez lpt).
    procek padl? dodam jeszcze ze wykonuje ostatnio wgrany program.
    wczesniej sie programowal i nagle przestal.
  • Poziom 26  
    Jeżeli wszystkie połaczenia są OK, to może udało ci się przez przypadek skasować fuse SPIEN, co wyłącza programowanie przez SPI. Dla mnie zdarzyło się kiedyś coś takiego.
  • Poziom 20  
    SPIEN nie da się wyłączyć przez ISP!!!
  • Poziom 26  
    Ja też tak myslałem, ale zaufaj mi, da się. ATmega128L i PonyProg2000.
  • Poziom 20  
    Cóż, ja używam ISP programmer Adama Dybkowskiego i tam nie ma wogule takiej opcji jak SPIEN. Chętnie bym sprawdził na PonyProgu ale musiałbym kabel przerabiać :(
  • Poziom 12  
    kupilem nowy procek i dalej to samo. tylko ze teraz odczytuje zawartosc procka ale nie moze jej zapisac. odlaczylem MISO i dalej to samo. wiec doszedlem do wniosku ze to cos z miso wlasnie.
    zaraz podlacze ten opornik 100k miedzy miso i vcc