ST HDMI. Odcinek 1. Rozpoznanie terenu

2019-11-26, 00:11,

Od czego to się zaczęło? Postanowiłem kupić stare Atari ST. Raz, że to niedoścignione marzenie z dzieciństwa, dwa ta minimalistyczna konstrukcja wygląda całkiem świeżo nawet po 30 latach.

Po dłuższych poszukiwaniach na portalu ogłoszeniowym znalazłem jedną sztukę w znośnej cenie. Trochę żółta, wiadomo. Flop nie domagał, ale po interwencji mikrogotekiem mam ładny emulator i coś działa. Po podociskaniu scalaków i wymianie TOSa na 1.04 nawet zaczęło po prostu działać. Nie ma to jak wieczorna sesja w oryginalne Lemingi :D

Ale nie byłbym sobą, gdybym na tym miał skończyć. ST jak każdy komputer z tamtej ery sprawia problemy w komunikacji z nowoczesnymi ekranami LCD, i generalnie wszystkim co nie obsługuje 15 kHz synchronizacji poziomej. O ile trochę ratuję się kablem SCART i telewizorem to obraz nie jest najpiękniejszy.

Zagadka SHIFTERa

Atari ma jednak w środku coś bardzo ciekawego. Srebrna klapka kryje w sobie układ graficzny o jakże wymownej nazwie SHIFTER. Jego rola jest równie złożona co prosta. Z jednej strony wchodzą bajty pamięci wideo podawane przez MMU, z drugiej strony wychodzi obraz RGB w postaci cyfrowej.

Halo, halo? Czy ktoś tu mówił o postaci cyfrowej? W tym momencie popatrzyłem z jednej strony na Atari, z drugiej strony na zestaw startowy Maximator FPGA, na którym proste obrazy z ULA od ZX Spectrum robiłem i obraz na HDMI wyglądał jak należy.

Zaczęło się liczenie pinów. HSync, VSync, Mono, 9 bitów RGB i sygnał zegarowy. Jest dobrze, mimo skromnej ilości wejść powinno się udać. A skoro tak to… czy drivery na płytce FPGA potrafią 16/32 MHz? Rzut oka w specyfikację… uff, potrafią do 32 MHz. Jestem uratowany. Tzn. nie jestem, bo to znaczy, że najbliższe kilka miesięcy mam dodatkowe zajęcie, ale chyba o to chodziło? :D

Maximator FPGA - Altera MAX10 na pokładzie

Sam Maximator jest niezbyt (jak na standardy FPGA) drogim zestawem startowym do rozpoczęcia swoich pierwszych kroków z FPGA. Mimo skromnej liczby wyprowadzeń na płytce znalazło się 15 portów wejścia - wyjścia ogólnego przeznaczenia, zabezpieczonych dwukierunkowymi konwerterami poziomów logicznych 3V3 do 5V. Kolejne 5 wejść stanowią porty przetwornika analogowo-cyfrowego, zabezpieczone diodami do napięcia 2V5. Oprócz tego na płytce znalazło się jeszcze 1-bitowe gniazdo karty MicroSD, 3-bitowe wyjście VGA oraz HDMI :D. Są jeszcze jakieś drobiazgi typu 4 diody LED, układy zasilania, gniazdo JTAG i kwarc 10 MHz.

Na szczęście (dla całego projektu) producent wyprowadził magistralę zegarową nie tylko do wlutowanego kwarcu ale również na port GPIO J15, ratując tym samym całą ideę mojego projektu.

Pierwsze uruchomienie

Nie wchodząc jeszcze w jakieś kosmiczne szczegóły „jak”, zacząłem od prostego prototypu. Biorę sygnał ST-MONO (640x400 przy 71 Hz), zamieniam na postać cyfrową i wypuszczam przez wbudowane VGA. Udało się… długie wieczory i noce przede mną.

Zaciekawiła Cię ta historia? Nad projektem siedzę już od dobrych kilkunastu tygodni, oczywiście trochę z doskoku, trochę pomiędzy innymi zadaniami. Zamierzam brnąć w to jeszcze przez jakiś czas, poznać bliżej MAX10 i VHDL oraz opisać swoje dotychczasowe doświadczenia. Duża w tym również zasługa Łukasza (https://blog.jokielowie.com), który przez ostatnie kilka miesięcy pracuje jako debugger i podrzuca mi różne przydatne linki do archiwów dokumentacji sprzed 35 lat, dzięki!

Nie gwarantuję, że projekt zakończy się sukcesem. Być może zakończy się spektakularną porażką (np. jeden element na klawiaturze już poszedł z magicznym dymkiem), ale jest nadzieja, jeśli chcesz śledzić ten projekt ze mną, serdecznie zapraszam ;-)

Komentarze