Oldschoolowy projekt
: piątek 08 lis 2019, 02:24
Tajemniczy projekt na Z80
Oldschoolowe projekty wymagają olschoolowych rozwiązań. Taki powrót do przeszłości,
to może być zabawą wartą wszystkiego. Nabyty w międzyczasie bagaż doświadczeń
i wiedzy może stanowić pomocną dłoń i w sumie wracając do remake dawnych konstrukcji,
nie warto się oglądać, bo wyjdzie kopia tego co było. A przecież chodzi o co innego,
ma być fajna zabawa i nowe rozkosze łamania głowy. Nowe spojrzenie to również nowe
problemy, więc nie wszystko da się wymyślić „tak na żywca”. Niezbędna jest faza
„research & development”, bo jeszcze się nie urodził taki, co by wiedział wszystko
na dzień dobry. Przykładowo jakiś systemik na Z80 dzisiaj to bym zrobił na pamięciach
statycznych, bo są łatwo dostępne, dużej pojemności i łatwo się je obsługuje. Kiedyś
tak nie było, więc... skoro wszystko ma być klimatyczne, to należy zabrać się do
roboty: research.
Wszystko jest do uzyskania bazując na TTL'ach, jednak chcąc zrobić coś fajnego, może się okazać, że PCB zajmie 2500m2 powierzchni. No cóż, pewne rzeczy warto skrócić. Takim skrótem jest zastosowanie układów PLD, ale... również takich oldschoolowych. Będzie klimatycznie. W mojej szufladzie wala się kilka układów CPLD chyba z ubiegłego wieku, obecnie już nieprodukowanych (więc się nadają
).
Tak prawdę mówiąc to moje pierwsze doświadczenia z tego rodzajem układów właśnie zaczęły się od takich. Poza tym są na +5V, ważny argument. No więc trzeba odświeżyć technologię, tamta trochę odbiega od obecnej.
Do obróbki tych układów stosuje się oprogramowanie od LATTICE, o czym pisałem już TU. Z szuflady wyciągam, lekko przykurzone układy do eksperymentów i odpowiedni osprzęt (programator, choć to zbyt szumna nazwa, więc prosty interfejs do programowania).Rzeczywiście jest prosty, zawiera w sobie 74HC244 i jest przyłączany do portu CENTRONIX.Na stronie LATTICE można odnaleźć dokument o takim interfejsie. Lattice'owe układy CPLD można programować w docelowym środowisku, tylko ichni JTAG jest lekko śmieszny, bo złączka do interfejsu programującego jest 8-pinowa (choć w gruncie rzeczy jest 7-pinowa).Pierwszy eksperyment to następujące środowisko:Jest generator fali prostokątnej zbudowany na bazie NE555, którego impulsy wchodzą na licznik binarny (CD4040). Wyjście licznika (wystarczy 8 bitów) wchodzą na układ CPLD a ten retransmituje je do wyświetlenia na LED'ach. Najprostsze użycie z możliwych, by nie walczyć z jakimiś duchami.
Rzeczywiste środowisko:Wklepanie opisu w VHDL'u to chwila nieuwagi:
Posługiwanie się narzędziem opisałem przy okazji GAL'i. Tu dodam jedynie kwestię przyporządkowania pinów do określonych sygnałów. Więc należy wybrać:To uruchomi soft do przydziału zasobów:Klikając na plusiki, rozwinie się lista sygnałów wejściowych i wyjściowych użyta w opisie w VHDL'u. Po kliknięciu na nazwę sygnału, powstaje możliwość przypisania numeru pinu (w kolumnie Pin).I tak dla każdego i zgodnie z wyżej pokazanym schematem. Można sobie nawet obejrzeć jak to wygląda. Syntezę odpala się klikając na:No i nadeszła chwila prawdy i coś... nie poszło tak jak powinno. Soft do programowania zastosowanego układu nie chciał się skumać z interfejsem programującym, twierdzi, że nie ma portu LPT1. Ktoś tu oszukuje, w kompie jest port LPT1, w końcu używam programatora od Elnec, który właśnie takiego używa. Lattice nie chciał, a Elnec stanął na wysokości zadania i potrafił zaprogramować układ (co prawda wymagał przełożenia do odpowiedniej podstawi w programatorze). Trzeba będzie zrobić jakieś badania i ustalić przyczynę problemów i podejść jeszcze raz, w najbliższym czasie. Na razie zaprogramowany układ „mruga diodami LED”.
W sumie sukces połowiczny, coś wyszło, ale nie wszystko odbyło się zgodnie z planem. Ach te rozkosze łamania głowy...
Oldschoolowe projekty wymagają olschoolowych rozwiązań. Taki powrót do przeszłości,
to może być zabawą wartą wszystkiego. Nabyty w międzyczasie bagaż doświadczeń
i wiedzy może stanowić pomocną dłoń i w sumie wracając do remake dawnych konstrukcji,
nie warto się oglądać, bo wyjdzie kopia tego co było. A przecież chodzi o co innego,
ma być fajna zabawa i nowe rozkosze łamania głowy. Nowe spojrzenie to również nowe
problemy, więc nie wszystko da się wymyślić „tak na żywca”. Niezbędna jest faza
„research & development”, bo jeszcze się nie urodził taki, co by wiedział wszystko
na dzień dobry. Przykładowo jakiś systemik na Z80 dzisiaj to bym zrobił na pamięciach
statycznych, bo są łatwo dostępne, dużej pojemności i łatwo się je obsługuje. Kiedyś
tak nie było, więc... skoro wszystko ma być klimatyczne, to należy zabrać się do
roboty: research.
Wszystko jest do uzyskania bazując na TTL'ach, jednak chcąc zrobić coś fajnego, może się okazać, że PCB zajmie 2500m2 powierzchni. No cóż, pewne rzeczy warto skrócić. Takim skrótem jest zastosowanie układów PLD, ale... również takich oldschoolowych. Będzie klimatycznie. W mojej szufladzie wala się kilka układów CPLD chyba z ubiegłego wieku, obecnie już nieprodukowanych (więc się nadają
Tak prawdę mówiąc to moje pierwsze doświadczenia z tego rodzajem układów właśnie zaczęły się od takich. Poza tym są na +5V, ważny argument. No więc trzeba odświeżyć technologię, tamta trochę odbiega od obecnej.
Do obróbki tych układów stosuje się oprogramowanie od LATTICE, o czym pisałem już TU. Z szuflady wyciągam, lekko przykurzone układy do eksperymentów i odpowiedni osprzęt (programator, choć to zbyt szumna nazwa, więc prosty interfejs do programowania).Rzeczywiście jest prosty, zawiera w sobie 74HC244 i jest przyłączany do portu CENTRONIX.Na stronie LATTICE można odnaleźć dokument o takim interfejsie. Lattice'owe układy CPLD można programować w docelowym środowisku, tylko ichni JTAG jest lekko śmieszny, bo złączka do interfejsu programującego jest 8-pinowa (choć w gruncie rzeczy jest 7-pinowa).Pierwszy eksperyment to następujące środowisko:Jest generator fali prostokątnej zbudowany na bazie NE555, którego impulsy wchodzą na licznik binarny (CD4040). Wyjście licznika (wystarczy 8 bitów) wchodzą na układ CPLD a ten retransmituje je do wyświetlenia na LED'ach. Najprostsze użycie z możliwych, by nie walczyć z jakimiś duchami.
Rzeczywiste środowisko:Wklepanie opisu w VHDL'u to chwila nieuwagi:
Kod: Zaznacz cały
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity ispLSI1016Demo is port ( InCnt : in std_logic_vector ( 7 downto 0 ) ;
OutCnt : out std_logic_vector ( 7 downto 0 ) ) ;
end ispLSI1016Demo ;
architecture behavioral of ispLSI1016Demo is
begin
OutCnt <= InCnt ;
end behavioral ;W sumie sukces połowiczny, coś wyszło, ale nie wszystko odbyło się zgodnie z planem. Ach te rozkosze łamania głowy...