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

Miniprogramator mikrokontrolerów AT89Cx051 na LPT

Nemo 29 Lut 2004 00:20 53959 145
  • Keywords: AT89C2051, AT89C1051, AT89C4051, PFP-01

    Co się odwlecze, to nie uciecze...

    Obiecałem programator małych Atmeli na LPT, no i wreszcie jest. Cały opis jest w pliku spakowanym w HTML'u, zaś program osobno. Układ jest sprawdzony i działa. Mam nadzieję, że będzie przydatny.

    Programator wymaga tylko jednego napięcia zasilającego 5V o wydajności np. 100mA np. z USB, albo Game Portu (programator pobiera około 10mA) i zapewnia wszystkie przewidziane przez producenta operacje. Zapis, odczyt, kasowanie, zapis bitów blokady i odczyt sygnatury. Dalszy opis w załączniku.

    Do projektu dostępne są płytki drukowane, jak w opisie.
    Wiadomość o płytkach drukowanych i kitach: Link: Kity i płytki.
    Pozdrawiam.

    Obsługa pod XP i 2000: Należy zainstalować taki programik, jak ten w linku. Dzięki niemu programator ożywa. Proszę o sygnały, czy to działa. http://www.vendetta.org/files/userport.zip

    PS. Wszelkie problemy z budową i eksploatacją proszę zgłaszać pod tym postem, aby inni też mogli się z nimi zapoznać. Wsparcie serwisowe zapewnione. :)
    Załączniki:
    • PM_LT112.zip (192.6 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • PFP-01.zip (278.28 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    O autorze
    Nemo
    Poziom 31  
    Offline 
    Specjalizuje się w: technolog chemiczny, konstruktor elektryk
    Nemo napisał 2078 postów o ocenie 72, pomógł 9 razy. Mieszka w mieście Radom. Jest z nami od 2003 roku.
  • #2 524695
    CosteC
    Poziom 39  
    Posty: 5316
    Pomógł: 399
    Ocena: 1642
    czy ktos to już zbudował? i czy działa pod XP? albo 2000? czy też tylko i jedynie pod 95 i 98?
  • #3 524697
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Działa pod W95 i W98, na innych nie był sprawdzany. Na XP być może, ale coś trzeba chyba doinstalować, ze względu na bezpośrednie odwołania do portów. Poza tym pisany jest pod Win16, a nie Win32.
    Pozdrawiam.
  • #4 527251
    Danieloos
    Poziom 25  
    Posty: 1059
    Pomógł: 82
    Ocena: 69
    kilka pytań co do tego jakim programem potraktować ten progamator
    moze miał bys schemat ideowy lub moze jestes w stanie wysłac za pobraniem orginalną płytke
    ja tam zabardzo nie widze druku pozdrawiam..
  • #5 528427
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    W pierwszym poście jasno napisałem: Wiadomości odnośnie płytek na PW. Kropka.
    Pozdrawiam.
  • #6 529171
    Akane
    Poziom 27  
    Posty: 638
    Pomógł: 144
    Ocena: 33
    alter, może ja piję za dużo kawy, ale nie widać nigdzie opcji OPEN! jak mam zaprogramować pamięć, skoro nie można żadnego pliku z dysku otworzyć
  • #7 531523
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Ależ jest. Tyle, że jej uaktywnienie wymaga sprawnego programatora w porcie LPT. Jeśli program nie znajdzie programatora, nie uruchomi się. Na schemacie jest dokładnie opisana budowa programatora. Wykonanie w 100% zgodnie ze schematem zapewnia jego poprawną pracę.
    Pozdrawiam.
  • #8 534119
    lechoo
    Poziom 39  
    Posty: 5161
    Pomógł: 377
    Ocena: 546
    Jakby trochę lepiej przemyśleć konstrukcję przetwornicy 5V/12V to byłby 1 scalak mniej...
  • #9 534872
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Proszę bardzo, zaproponuj. Najlepiej w tym temacie. Może z czasem powstanie wersja 1.1 programatora. Oczywiście, jeśli będzie większe zainteresowanie (obecne oceniam na 10%).
    Pozdrawiam.
  • #10 538620
    silvvester
    Poziom 25  
    Posty: 953
    Pomógł: 25
    Ocena: 161
    programator działa jak trzeba z uruchomieniem też nie ma większych problemów .
    sprawdzany na w98 , przy opóźnieniu 5 w ->system .
    :multi:
  • #11 641953
    amoc
    Poziom 11  
    Posty: 17
    Ocena: 1
    czy programator wspulpracuje z programem Bascom ?
  • #12 641981
    Yoshi
    Poziom 19  
    Posty: 294
    Pomógł: 14
    Ocena: 18
    amoc napisał:
    czy programator wspulpracuje z programem Bascom ?


    Witaj powinien,ponieważ w opcjach Programmer wybierasz External programmer wskazujesz ścieżkę dostępu do programu.
  • #13 644763
    szymonnn
    Poziom 11  
    Posty: 34
    Ocena: 3
    nie moge pobrac tych plikow,choc punkty mam,to gdy daje dowland, chce mi zapisac jako html. czy ktos moglbym i wyslac te 2 zipy na e-maila? bede wdzieczny:> robin321(_at_)wp.pl
  • #15 664863
    poomex
    Poziom 11  
    Posty: 40
    Pomógł: 1
    Ocena: 5
    Czy ktos sprawdzil czy ten programator dziala pod win xp i 2000, ewentualnie jaka jest procedura uruchomienia go na tych systemach?
  • #16 665266
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Obecna wersja programu, o ile mi wiadomo, nie chodzi na systemach tego rodzaju. Ale może komuś się to udało uruchomić na XP.
    Być może powstanie wersja wykorzystująca bibliotekę dlportio.dll (tak jak w PonyProg'u), ale na razie nie mam czasu na próby. Może w wakacje.
    Pozdrawiam.
  • #18 670492
    weweru
    Poziom 12  
    Posty: 92
    Ocena: 11
    pytanie może głupie, ale
    Jak działa z programem keil?
  • #19 674095
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Keil generuje plik *.hex (tak sądzę). Należy go przekonwertować na *.bin np. programikiem hex2bin. Jest w Internecie oraz należy do kitu.
    Pozdrawiam.
  • #20 822686
    UnLoved
    Poziom 12  
    Posty: 92
    Ocena: 6
    i czy nie dałoby się przypadkiem zmniejszyć ilość elementów przez wyrzucenie ze schematu tej przetwornicy i podłączenie normalnego zasilania 5V i 12V z zasilacza komputerowego? pozatym wydaje mi się że takie zasilanie z przetwornicy może robić jakieś błędy w programowaniu


    ps: czy można na upartego podłączyć zasilanie 5V normalnie z zasilacza komputerowego?
  • #21 823259
    Krzychu ADC
    Poziom 15  
    Posty: 97
    Pomógł: 9
    Ocena: 3
    Nie narzekaj UnLoved, jak ci się tamta płytka nie podoba to zmotujesz wszystko na uniwersalnej um5 w pare godzin. Przetwornica dziala dobrze (jestem pod wrażeniam) i niema potrzeby jej wymiany.

    A teraz byćmoże lamerskie pytaie, ale jestem początkujący: Rozumiem że pliki ze wsadami muszą być BIN (to że domyślnie szuka *.eep nie ma znaczenia)?
  • #22 823544
    UnLoved
    Poziom 12  
    Posty: 92
    Ocena: 6
    nie narzekam tylko się post nie zmienil a ja chcę sobie sam płytkę wytrawić tylko pytam się czy mogę podłšczyć obojętnie jakie +5V
  • #23 825236
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Rozszerzenie *.EEP pozostało jako relikt z poprzednich zastosowań programu. To jest to samo co *.BIN. W najnowszej wersji programu będzie to poprawione, a może nawet uda mi się dodać konwersję z *.HEX. Wszystko jest kwestią tygodni, bo na razie nie mam wolnej chwili, aby usiąść przy tym.
    Pozdrawiam.
    PS. Przetwornica była sprawdzana i liczona empirycznie - musi działać.
  • #24 908271
    adames80
    Poziom 18  
    Posty: 348
    Pomógł: 12
    Ocena: 10
    a wczym byl pisany ten program?i czy jest mozliwosc dostania kodu zrodlowego?
  • #25 908554
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Program był pisany w C++. 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... :)
    Pozdrawiam.

    PS. Na stronie w linku powyżej niedługo będzie dostępna nowa wersja programu sterującego (1.1.3a). Oprócz obsługi plików *.HEX będzie dodane kilka pożytecznych funkcji.
  • #26 985782
    synk
    Poziom 1  
    Posty: 1
    Zainteresował mnie temacik tego programatora.
    Jeszcze go nie używałem, ale.
    Jeżeli chodzi o Win XP i 2000.
    Do obsługi portów w borland c++ były jak wiemy komendy inportb i outportb. Akurat miałem problem do dostania się bezpośrednio do portów z środowiska Borland C++ Builder 6.0 bo powyższe komendy zostały wycowane.
    Problem rozwiązałem stosując bibliotekę dynamiczną inpout32.dll.
    Jeżeli dołączymy ją dynamicznie albo statycznie do naszego programu udostepnia komendy które pozwalają zapisać bezpośrednio do portów odpowiednie wartości.
    A skoro można obsługiwać łącze równoległe odwołując sie do numeru portu złącza np. $378H to używając w/w biblioteki będzie można to zrobić pod win XP i 2000.

    szczegółowe informacje można znaleźć pod adresem:
    http://www.logix4u.net/inpout32.htm

    na tej stronie można znaleźć bibliotekę, szczegółowe info na jej temat, sposób użycia a co więcej również jej kod źródłowy.

    na wszelki wypadek załączam całość spakowaną.

    Mam nadzieje, że te informacje się komuś do czegoś przydadzą :D

    PS. nie używałem jej pod win XP i 2000, ale dostęp portu karty pomiarowej której używam do własnych celów działa bez zarzutu pod win 98.
    Załączniki:
    • inpout32_source_and_bins.zip (264.82 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #27 1003298
    Cudnny
    Poziom 11  
    Posty: 33
    Ocena: 5
    Witam!!
    Mam pytanie czy tym programatorem moge programować biosy w kompie!! Potrzebuje mału programato do biosów!!??
  • #28 1004517
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Tak jak napisałem wyżej, programator programuje wyłącznie mikrokontrolery AT89C1051, AT89C2051 i AT89C4051 - nic więcej. Do BIOS'ów trzeba innego programatora.
    Pozdrawiam.
  • #29 1023492
    Guma1975
    Poziom 14  
    Posty: 75
    Pomógł: 6
    Ocena: 24
    Witam!
    Zrobiłem to coś i od razu mam pytanie dotyczące działania tego programu.
    Testowałem to na płycie MSI k7n2 ustawienia portu LPT na SPP, EPP oraz na laptopie 485 hinote ultra C-475 tj. 486 dx75MHz tam była opcja bidirectional / ps2 w biosie jeśli chodzi o LPT niestety w żadnym wypadku program nie wykrywał układu 89c2051 oraz sprawdzałem aby coś zaprogramować i nic.
    Po odczycie nic nie było.
    TEST który tam jest po przeprowadzeniu i pomiarach było OK.
    W TEST jest chyba błąd bo jak wziąłem OK po kolei i trafiłem na "teraz 12V przetwornica włączona" jest 12V, a potem powinno być "przetwornica wyłączona i 0 V" a jest przetwornica włączona 12V itd.
    Podczas programowania, miernikiem stwierdzam 12.6V(potem zero) na pin1 lecz nic poza tym układ się nie programuje! oczywiście najpierw wczytuje plik bin z rozszerzeniem zmienionym na eep
    Sprawdziłem już wszystkie połączenia i nawet poziomy napięć podawanych w TEST były OK więc nie wiem o co chodzi!!!
    Przerobiłem troche układ prosze spojrzeć, lecz myślę że to działa jak należy stan wysoki na 12V_ON włącza 12V
    Proszę o pomoc!
    Dołączam schemat z moją przeróbką polegająca na wyeliminowaniu przetwornicy (zasilam całość z 15V stab. na 12 oraz na 5)
    Jeszcze jedno czy nie ma błędów w schemacie połączeń?
    czy pin 11 LPT ma być połączony z pin 9 LPT czyli D7 oraz czy podciągnięte poprzez rezystory 22k do 5V mają być tylko D0 i D1 ??
    Proszę o wyjaśnienia czemu to nie działa ??
    czy do resetu układu 89c2051 potrzebna jest zwłoka pinu 1 z poziomu 12V na zero (do masy) czy może być tak jak po mojej przeróbce ?
    Pozdrawiam i czekam na wsparcie.
    Załączniki:
    • Miniprogramator mikrokontrolerów AT89Cx051 na LPT schematG.gif (19.35 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #30 1026553
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Układ zbudowany zgodnie ze schematem umieszczonym w pierwszym poście działa na 100%. Na żadne przeróbki nie daję gwarancji, gdyż sam ich nie robiłem i nie testowałem. Program działa z takim układem, jak na schemacie.

    Zwykle problemem jest ustawienie opóźnienia w programie. Spróbuj dać większe - a wtedy układ powinien być wykrywany. Co zaś się tyczy dwukierunkowości - zrobiłeś test z rezystorem na porcie LPT (opisany w dokumentacji z pierwszego postu)?

    W opcji TEST błędu nie ma. Testowałem przy jego pomocy swój programator (testowali też inni użytkownicy) i nikt nie znalazł tam błędu. Być może Twoja przeróbka powoduje to niewyłączanie.

    RESET dla układu działa również tak, jak opisano w dokumentacji (poziom GND praca, 5V reset, 12V programowanie). Aby był zresetowany trzeba dać najpierw GND, a potem 5V. Na schemacie błędów nie ma.

    Twoja przeróbka nie jest w stanie podać napięcia 5V na nogę RESET mikrokontrolera. I tu masz błąd. :)

    Pozdrawiam.

Podsumowanie tematu

✨ Dyskusja dotyczy programatora mikrokontrolerów AT89Cx051 (w tym AT89C2051, AT89C1051, AT89C4051) z interfejsem LPT, zasilanego napięciem 5V (np. z USB lub GamePortu) oraz wykorzystującego przetwornicę 5V/12V do generowania napięcia programującego 12V. Programator obsługuje operacje zapisu, odczytu, kasowania, zapisu bitów blokady i odczytu sygnatury. Wymaga dwukierunkowego portu LPT, najlepiej ustawionego w trybie SPP, EPP lub Normal, a pod systemami Windows XP/2000 konieczne jest zainstalowanie sterownika UserPort (userport.sys) umożliwiającego dostęp do portu LPT. Problemy z działaniem pod XP/2000 wynikają z braku natywnego dostępu do portów i konieczności stosowania dodatkowego oprogramowania.

Wielokrotnie poruszano kwestie konfiguracji portu LPT w BIOS-ie (ustawienia Bi-Directional, EPP, SPP), opóźnień w programie (zalecane zwiększenie opóźnienia do 30-300 ms na szybszych maszynach), oraz poprawności montażu i zgodności elementów, zwłaszcza przetwornicy napięcia i układu resetu. Przetwornica wymaga dławika o indukcyjności około 1mH i tranzystora BC550C (nie BC550B), a napięcie 12V na pinie RESET mikrokontrolera musi być stabilne i odpowiednio przełączane. W niektórych przypadkach stosowano przeróbki układu, zastępując przetwornicę kluczem tranzystorowym i zasilaniem 12V z zewnętrznego źródła.

Programator nie obsługuje programowania BIOS-ów ani innych mikrokontrolerów poza serią AT89Cx051. Występują problemy z weryfikacją zapisu na szybszych komputerach (powyżej 2 GHz), przesunięciem adresów w pamięci (offset), oraz fałszywym wykrywaniem urządzeń przy wyłączonym porcie LPT. Autor planuje wydanie nowszych wersji oprogramowania (PortManager LT 1.2.x), które mają poprawić obsługę opóźnień, kompatybilność z XP, automatyzację programowania (np. jeden przycisk do wykrywania, kasowania, programowania i weryfikacji) oraz obsługę plików HEX.

Dyskusja zawiera także wskazówki dotyczące testowania portu LPT (pomiar napięcia na rezystorze 20k-47kΩ), konieczności prawidłowego działania przycisku RESET, oraz ryzyka uszkodzenia portu LPT przy nieumiejętnym montażu. Wspomniano o problemach sprzętowych na niektórych płytach głównych (zwłaszcza z procesorami AMD), gdzie napięcie na wyjściach portu LPT jest niższe (około 3,3V), co wymaga przeróbek programatora opisanych w dokumentacji.

Nie ma wersji programatora z interfejsem USB – USB służy jedynie do zasilania. Autor zachęca do kontaktu w sprawie rozwoju oprogramowania pod inne systemy (Linux) i ewentualnych modyfikacji sprzętowych.

Podsumowując, programator jest prostym, tanim urządzeniem do programowania mikrokontrolerów AT89Cx051 przez port LPT, wymagającym odpowiedniej konfiguracji sprzętowej i programowej, z aktywnym wsparciem i planami rozwoju oprogramowania poprawiającego kompatybilność i funkcjonalność.
Wygenerowane przez model językowy.
REKLAMA