Zainspirowany wątkiem "Komputer 8-bitowy" jethrotulla, postanowiłem pogrzebać tu i tam w poszukiwaniu scalaków na których zaczynałem moją przygodę z komputerami (od razu na PC XT, jakoś ominęły mnie 8bitowce) oczywiście w celu budowy jakiegoś starocia. U mnie nie zawsze wszystko idzie w rozsądnej kolejności, więc budowę komputera zaczynam od peryferiów, a sam procesor wybiorę sobie później.
Ku niezadowoleniu niektórych Kolegów nie będzie "koszerności", "scalaków tylko z epoki", "tylko oryginałów NOS", uzasadnienie jest proste - BO TAK!
Tak więc jeżeli sercem płytki będzie retro scalak, nawet z wylutu, to na 100% będzie otoczony współczesnymi układami i elementami SMD - uzasadnienie jest jeszcze prostsze niż poprzednio - BO TAK!
Jak wygodniej będzie mi użyć GALi, to bez wahania to zrobię - BO TAK!
Moduły będą uniwersalne, więc można je będzie stosować z większością procesorów oraz sposobów montażu. Nie przepadam za drutowaniem, więc wszystko będzie na pcb, nie będzie złącz krawędziowych, tylko listwy SIP, w rozstawie 100mils, aby dało się korzystać z płytek stykowych, prototypowych i w miarę szybko testować i adaptować do własnych rozwiązań. Opierać się będę na rozwiązaniach Intelowych dedykowanych do 80xx oraz specjalizowanych, ale jeszcze w miarę łatwo dostępnych i niedrogich peryferiach.
Wszystkie moduły będą miały wygodny mały format 2500x1700 mils, dwa otwory mocujące M3 i dwie kątowe listwy SIP10 (2.54mm) do wyprowadzenia 8-bitowej szyny danych i szyny sterującej. Sygnały wyjściowe, będą wyprowadzone na rozłączalne listwy śrubowe, złącza IDC lub Grove. Moduły będą uproszczone do niezbędnego minimum, część funkcji (pełna adresacja, obsługa przerwań) przejmie płytka bazowa (backplane), ponieważ w zależności od typu magistrali konieczne może być dopasowanie/przedekodowanie sygnałów sterujących. Wszystkie moduły mają zarezerwowane 8 adresów A0..A2, to wystarcza dla peryferiów, sygnały sterujące to !RES (reset), !CS (wybór modułu), !RD (odczyt modułu), !WR (zapis modułu), jeżeli moduł generuje przerwanie !INT to też zostanie wyprowadzone. Wszystkie sygnały są w konwencji logiki zanegowanej. Moduły zasilane są napięciem 5V, pobór prądu zależy od konkretnego modułu, ale przewiduje tylko scalaki w wersji CMOS, więc dramatu nie powinno być. Sygnał reset jest buforowany w każdym module bramką z wejściem Schmitta, co ułatwia także ręczny restart modułu. Sygnał !INT także jest buforowany, a zastosowanie dodatkowej bramki "single logic" umożliwia wybór we własnym zakresie aktywnej logiki ujemnej/dodatniej lub zastosowanie wyjście OD, dla sumy na "drucie" dla prostej generacji zbiorczego przerwania.
Schemat połączeń magistrali:
Tyle tytułem wstępu, płytki do pierwszych opracowanych modułów już dotarły z JLC, jedna już się testuje, więc wyniki i dokumentację będę wrzucał w ramach postępu prac. Cała dokumentacja jest otwarta, można korzystać do własnych celów, do zarobkowych tylko po wpłacie donacji na konto forum.
Kilka płytek, w kolejce do lutowania i testów:
Moduły DIY do retro-komputera
Moderatorzy: gsmok, Romekd, tszczesn, OTLamp, Einherjer
-
traxman
- 125...249 postów

- Posty: 209
- Rejestracja: wt, 13 stycznia 2026, 06:36
Moduły DIY do retro-komputera
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
jethrotull
- 3125...6249 postów

