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

Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99

operator5wp 14 Kwi 2010 15:26 7779 13
  • Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99


    Witam, przedstawiam nowy projekt - Sprzętowy emulator 89c2051/4051. Projekt powstał na bazie schematu z artykułu Praktyczny Elektronik 10/99 , który trochę przerobiłem na własne potrzeby. Dodałem większą pamięć ram oraz możliwość zapisu i odczytu za pomocą instrukcji "MOVX" , dzięki temu mogę używać emulatora do testowania programów na procesor 8051...Dodatkowo pod adresem od $f000...$ffff został przydzielony porty we/wy co daje możliwość podłączenia i testowania za pomocą kodu - układów sterowanych przez 8051... Natomiast z projektu usunąłem funkcje komparatora.

    Możliwości :
    - emulacja procesora - at89c2051/4051 - bez komparatora
    - emulacja procesora - 8051
    - zapis / odczyt pamięci - @movx
    - zakres pamięci dla kodu $0000-$EFFF - 64k
    - zakres dla portu we/wy $F000-$FFFF - sterowanie układami
    - funkcja wczytywania kodu w formacie intel hex
    - funkcja wczytywania kodu w formacie bin
    - funkcja komend testowych
    - transmisji kodu z szybkością - 38400 baud-rate

    Przykładowe fotki :

    Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99
    Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99 Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99 Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99
    Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99 Sprzętowy Emulator 89c2051 - modyfikacja z PE 10/99

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    operator5wp
    Poziom 16  
    Offline 
    operator5wp napisał 281 postów o ocenie 101, pomógł 0 razy. Jest z nami od 2003 roku.
  • PCBway
  • #2
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #3
    sobieraj_100
    Poziom 12  
    Fajny projekt ale mam jedną uwagę. Zamiast rs232 rozsądniej zaimplementować usb ( usb <-> rs232. Ogólnie wykonanie paskudne 1/4.
  • #4
    maxdutka
    Poziom 14  
    Ze tak zapytam: po co się bawić w robienie emulatora do poczciwej '51, skoro prawie każdy nowy uC ma JTAG-a?
  • PCBway
  • #5
    operator5wp
    Poziom 16  
    Nie dałem złącza USB bo i po co. Mam osobną przejściówkę do COM-USB więc emulator mogę podpiąć gdzie chcę i do nowego komputera jak i do starego. Może całość nie jest super ładna i nie musi być, ważne że działa i spełnia swoje zadanie, to nie jest konkurs piękności.
  • #6
    Villen
    Poziom 21  
    A po co buduje się takie emulatory?
    Do nauki programowania 8051 jest masa emulatorów softwareowych, a nie mogę wydedukować żadnego innego praktycznego zastosowania takiego emulatora.
  • #7
    jony15
    Poziom 23  
    Villen napisał:
    A po co buduje się takie emulatory?
    Do nauki programowania 8051 jest masa emulatorów softwareowych, a nie mogę wydedukować żadnego innego praktycznego zastosowania takiego emulatora.

    Też kiedyś zbudowałem emulator ( z PE ) chociaż program był własny, i powiem ci że później przy pisaniu programu bez porównania z przekładaniem "up" z programatora do docelowego układu. Co do całej konstrukcji, na własne potrzeby to najważniejsze ze działa. pozdrawiam.
  • #8
    operator5wp
    Poziom 16  
    Oczywiście, emulator taki pomaga w tworzeniu programu co nie zawsze softwarowy symulator może dać w czasie rzeczywistym. Oszczędza także czas i nerwy, nie trzeba za każdym razem programować procesora i przekładać z programatora i na odwrót, można od razu testować zbudowany układ na procesorze , po wczytaniu kodu do emulatora.
  • #9
    morph13
    Poziom 25  
    Konstrukcja godna polecenia.
    Sam osobiście gdy jeszcze wykonywałem dość dużo projektów z '51 z takiego emulatora korzystałem i bardzo szybko poznałem jego zalety. Chociaż by, odpada nużące przekładanie procka z PCB do programatora i nie tylko. A JTAG nie ma tu nic do rzeczy (rodzina '51).

    A czy się komuś podoba ta konstrukcja czy nie (być może brak różowego słonika na obudowie) to jego problem, najważniejsze że spełnia oczekiwania konstruktora.
  • #10
    maciej_333
    Poziom 34  
    Któraś tam wersja '51 o ile pamiętam w wykonaniu firmy Winbond ma JTAG i szybkość podobną do AVR. Jednak to zawsze '51, więc nigdy nie pozyskamy tej samej wydajności co w nowocześniejszych rodzinach mikrokontrolerów.
  • #11
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #12
    sq6ade
    Poziom 40  
    Villen napisał:
    A po co buduje się takie emulatory?
    Do nauki programowania 8051 jest masa emulatorów softwareowych, a nie mogę wydedukować żadnego innego praktycznego zastosowania takiego emulatora.


    Oj przydaje się i to bardzo. Błyskawicznie można sprawdzić czy układ działa w realu.
    Ładowanie danych trwa bardzo szybko - nie tak wolno jak przez ISP.
    Ten emulator również przerobiłem na AT89C4051 dokładając drugą pamięć RAM.
    Używam cały czas tego urządzenia.

    p.s.
    Soft do oryginalnej wersji (EMULAT) :
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=165253

    Modyfikacja do emulowania AT89C4051:
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=162682
  • #13
    operator5wp
    Poziom 16  
    Witam... Ostatnio znów przerabiałem swój emulator. Dodając dodatkowy ram o pojemności 32k, co umożliwiło mi na użytkowanie kodu od $0000-$efff a drugi ram jako data pod adresem $0000-$7fff lub $8000-$efff po wyborze zworek. Teraz mam możliwość emulowania kodu dla 80c51 lub 89c2051 wg ustawień.
  • #14
    operator5wp
    Poziom 16  
    Witam, mam problem od jakiegoś czasu mój emulator nie działa!!!, Sprawdzałem połączenie między PC - AT89c2051, to serial działa, pliki hex idą do procesora poprawnie ale już wgrany program nie działa w ramie z 8051. Testowałem piny w 2051 i ustawienia adresowania i port danych to ustawiają się poprawnie, bo w sofcie mam komendy do ustawiania portów p1 oraz p3 dla 2051. co pozwala mi debugować porty i próbnikiem logicznym sprawdzałem to jest ok. Wymieniłem pamięci na inną bo może myślałem że po poprzedniej przeróbce może coś się pokręciło ale zmiana pamięci nie pomogło. Po wgraniu programu do ram'u i zwolnieniu resetu program powinien sie wykonać ale tak nie jest. Na pinach 'ALE' - coś się zmienia, na 'PSEN' jest 2,25V zapewne też się coś zmienia ale nie mam oscyloskopu, na pinach 'XTAL' mam 2,5v i 1,33v. Na adresach tez coś się zmienia ale nie jest ten sam adres co powinien być w testowany programie. Testowałem tez inny model procesora 8051 ale efekt jest ten sam. Mam takie wrażenie że program w ramie nie jest odczytywany poprawnie i dlatego procesor źle odczytuje instrukcje lub program źle został wgrany. Jak to sprawdzić , pomocy !!!