eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaEksperymenty ze starymi procesorami - MOS6502Re: Eksperymenty ze starymi procesorami - MOS6502
  • Data: 2018-06-10 21:49:04
    Temat: Re: Eksperymenty ze starymi procesorami - MOS6502
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Udało mi się złożyć prosty komputerek z MOS6502AD. W tej chwili
    konfiguracja wygląda następująco:
    - 32kB RAM, adresowany bezpośrednio (pierwsza połowa przestrzeni adresowej).
    - 16 kB pamięci EPROM (ostatnia ćwiartka przestrzeni adresowej)
    - dekoder adresów na układach TTL-LS
    - szyna adresowa buforowana przez dwa układy 74LS245
    - port równoległy 8255
    Poza tym na płytce znajdują się na razie nie obsadzone podstawki pod:
    - dodatkowy chip pamięci RAM, dostępny jako cztery banki po 8kB
    - port wyjściowy na 74LS373 do sterowania powyższym
    - timer 8253 oraz UART 8251

    Sygnały !WR oraz !RD na potrzeby pamięci oraz intelowskich peryferiów są
    generowane przez następujący układ:
    http://wilsonminesco.com/6502primer/RDnotWRnotCkt.jp
    g

    Podczas wstępnego rozruchu nie obyło się bez wpadki - okazało się, że
    odwrotnie podłączyłem zasilanie do 8255. Popłynął za dużo prąd - nie na
    tyle duży, żeby przepalić 3A bezpiecnzik, ale drucik wewnątrz się lekko
    rozżarzył. Na wszelki wypadek po tym incydencie wymieniłem 8255 i CPU na
    inne egzemplarze.

    Na chwilę obecną układ przeszedł test "pracy na luzie" - podciągnąłem
    linie danych za pomocą rezystorów, układając wartość 0xEA (NOP). Szyna
    adresowa w tej sytuacji zachowuje się prawidłowo - na kolejnych liniach
    pojawiają się impulsy o dwa razy większej długości niż na linii
    poprzedniej. Dekoder adresów w tej sytuacji także zdaje się działać
    prawidłowo, generując impulsy stanu niskiego we właściwej sekwencji.

    Natomiast za nic nie udało mi się uruchomić programu. W EPROM-ie siedzi
    w tej chwili coś takiego:

    CTRLREG EQU $9000
    PA_8255 EQU $9200
    PB_8255 EQU $9201
    PC_8255 EQU $9202
    CONF_8255 EQU $9203

    .ORG $C000
    INIT:
    LDX #$FF
    TXS
    LDA #$80
    STA CONF_8255 ;tryb 0, wszystkie porty wyjsciowe
    LOOP:
    LDA #$01
    STA PA_8255
    JSR DELAY
    LDA #$00
    STA PA_8255
    JSR DELAY
    JMP LOOP
    DELAY:
    LDY #$FF
    DELAY_LOOP1:
    LDX #$FF
    DELAY_LOOP2:
    DEX
    BNE DELAY_LOOP2
    DEY
    BNE DELAY_LOOP1
    RTS
    IRQ:
    RTI

    NMI:
    RTI
    .ORG $FFFA
    DW NMI
    DW INIT
    DW IRQ

    Program powinien "machać" stanem pinu PA0 układu 8255. Niestety, nie
    robi tego. Oscyloskop pokazuje aktywność na liniach adresowych i danych,
    a także na !WR !RD. Niestety linia CS sterująca 8255 jest nieaktywna,
    podobnie jak wszystkie linie z obszaru I/O. Podczas pracy "na luzie"
    linie te regularnie przełączały się na moment w stan niski.

    Wstępnie sprawdziłem połączenia, przedzwaniając połączenia multimetrem.
    Sprawdziłem też inny EPROM.

    Ktoś ma jakiś pomysł? Może błąd tkwi w moim kodzie?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: