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

Miniprogramator mikrokontrolerów AT89Cx051 na LPT

Nemo 01 Gru 2004 11:33 50662 145
  • #31 01 Gru 2004 11:33
    Guma1975
    Poziom 14  

    No tak chwila nieuwagi i Atmelek sie sfajczył.
    Dodałem diodę z 5V i 470omów w szereg do tej mojej przeróbki (brak 5V na atmelku niedopatrzenie)
    Dopiero u kolegi znalazłem kompa z dwukierunkowym portem i wkońcu działa!
    Dziękuje za wsparcie
    Pozdrawiam!

    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #32 01 Gru 2004 13:30
    Nemo
    Poziom 31  

    Cieszę się, że pomogłem.

    Z drugiej strony to dziwne, że komputery te nie mają dwukierunkowych portów. Programator był do dziś testowany na różnych maszynach i jak do tej pory nie spotkałem żadnego, który by miał port jednokierunkowy. Dotyczyło to maszyn od 486 wzwyż do P4, a także Athlony. Dziwne. Może to wina ustawień w BIOS'ie? Czasami trzeba zdrowo pokombinować, aby chodziło, ale zwykle chodzi. Co BIOS, to obyczaj... ;)

    Pozdrawiam.

  • #33 01 Gru 2004 19:14
    Guma1975
    Poziom 14  

    Witam ponownie.
    Jak się okazało z roztargnienia zapomniałem po wymianie Atmelka na nowy, przełączyć w BIOS-ie z trybu standard LPT
    Układ działa na Athlonie barton 2500+ z opóźnieniem 30 oraz, EPP wersja 1.9 w BIOS-ie
    Niestety test napięciowy wykazał że jest na rezystorze 47k około 4.2V
    Programator podłączony bezpośrednio poprzez kabel od skanera wykazywał po weryfikacji 233BAD.
    Jak się okazało po podłączeniu poprzez skaner - czyli z portu komputera do skanera, a gniazdo dodatkowe znajdujące się w skanerze do programatora i przeprowadzeniu prób jest wszystko wporządku 0 BAD.
    Zamieszanie było wywołane moją przeróbką (chciałem zbyt szybko cieszyć się programatorem)
    Nie mogłem znaleźć takiego przełącznika
    Być może moje spostrzeżenia się przydadzą innym użytkownikom płyty MSI K7n2
    NEMO jesteś wielki !!!
    Dziękuję za wykrycie mojej niedoruby (tak to jest jak się noce zarywa)
    Pozdrawiam.

  • #34 07 Gru 2004 16:31
    Wujasss
    Poziom 15  

    Czy ten mnini programoator również programuje 89C51 (MCS 51) czy tylko te z serii co ATI89Cx051.

  • #35 11 Gru 2004 17:31
    stachn
    Poziom 17  

    Witam wszystkich
    Programator chodzi w systemie XP ( oczywiście z userport ). Mam taki sprzęt :
    Procesor AMD Athlon XP, 1400 MHz ( 5.25x267) 1600+
    Płyta główna K7S8X
    Mikroukład płyty siS 746
    Bios AMI ( 10/07/03)
    System win XP i win 98
    Bios ustawiony na Bi-Dir ( inaczej nie chciał chodzić)

    Układ ma win98 wymaga opóźnienia 5 a na XP - 7.

  • #36 19 Sty 2005 17:53
    mx5
    Poziom 1  

    Nemo napisał:
    Kody źródłowe nie są zbyt pasjonujące dla obserwacji, dlatego nie zdecydowałem się na ich publikację. I raczej się nie zdecyduję - bo niektórzy padliby ze śmiechu... :)


    Ze śmiechu możeby i padli, ale może wtedy by ktoś się poddał przeróbce na linuxa.

  • #37 20 Sty 2005 00:21
    Nemo
    Poziom 31  

    Od pewnego czasu prowadzone były próby (nie przeze mnie) napisania odpowiedniego programu dla programatora pod systemami innymi niż Winda 95/98/Me. Jeśli ktoś uważa, że jest w stanie taki program napisać (Linux, XP, inne) - dobrze. Proszę zatem o kontakt. Udostępnię procedury sterujące programatorem. Szczegóły na PW.
    Pozdrawiam.

  • #38 15 Lut 2005 22:47
    wasi
    Poziom 12  

    Jestem gotów nawet zapłacić za zmontowane ale pewne tematy mnie nurtują... wszyscy piszecie o LPT a ja chciałbym tytowego USB... czy ten programator obsługiwany jest również przez USB czy to tylko jakaś pomyłka ? Czy to znaczy że wersja USB nie wymaga LPT i czy wersja USB też ma problem z portami na XP? I gdzie można znaleźć instrukcję obsługi/programowania gdyż w opisie nie doczytałem ?

  • #39 16 Lut 2005 00:34
    Nemo
    Poziom 31  

    W opisie zaznaczono wyraźnie - port LPT służy do przekazywania sygnałów sterujących i jest to port KONIECZNY do działania programatora. USB lub GamePort służą JEDYNIE do zasilania i do niczego więcej. Niemożliwa jest praca programatora w tej wersji jedynie z USB.

    Programator miał być w zamierzeniach tani i prosty - budowa samodzielnego urządzenia z USB wykluczyłaby oba te zamiary. Zatem na razie nie powstała. Komputery stacjonarne mają jeszcze LPT, dlatego programator korzysta z niego i dzięki temu jest prosto.

    Pozdrawiam.

  • #40 16 Lut 2005 14:38
    wasi
    Poziom 12  

    Przepraszam za ten poprzedni post. Zaraz jak go wysłałem to zauważyłem wyraźnie napizane "zasilany z USB" :) A potem nie znalazłem swojego postu i się zostało. Więcej takich głupich postów nie będę pisał :)

  • #41 24 Lut 2005 16:22
    156488
    Użytkownik usunął konto  
  • #42 24 Lut 2005 18:04
    stachn
    Poziom 17  

    Chodzi bez problemów pod XP ( już od 11 grudnia). Zadaj sobie trochę trudu i zerknij 7 postów wyżej

  • #43 25 Lut 2005 20:14
    156488
    Użytkownik usunął konto  
  • #44 01 Mar 2005 21:26
    s.o.v.a
    Poziom 11  

    Koledzy jak trzeba skonfigurować ten program userport aby programator uruchomił się?
    (nie chodzi mi o ten programator, ale o zrobienie tak, by program działający pod win89 na porcie LPT zadziałał na XP[urzywam innego programtora])

  • #45 05 Mar 2005 15:24
    snakemen
    Poziom 11  

    prosty programator do tego typu mikrokontrolerów mozna znalezc tu hhtp://www.prog51.republika.pl

    Po odblokowniu portu dziala pod win XP


    userport.rar - program do odblokowania portu

    p51win.exe - program do programowania mikrokontrolera

    Ponizsze programy mozna znalezc rowniez na stronie tego programatora

  • #47 27 Mar 2005 17:03
    Dykus
    Poziom 26  

    Witam,

    Zbudowałem opisywany programator, jednak nie zawsze udaje mi się zaprogramować poprawnie uC. W zasadzie występuje dość dziwna sytuacja...

    Zamiast przetwornicy zastosowałem prosty klucz tranzystorem - dla RST=12V na wejście RST uC podawane jest poprzez rezystor 10k napięcie zasilające programator (12V), zaś dla RST=5V napięcie podawane jest poprzez dzielnik z dwóch rezystorów (w tym ten 10k). Napięcia są dokładne (po obciążeniu uC), czas przełączania wydaje się być szybszy niż czas uruchamiania przetwornicy. Reszta układu zasilana jest przez 7805.

    Pozostała część układu jest jak w oryginale. Układ przechodzi pozytywnie wszystkie testy dostępne z programu. Płytka zgodna ze schematem.

    Sytuacja pojawia się częściej, oto przykład:
    Po napisaniu programu (używam środowiska 'Ride'), tworzę plik *.BIN (program.bin) - akurat zajmuje 588 bajtów. Uruchamiam programator i program, ładuję plik i programuje uC (po wcześniejszym skasowaniu, AT89C2051). Przy weryfikacji wyskakuje: 492 BAD. Gdy spróbuję raz jeszcze wartość jest ta sama. Teraz biorę i kopiuję kawałek tego pliku BIN (np. 10 bajtów do schowka) do innego pliku (byle_co.bin) powielam go (ten ciąg bajtów) tyle razy, by plik miał też długość 588 bajtów. Ładuję ten nowy plik, programuję i... 0 BAD! Oczywiście, są to śmieci a nie program, ale dlaczego nie wystąpiły żadne błędy (jak poprzednio)?!

    Rozumiem, że może być problem z zapisaniem do uC, gdy będą śmieci i nie będą one stanowiły żadnego znanego kodu rozkazu. Ale tu *.BIN to wynik pracy kompilatora...
    Zależnie od danych czasami potrafię zaprogramować i 1.7kB w uC, a czasami kilkadziesiąt bajtów i wyskakują błedy. Raz zauważyłem, że pomogło przeniesienie programu w inne miejsce pamięci, co mogłoby sugerować uszkodzenie uC, ale dlaczego to co powyżej dobrze się programuje?

    Nie ma też wpływu opóźnienie ustawione w programie - nawet jak czekam kilka minut na zaprogramowanie uC to ilość błędów jest ta sama.
    Dla wyżej opisanego przypadku porównywałem pliki 'do zapisu' i 'po odczycie' (w edytorze tekstu) to były prawie takie same, tylko w kilku miejscach brakowało pojedyńczych bajtów - tak, jakgdyby nie zostałe one zapisane do pamięci uC (albo nie odczytane).

    Trochę zgaduję, ale o ile dobrze pamiętam, zdarzyło mi się też, że plik HEX udało się poprawnie zaprogramować, zaś ten sam kod tylko jako BIN już nie. Na pewno w tej kolejności.

    Obecnie to w ogóle się dziwne rzeczy dzieją. Np. bez żadnego urządzenia dołączonego do LPT, program wykrywa 'programator EEPROM PFP-01'. Wcześniej tylko programator z źle zaprogramowanym uC był wykrywany jako EEPROM, dopiero po odłączeniu zasilania, lub bez uC w podstawce (jak się powinno robić) już jako 'programator FLASH PFP-01'.

    Obecnie więc nie jestem w stanie już nic zrobić - a port działa, tzn. drukarka i skaner działają bez zarzutu... Próbowałem wyłączać kompa na chwilę (co by się zmienił stan rejestrów LPT), ale nic nie pomagało.

    Pracuję na: Pentium 166, Win95, port jako SPP (jest dwukierunkowy), PortManager LT v1.1.3.

    Czy ktoś mógłby mi coś doradzić, co mam zrobić?
    W jaki sposób w ogóle program wykrywa i identyfikuje programator?

    Dołączam jeszcze programy, o których piszę powyżej (pliki *.BIN)...

  • #48 27 Mar 2005 17:25
    Nemo
    Poziom 31  

    Problem z weryfikacją programu zaczął się pojawiać coraz częściej. Obecnie jestem w trakcie sprawdzania przyczyn. Pierwotne wersje były testowane na 486/W95 i tam nie było żadnych problemów. Nawet pojedyncza różnica pomiędzy zawartością mikrokontrolera, a buforem była wykrywana. Jednakże przy szybszych maszynach i W98 problem z weryfikacją zaczyna narastać. Zaobserwowałem również sytuację, w której pusty mikrokontroler był weryfikowany na 0 BAD z pełnym buforem. Dziwne. Wynika z tego, że w programie jest gdzieś błąd, albo opóźnienia (wewnętrzne) są zbyt małe. Ciągle nad tym pracuję.

    Do tej pory można spróbować procedury, którą stosowałem od początku (kiedy jeszcze nie było weryfikacji). Odczytać sygnaturę, skasować, zapisać, a następnie odczytać do bufora i zapisać bufor na dysku. Następnie programem zewnętrznym, porównującym dwa pliki, dokonać weryfikacji. W większości przypadków będzie ona pozytywna.

    Wersja PM 1.1.4 jest ciągle na etapie prób. Obiecuję, że gdy tylko będzie zdatna do użytku, zostanie umieszczona na stronie.

    Pozdrawiam.

  • #49 27 Mar 2005 17:40
    Dykus
    Poziom 26  

    Nemo napisał:
    Do tej pory można spróbować procedury, którą stosowałem od początku (kiedy jeszcze nie było weryfikacji). Odczytać sygnaturę, skasować, zapisać, a następnie odczytać do bufora i zapisać bufor na dysku.

    Dziękuję za błyskawiczną odpowiedź.

    Proszę mi jeszcze podopowiedzieć jak mam to zrobić, tzn. program, nawet przy wyłączonym w BIOSie porcie LPT, wykrywa programator EEPROM, niezależnie od adresu i od tego, co jest podłączone do samego (wyłączonego lub wyłączonego) portu? :)

    Na innym komputerze wykrywanie działa poprawnie, czy więc program zapisuje gdzieś jakąś konfigurację, itp.?

    Jaki jest orientacyjny czas ukazania się poprawionej wersji programu (dzień, tydzień, miesiąc...)?

  • #50 27 Mar 2005 22:48
    Nemo
    Poziom 31  

    PM 1.1.3 nic nigdzie nie zapisuje. Fałszywe wykrywanie nieistniejących urządzeń to kolejny problem. Program nie sprawdza, czy port jest włączony, czy nie, tylko odczytuje daną wprost z portu. Jak widać odczyt jest jeszcze zbyt mało dokładny. To też postaram się poprawić.

    ETP dla PM 1.1.4 nie istnieje. W tej chwili poszukuję dostępu do lepszego kompilatora C++ i zamierzam dokonać nieco większych zmian w programie. Ale to wymaga czasu, którego mi ostatnio nie zbywa. :(

    Cierpliwości.

    Pozdrawiam.

  • #51 17 Kwi 2005 20:10
    yahoo82
    Poziom 11  

    moje pytanie jest moze troche glupie ale: czy ukladzik zadziala pod DOSem w trybie epp (chodzi o uklad nie o oprogramowanie), a jesli nie, to czy ktos ma uklad programatora i program z kodem zrodlowym ktory dziala po DOSem przy trybie EPP?

  • #52 17 Kwi 2005 22:23
    rdt
    Poziom 24  

    no no Michale
    Księciunio na elektronice by sie za glowe złapał ze go z pracy wygryziesz
    Szkoda ze tak pozno zobaczylem opis bo na piechote bym po tą plytke do Ciebie przyszedl (o ile nadal ze staruszkami mieszkasz)
    mam jeszcze pytanko - w programie port manager widze ze cos majstrowales z IIC - do czego to sluzy ?? ( nie samo I2C rzecz jasna a polecenie ?? )
    Zbudowales jakis programatorek do pamieci ??
    Jakby co to sie wybierzemy kiedys na jedno zmrużone (ze wzgledu na ustawe o wychowaniu w trzeżwości nie powiem jakie) to pogadamy
    aha - pozdrawiam Leny

  • #53 17 Kwi 2005 23:54
    Nemo
    Poziom 31  

    :arrow: rdt: Kija i walić... (A na PW to nie łaska???) ;)

    W PM obsługa IIC dotyczy drugiego programatora, właśnie do EEPROM'ów. Jest to konstrukcja opisana LINK: Tutaj. Dla niej właśnie jest przycisk IIC.
    Działa toto do pamięci AT24C512, bo dla wyższych nie testowałem. Jednakże obecnie uznaję ten projekt za "schyłkowy" - opracowaniu mam uniwersalny multiprogramator wszystkich EEPROM'ów - IIC, Microwire, SPI itd. Obsługiwać będzie i 5V i 3V układy, zwykłe i SMD. Taki projekt dla majstrowania w elektronice samochodowej i radiach. No, ale nie zmieści się we wtyczce. :)
    Projektu na Elektrodzie raczej nie będzie, bo konstrukcja raczej zbyt skomplikowana nie tylko w wykonaniu (układy SMD raster 0,5mm...), ale i w opisaniu. No, ale czas pokaże.
    Pozdrawiam.

    PS. Obsługa AT89Cx051 też w nim chyba będzie. :)

  • #54 10 Maj 2005 17:01
    Balu
    Poziom 38  

    zmontowałem twoj programator... podaje odpowiednie stany na nózki w podstawce (robiłem test z twojego programu). Próbowałem z opóźnieniem standardowym, 5, 8 , 10, 30, mam athlona2,3GHz, port ustawiony w spp. I w sumie program mowi ze wsio jest ok... programuje kostke, odczytuje... weryfikacja -> 0BAD.

    Ale wkladam kostke w podstawke w układzie i co następuje: na wszystkich portach są 1.
    Mam zrobiony układ resetu (kond 10u(elektrolit) miedzy reset i +, rezystor 8,5K miedzy reset i mase).
    I w sumie tyle program napisany w BASCOMIE kod:
    P3 = 0
    P1 = 0
    P1.3 = 1
    End
    I w sumie tyle on miał robić do testów.
    Pomóżcie jakoś bo nie mam pomysłu.
    Aha podczas tego testu przetwornicy jak pisalo czy pojawia się napięcie 12V zmierzone było 12,45V. Nie wiem czy to coś zmienia.

    Pozdrawiam i czekam na odpowiedź.
    PS. używam windowsa XP i programu userport

    UPDATE:
    Test przetwornicy (47KOhm w pin1-7 w podstawce) daje mi 7,75V w maxymalnym polozeniu potencjometru. Oco chodzi?

  • #55 11 Maj 2005 00:16
    Nemo
    Poziom 31  

    Zrób test z włożonym AT89C2051 i wtedy zmierz napięcie na pinie RESET. Jeśli będzie więcej, niż 11,5V to jest dobrze. Inaczej zmień dławik na lepszy (może ten, co używasz ma za małą indukcyjność).

    Poza tym zamiast weryfikacji po zaprogramowaniu układu odczytaj jego zawartość i zapisz gdzieś zawartość bufora. Następnie porównaj ten plik z oryginalnym *.BIN lub *.HEX (po przekonwertowaniu na *.BIN). Jeśli będą identyczne, to jest dobrze. Pisz, jakie rezultaty.

    Pozdrawiam.

  • #56 11 Maj 2005 00:41
    Balu
    Poziom 38  

    napiecie 12,57V, po odczytaniu bufora same fffffffki...
    W calych 2KB danych.
    Oczywiscie zapisywany plik zupewlnie inny (200B niecale).

  • #57 11 Maj 2005 10:18
    PtaQ from Trzebce
    Poziom 2  

    potwierdzam że nie ma errorów na schemacie

  • #58 11 Maj 2005 23:24
    Nemo
    Poziom 31  

    Odczyt wartości FF po zaprogramowaniu oznacza, że układ nie został w ogóle zaprogramowany lub nie można odczytać właściwych danych. Należy sprawdzić przełącznik Reset (czy podaje stan GND i Uprog) na pin 1 mikrokontrolera. Poza tym czy układ kontaktuje w podstawce i czy ma właściwe napięcie zasilające. Uprog nie powinno przekraczać 12,5V, zatem tu też można szukać przyczyny (mało prawdopodobne). Ponadto problemem może być mikrozwarcie na płytce, a przez to błędnie podawane komendy dla mikrokontrolera.
    Jako ostatnie należy sprawdzić, czy port LPT jest rzeczywiście dwukierunkowy. Tryb SPP nie zawsze wystarcza. W niektórych przypadkach okazywało się, że na nowych komputerach (AMD) programator nie pracuje. Wtedy należy zrobić test na innym komputerze dla porównania.
    Gdy wszystko powyższe jest dobre, należy poeksperymentować z opóźnieniem. To powinno pomóc.
    Pozdrawiam.

  • #59 24 Cze 2005 12:09
    ashpl
    Poziom 12  

    Witam, mam problem z tą przetwornicą, w teście gdy mam sprawdzić RST=1 12V to mam napięcie ok 4.7V :| max 6.7V. Wydaje mi sie że to przez te cewki bo niejestem pewien czy mam odpowiednie tzn. w sklepie podałem na kartce te informacje co są na schemacie i dostałem cewki takie co wygladają jak rezystory z tymi barwnymi paskami. Reszte testów przechodzi pozytywnie.

  • #60 28 Cze 2005 16:32
    Nemo
    Poziom 31  

    A na pewno nie zamieniłeś ich miejscami?

    Dławik 47uH jest tylko w filtrze i w tym miejscu większa wartość indukcyjności nie powinna przeszkodzić. Natomiast przy przetwornicy - dławik L1 MUSI być aż 1mH - ostatecznie 820uH. 6,7V to zdecydowanie zbyt mało (~tyle daje właśnie 47uH).

    Pozdrawiam.