Motorola 68000 - przyjęcie przerwania IPL1/IPL2

Czy jest tu między nami ktoś zaraz po szkole co pamiętałby wykłady z procesora 68EC000? :-)) Próbuję w swoim urządzeniu zgłosić przerwanie procesora liniami IPL1 i IPL2 (AVEC=H) i mi skubaniec próbuje czytać wektor spod adresów 158H/15AH czyli spod "user interrupt vectors" zamiast spod adresu

64H-7fH gdzie umieściłem sobie swoje wektory. Oczywiście procek czyta FFFF, FFFF z czystego miejsca w ROM i idzie w maliny, a dokładniej generuje "address error" i po zrzuceniu na stos standardowych 7 słów skacze do 000CH. Co jest grane? Ktoś może pamięta jak tą motorolkę dopieścić?
Reply to
Pszemol
Loading thread data ...

(ciach)

A nie trzeba wysterować lini VPA = 0 żeby 68k odczytywała wektory spod adresów wynikających z autowektorów? Wtedy dla IPL1 = 0 i IPL2 = 0 adres wynosiłby 78h (autowektor poziom 6). Nie wiem czy dobrze rozumuję, niech mnie ktoś poprawi:)

Pozdrawiam Marek N.

Reply to
Marek N.

Dokładnie tak. Dla przerwań autowektorowych $64-$7C trzeba wysterować VPA

Pozdrawiam PinkF_

Reply to
PinkF_

Coś mi się tu nie zgadza... A dokładniej: nie mam linii VPA... Mój procesor to dokładnie jest MC68EC000CFU20, obudowa QFP64.

formatting link
30. Ma skubany inne sygnały zewnętrzne niż M68000/M68HC000... Chyba nie obejdzie się bez dogłębnego przestudiowania manuala ;-)

Reply to
Pszemol

Okazuje się, że mój procesor (M68EC000) ma specjalną linię AVEC do sterowania trybem autovector. Ja mam ją podpiętą w stanie nieaktywnym na stałe, a więc okazuje się, że procesor w cyklu przyjęcia przerwania wystawia FC[2..0] high i A[19..16] high i oczekuje na szynie danych numeru wektora przerwań z tablicy. Tak się składa, że tuż przed tą fazą na szynie danych było 56h i ponieważ reszta urządzenia była wyłaczona dla adresów/FC z cyklu IACK to te 56h pozostało na pojemnościach szyny danej wiszącej w stanie wysokiej impedancji, co odczytał sobie procesorek i skoczył do czytania adresu obsługi przerwania w pamięci 56h*4 = dokładnie moje 158h :-) Wszystko już jasne.

Dodałem zatem układ wykrywający IACK i wystawiający na szynę danych 1Ah czyli numer wektora dla Level 2 Interrupt Autovector :-) Piękna jest sprawa pracować z FPGA - wszystko jest takie elastyczne i można zmienić układ bez lutownicy :-)) Wszystko działa nareszcie jak należy :-)))

Reply to
Pszemol

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.