- Posty: 4057
- Rejestracja: sob, 3 czerwca 2006, 21:51
- Lokalizacja: Poznań
Re: Moduły DIY do retro-komputera
Piękne płytki.
Będzie jakieś repozytorium na GitHubie na projekty płytek i oprogramowanie?
Będzie jakieś repozytorium na GitHubie na projekty płytek i oprogramowanie?
-
traxman
- 125...249 postów

- Posty: 209
- Rejestracja: wt, 13 stycznia 2026, 06:36
Re: Moduły DIY do retro-komputera
Gita znam tylko ze słyszenia, będe wrzucał tu na forum w miarę postępów, a wczoraj zanotowałem krok wstecz...
PS. Pogrzebałem w starych moich archiwach i znalazłem kilka projektów płytk z 80c31, 80C535, z dawnych projektów.
PS. Pogrzebałem w starych moich archiwach i znalazłem kilka projektów płytk z 80c31, 80C535, z dawnych projektów.
-
traxman
- 125...249 postów

- Posty: 209
- Rejestracja: wt, 13 stycznia 2026, 06:36
Re: Moduły DIY do retro-komputera
Pierwszą z kart rozszerzeń będzie moduł LPT (równoległy port drukarki) oparty o specjalizowany kontroler 82C11x. Układ oczywiście od dawna nie jest produkowany, ale bez problemu można go pozyskać ze złomowanych kart LPT, a nawet kupić w kilku miejscach, za w miarę rozsądne pieniądze.
Specjalizowany kontroler brzmi to groźnie, a tak naprawdę to kilka rejestrów i bram pod trzema adresami umożliwiające wymianę 8 bitowej danej (82C11X port ma dwukierunkowy, można więc też coś odczytać) oraz kilku sygnałów sterujących i monitorujących pracę drukarki. Układ można było zrealizować na podstawowych układach 573/245/138, ale zależało mi na małym rozmiarze, a poza tym moduły służyć mają też do testowania scalaków podczas napraw retro PC.
Dzisiaj, co prawda drukarka z interfejsem LPT Centronics spotykana jest naprawdę rzadko, ale moduł w dalszym ciągu jest użyteczny, bo 82C11 może zostać wykorzystany jako zwykłe GPIO, a drivery maja większą wydajność prądową niż klasyczne układy LS/TTL - zresztą na tym porcie zbudowałem swoje pierwsze urządzenia podłączone do PC, kartę IO sterująca wagą samochodową oraz emulator EEPROM. Układ pracuje w klasycznej aplikacji przedstawionej na schemacie. Aplikacja nie odbiega od proponowanej przez producenta. 82C11 występuje w kilku wersjach A,B,C, różniących się budową portu 8-bitowego, wersja A ma wbudowane rezystory podciągające do 5V o wartości 4.7k, wersja C o wartości 1.5k, a wersja B jest ich pozbawiona - dlatego na płytce przewidziałem miejsce na drabinkę rezystorową RP1 w podstawce SIL9. Jeżeli posiadamy wersję 82C11B, wkładamy w podstawkę drabinkę 4.7k, pozostałe działają bez RP1. Opcjonalnie można zamontować na stałe rezystory R3..10, gdy używamy tylko wersji B. Zestaw kondensatorów na liniach danych zmniejsza zakłócenia EMC. 82C11 jest o tyle wygodny w użyciu, że poza odsprzęganiem nie wymaga elementów zewnętrznych.
Dodatkową cechą układu jest wbudowany oscylator i dzielnik /10, które w module są niewykorzystane, a w kartach zintegrowanych LPT/COM służyły jako źródło częstotliwości taktowania dla UART. Dodatkowy dzielnik umożliwiał zastosowanie łatwo dostępnego i taniego kwarcu 18.432MHz w miejsce wymaganego np.: przez 16C450 kwarcu 1.8432MHz. Układ uzupełnia bufor U2 sygnału zerowania nRES oraz bufor sygnału przerwania INT. W zależności od zastosowanego typu U3, możliwe jest zanegowanie sygnału (logika dodatnia w której pracuje np.: popularny kontroler przerwań 82C59) lub zmiana typu wyjścia na OD, co ułatwia mnożenie po "drucie" z przerwaniami z pozostałych modułów. 8-bitowa magistrala danych wyprowadzona jest na złącze DATA, sygnały adresowe A0,1 i sterujące nCS, nWR, nRD, nRES i nINT na złącze sterowania CTRL. Sygnały portu LPT wyprowadzone są na złącze IDC26, w kolejności zgodnej ze wyprowadzeniami DB25, chwilowo trzeba niestety kabelek zrobić we własnym zakresie, później przewiduje złącze LPT/COM na płycie bazowej lub na osobnych PCB (COM, będzie wymagał drivera). UWAGA, nie każdy fabryczny przewód jest tak połączony, trzeba przemierzyć przed użyciem i/lub przelutować. Zwora V50 powinna zostać rozlutowana. Gdy chcemy użyć modułu jako GPIO, można ją wlutować, a lepiej zastąpić bezpiecznikiem polimerowym 250mA 0603 wtedy możemy wyprowadzić zasilanie +5V do podłączonego układu
Montaż przedstawiają rysunki. Gerbery w załączeniu. A tak wygląda gotowy moduł i przewód IDC26/DB25. Nie polecam wyprowadzania taśmy bezpośrednio do złącza Centronics36, przewód będzie za ciężki i bez ekranu, co może mieć zgubne skutki.
Moduł przetestowany z Arduino Mega, ale tylko na analizatorze logicznym, bo moja OKI postanowiła umrzeć (też se wybrała czas...) i wylądowała na elektrośmieciach. Układ jest tak prosty, że można go przetestować także przy pomocy przełącznika DIP i LED, zadając odpowiednio adres A0,1 (00 to brama 8bit), aktywując nCS=0 i odpowiednio odczytując nRD=0 lub zapisując nWR=0 (zbocze 0/1), co nie jest może specjalnie wygodne, ale możliwe. Dokumentacji 82C11 nie zamieszczam, bo mam tylko skan z wymiętolonego katalogu o skandalicznej jakości, jeżeli Ktoś ma lepszy to bardzo proszę o namiary.
Specjalizowany kontroler brzmi to groźnie, a tak naprawdę to kilka rejestrów i bram pod trzema adresami umożliwiające wymianę 8 bitowej danej (82C11X port ma dwukierunkowy, można więc też coś odczytać) oraz kilku sygnałów sterujących i monitorujących pracę drukarki. Układ można było zrealizować na podstawowych układach 573/245/138, ale zależało mi na małym rozmiarze, a poza tym moduły służyć mają też do testowania scalaków podczas napraw retro PC.
Dzisiaj, co prawda drukarka z interfejsem LPT Centronics spotykana jest naprawdę rzadko, ale moduł w dalszym ciągu jest użyteczny, bo 82C11 może zostać wykorzystany jako zwykłe GPIO, a drivery maja większą wydajność prądową niż klasyczne układy LS/TTL - zresztą na tym porcie zbudowałem swoje pierwsze urządzenia podłączone do PC, kartę IO sterująca wagą samochodową oraz emulator EEPROM. Układ pracuje w klasycznej aplikacji przedstawionej na schemacie. Aplikacja nie odbiega od proponowanej przez producenta. 82C11 występuje w kilku wersjach A,B,C, różniących się budową portu 8-bitowego, wersja A ma wbudowane rezystory podciągające do 5V o wartości 4.7k, wersja C o wartości 1.5k, a wersja B jest ich pozbawiona - dlatego na płytce przewidziałem miejsce na drabinkę rezystorową RP1 w podstawce SIL9. Jeżeli posiadamy wersję 82C11B, wkładamy w podstawkę drabinkę 4.7k, pozostałe działają bez RP1. Opcjonalnie można zamontować na stałe rezystory R3..10, gdy używamy tylko wersji B. Zestaw kondensatorów na liniach danych zmniejsza zakłócenia EMC. 82C11 jest o tyle wygodny w użyciu, że poza odsprzęganiem nie wymaga elementów zewnętrznych.
Dodatkową cechą układu jest wbudowany oscylator i dzielnik /10, które w module są niewykorzystane, a w kartach zintegrowanych LPT/COM służyły jako źródło częstotliwości taktowania dla UART. Dodatkowy dzielnik umożliwiał zastosowanie łatwo dostępnego i taniego kwarcu 18.432MHz w miejsce wymaganego np.: przez 16C450 kwarcu 1.8432MHz. Układ uzupełnia bufor U2 sygnału zerowania nRES oraz bufor sygnału przerwania INT. W zależności od zastosowanego typu U3, możliwe jest zanegowanie sygnału (logika dodatnia w której pracuje np.: popularny kontroler przerwań 82C59) lub zmiana typu wyjścia na OD, co ułatwia mnożenie po "drucie" z przerwaniami z pozostałych modułów. 8-bitowa magistrala danych wyprowadzona jest na złącze DATA, sygnały adresowe A0,1 i sterujące nCS, nWR, nRD, nRES i nINT na złącze sterowania CTRL. Sygnały portu LPT wyprowadzone są na złącze IDC26, w kolejności zgodnej ze wyprowadzeniami DB25, chwilowo trzeba niestety kabelek zrobić we własnym zakresie, później przewiduje złącze LPT/COM na płycie bazowej lub na osobnych PCB (COM, będzie wymagał drivera). UWAGA, nie każdy fabryczny przewód jest tak połączony, trzeba przemierzyć przed użyciem i/lub przelutować. Zwora V50 powinna zostać rozlutowana. Gdy chcemy użyć modułu jako GPIO, można ją wlutować, a lepiej zastąpić bezpiecznikiem polimerowym 250mA 0603 wtedy możemy wyprowadzić zasilanie +5V do podłączonego układu
Montaż przedstawiają rysunki. Gerbery w załączeniu. A tak wygląda gotowy moduł i przewód IDC26/DB25. Nie polecam wyprowadzania taśmy bezpośrednio do złącza Centronics36, przewód będzie za ciężki i bez ekranu, co może mieć zgubne skutki.
Moduł przetestowany z Arduino Mega, ale tylko na analizatorze logicznym, bo moja OKI postanowiła umrzeć (też se wybrała czas...) i wylądowała na elektrośmieciach. Układ jest tak prosty, że można go przetestować także przy pomocy przełącznika DIP i LED, zadając odpowiednio adres A0,1 (00 to brama 8bit), aktywując nCS=0 i odpowiednio odczytując nRD=0 lub zapisując nWR=0 (zbocze 0/1), co nie jest może specjalnie wygodne, ale możliwe. Dokumentacji 82C11 nie zamieszczam, bo mam tylko skan z wymiętolonego katalogu o skandalicznej jakości, jeżeli Ktoś ma lepszy to bardzo proszę o namiary.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
Einherjer
- 2500...3124 posty

- Posty: 3035
- Rejestracja: pt, 22 stycznia 2010, 18:34
- Lokalizacja: Wałbrzych
Re: Moduły DIY do retro-komputera
Znalazłem tylko dokumentację firmy UMC, w załączniku.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
traxman
- 125...249 postów

- Posty: 209
- Rejestracja: wt, 13 stycznia 2026, 06:36
Re: Moduły DIY do retro-komputera
Ta ma lepszą jakość od mojego skanu, dzięki.
-
traxman
- 125...249 postów

- Posty: 209
- Rejestracja: wt, 13 stycznia 2026, 06:36
Re: Moduły DIY do retro-komputera
Druga kartą będą programowane GPIO, czyli niezbędnik. Układ zbudowany jest w oparciu o programowalny interfejs peryferiów 82C55. Dzisiaj "programowalność" interfejsu budzi uśmieszek, ale w dalszym ciągu jest to w pełni funkcjonalny układ składający się z trzech 8-bitowych portów IO: PA, PB, PC. Konfiguracja określana jest w rejestrze konfiguracyjnym. Porty PA, PB funkcjonują jako ośmiobitowe, port PC podzielony jest na 2x4bity, domyślnie po resecie wszystkie porty ustawione są jako wejściowe. Układ ma trzy tryby pracy, najczęściej używany jest tryb 0, gdzie określa się kierunek transmisji w portach PA, PB, w porcie PC można dodatkowo można ustalić kierunek osobno dla PC0..3 (skojarzone z PB) i PC4..7 (skojarzone z PA), wymiana danych odbywa się bez potwierdzeń, dane wyjściowe są zatrzaskiwane w rejestrach wyjściowych, dane wejściowe nie są zapamiętywane (tylko brama jak 245). Tryby 1 i 2 są przeznaczone do jedno i dwukierunkowej transmisji z potwierdzeniami, np. przy realizacji równoległego interfejsu drukarki (LPT). Schemat modułu nie odbiega od noty aplikacyjnej:
82C55 nie wymaga oprócz odsprzęgania żadnych elementów zewnętrznych. Układ uzupełnia bufor U2 sygnału zerowania nRES. Układ nie posiada "jawnego" pinu przerwania, więc sygnał !INT jest niepodłączony. 8-bitowa magistrala danych wyprowadzona jest na złącze DATA, sygnały adresowe A0,1 i sterujące nCS, nWR, nRD, nRES na złącze sterowania CTRL. Wydajność prądowa pinu to 2.5mA, co jest wartością sporo niższą niż oferują współczesne serie HCT, LVC, ale umożliwia wysterowanie tranzystorów, poziomy logiczne odpowiadają TTL. Porty PA..PC wyprowadzone są na złącza IDC10 wraz z zasilaniem 5V. Należy pamiętać, że zastosowany układ wykonany jest w technologii CMOS i jest czuły na ESD. Ze względu na uniwersalność IO pozbawione są dodatkowych rezystorów pullup/down i pozostawione niepodłączone mogą generować fałszywe stany. Odpowiednią polaryzację należy zapewnić w układzie współpracującym, nieużywane porty, można ustawić jako wyjścia ze stanem logicznym 0. Niektórzy producenci wbudowują układy podtrzymujące w swoje wersje 82C55, ale moje doświadczenie z odległej przeszłości sugeruje własne rezystory polaryzujące na wejściach i dodatkowe buforowanie wyjść, szczególnie, gdy podłączone są do dłuższych ścieżek/przewodów, przeładowanie pojemności nie jest mocną stroną tych scalaków. Co gorsza pamiętam, że każdy niepodłączony port zachowywał się inaczej, port PA był najbardziej odporny, PC, PB zachowywały się jak czujniki dotykowe, wystarczyło kilka cm ścieżki/drutu...
Montaż przedstawiają rysunki. Gerbery w załączeniu. A tak wygląda gotowy moduł: W zasadzie moduł już spełnił swoje testowe zadanie, bo pierwszy wygrzebany D71055C (z wylutu) na, którym został uruchomiony ma uszkodzone kilka pinów. Teraz czas na 16C450, ale on już nie nadaje się na patologie uruchomieniowe i będzie wymagał solidniejszego podłączenia i chwili na sprawdzenie.
Montaż przedstawiają rysunki. Gerbery w załączeniu. A tak wygląda gotowy moduł: W zasadzie moduł już spełnił swoje testowe zadanie, bo pierwszy wygrzebany D71055C (z wylutu) na, którym został uruchomiony ma uszkodzone kilka pinów. Teraz czas na 16C450, ale on już nie nadaje się na patologie uruchomieniowe i będzie wymagał solidniejszego podłączenia i chwili na sprawdzenie.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.