Na czym zrobić moduł TV composit out

Nov 16, 2007 90 Replies

Potrzebne to do jednoczesnego wyświetlania wielu danych (napięć, prądów, współczynników, nazw, menu wyboru itd.) ze złożonego układu pomiarowego. Docelowo ma to pokazywać także jakieś uproszczone charakterystyki/wykresy, stąd potrzebna (semi)grafika. Nie chcę tego robić na wielu displejach LCD2x16. Można by to zrobić na nowoczesnych ekranach TFT/LCD kikaset/na/kilkaset pixeli, ale akurat mam do wykorzystania kilka starych monitorów TV z demobilu - tak wyjdzie taniej, a wcale nie musi być małe.

Roman

Nie ujawniaja. No dobra, nie wytrzymam i opisze dla potomnych, bo ciekawe :-)

Zacznijmy od samego procesora. Z80 pobieral rozkaz wystawiajac na magistrale adres, linie sterujace, i dodatkowo sygnal M1. Po dwoch cyklach przystepowal do wykonania instrukcji, a jednoczesnie zaczynal sie cykl odswiezania dynamicznych pamieci zewnetrznej [ktorej w ZX80 nie zastosowano]. Na magistrale adresow wystawiano rejestr I na starszy bajt, i rejestr R na mlodszy bajt. Rej I byl dowolnie ustawiany programowo i bez znaczenia dla procesora, R zwiekszal sie automatycznie co kazdy wykonany rozkaz. Co tez trwalo dwa takty, po czym pobierano kolejny rozkaz lub realizowano biezacy, ktory mogl miec kilka dalszych operacji magistralowych.

Architektura ZX80: wyswietlanie pracowalo w trybie znakowym, przewidziano 64 znaki zdefiniowane w ROM, dodatkowo bit7 robil za inwers. Wyswietlano zawartosc pamieci RAM, linie do wyswietlania byly zmiennej dlugosci [wazne, gdy pelen ekran ma 768 bajtow, a RAMu jest 1KB :-)], koniec linii zaznaczano specjalnym kodem.

Teraz trzeba spojrzec na schemat na powyzszej stronie. Procesor byl przylaczony do magistrali danych przez rezystory [R4-R11]. Rozpoczynajac wyswietlanie procesor "skakal" do adresu pierwszego znaku w linii plus 32K. Dekoder adresow byl niepelny, wiec odczytywalo to RAM w dolnej polowce, ale bramki [13,16,17,15] wykrywaly fakt pobrania rozkazu spod wysokiego adresu [A15=1] i jesli bit6 danych wynosil 0, to wymuszaly [przez bramki 14 i 15] niski stan na pinach danych uP.

uP odczytywal wiec kod rozkazu 00, czyli NOP, i po 4 cyklach odczytywal nastepny rozkaz, ktory tez byl zerowany do NOP, itd.

Jesli jednak napotkal na znak konca linii, ktory mial bit6=1, to byl przepuszczany do uP .. i okazywal sie byc rozkazem HALT, zatrzymujacym procesor :-)

Z uspienia wyrywalo go przerwanie, na tym schemacie tego nie widac, ale INT byl podlaczony prosto do nogi A6. Otoz wejscie INT bylo testowane przez Z80 pod koniec cyklu rozkazowego, akurat wtedy gdy na magistrali pojawial sie rejestr R. Stopniowo narastajacy, [takze w trybie halt] wiec co 64 rozkazy [64us - linia obrazu] procesor sie budzil, program zerowal rejestr R i znow skakal na poczatek linii do wyswietlenia+32KB - tak 8 razy na kazda linie znaku, po czym przechodzil o 1 bajt dalej i obrabial nastepna linie.

A gdzie wyswietlanie ? W czasie gdy procesor czytal 00, wlasciwa dana byla zatrzaskiwana w rejestrze [IC5 - to pewnie 373 albo 374]. W fazie odswiezania przestawiano multipleksery adresow dla ROM [IC 6,7,8 - 157 bodajze] i podawano nan od LSB:

-3 bity z licznika linii IC21

-6 bitow zatrzasniete z rejestru

-reszta danych z procesora .. czyli rejestr I.

Rej. I wskazywal na poczatek obszaru generatora znakow w ROM, wiec teraz wystarczy wpisac dane do rejestru przesuwajacego IC9. Ten juz wypusci po bicie dane video, jeszcze tylko inwersja w bramce xor przez odpowiednio opozniony bit d7.

Jeszcze pare licznikow do pelni synchronizacji - i jak widac jest to nieco bardziej skomplikowane niz tylko "jeden 165". Procesorki w owych czasach nie dalyby rady zrobic tego programowo, tu jak widac wykorzystano ich licznik rozkazow do adresowania pamieci video.

W ZX81 scalono te wszystkie drobne TTL w jeden uklad.

J.

wykorzystano niewykorzystywany (brak DRAM) licznik R - z punktu widzenia dodatkowych ukladow video obsluguje 74165, w programowych zrodlach video na uC wszystko wlacznie z zamiana danych z postaci rownoleglej na szerogowa robione jest programowo.

SCL, dodano NMI, wydzielono klawiature czyli kosmetyka.

IMO AVR + kilka 74xxx i np 32 - 128KB SRAM i uzyskasz to co chcesz bez wiekszego klopotu.

Pan Roman napisał:

To czemu nie użyć również starego peceta z demobilu w całości? Koszt zerowy. Jeśli nawet mają to być monitory TV a nie VGA, to wystarczy programowa zmiana częstotliwości karty i prosty kabelek do połączenia. Poprzednio w założeniach było "Chodzi o układ możliwie miniaturowy".

IMO to wystarczy plyta np Amigi 600 i tez bedzie to ladnie chodzic... poza tym mozna uzyc jakiejs taniej plyty na i810 czy innym z zintegrowana VGA, za ok 250zl da sie zrobic modul wyswietlania o niemalych mozliwosciach...

PAndy napisał:

Rzecz w tym, że płyty do Amigi 600 to ja w życiu na oczy nie widziałem, a starych pecetów, z którymi nie wiadomo co zrobić, poniewiera się wszędzie pełno.

250zł w porównaniu z zerem, to już niezły pieniądz. Ale jak już płacić za płytę PC do takich rzeczy, to chyba najlepiej jakiś mini-itx. Brak wiatraka, pobór mocy na posiomie kilkunastu watów.

U¿ytkownik "Dariusz Zolna":

To jest dobre ;-)

formatting link
Heliogabal

allegro i kilkadziesiat zl (za tyle to moze nawet plyte A1200 da sie kupic)

zero to bedzie szafa... a za 250zl cos wielkosci miniATX i z poborem mocy rzedu 50 - 60W

Ale po wlaczeniu rozdzielczosci wiekszej niz 320 punktów w pionie (40 znaków po 8 pikseli) pojawialy sie interferencje (PAL ?)

On zastewpuje tylko jeden licznik do 64. Naprawde wykorzystano PC do adresacji pamieci.

Ukladow potrzebnych do takiego wyswietlania jest tu kilka - opisalem je.

Owszem, tylko ze tu jak widac mamy zegar pikslowy 8MHz. Trzeba by uC ze 32Mips zeby to zrobic programowo - a rozdzielczosc jest tylko 256 [32 znaki] + marginesy. Dodajac rejestr przesuwny wymagania spadaja, ale tez trzeba szybko.

Naprawde polecam cos scalonego lub CPLD/FPGA.

J.

Kiedy wiecej bylo.. albo wsciekle wielkie piksele, albo brak[nadmiar] kolorkow.

Nie mowie, do paru gier ten tekstowy tryb swietnie pasowal.

Ale w ogolnosci kiepskie mozliwosci graficzne.

Ale to obciaza procesor.

To wlasnie pisalem. Pomysly byly ciekawe, tylko trzeba bylo je zrobic

2x lepiej, i moze poczekac z rok zeby nie kosztowaly za duzo. I wyszlaby .. amiga :-)

O ile pamietam to jednak uzywano rejestr szeregowy, ale faktycznie byla poczatkowa synchronizacja programowa.

Jesli mnie jednak skleroza nie myli, to ten kabelek byl, bo czegos brakowalo. I tak ze wszystkim w atarynce bylo - fajne, ale nie fo konca :-(.

J.

Dnia 2007-11-20 19:53, Użytkownik J.F. napisał :

raczej pomysłu jak to dobrze zrobić - Turbo 2000 obywało się bez dodatkowych kabelków.

Pozdr. Michał

PAndy napisał:

A to bardzo możliwe, za unikalne eksponaty trzeba płacić. Ale ja to bym nawet nie wiedział jak się za coś takiego zabrać.

Oddałem niedawno za darmo kilka sprawnych płyt miniATX. Mam jeszcze płyty i386, nawet mniejsze od nich. Te to mają pobór mocy chyba mniej niż 10W. A nawet jeden sprawny komputer wielkości circa 30x30x5cm. To w zupełności wystarczy jako sprzęt pomiarowy. Jak już szukać wśród zabytków, to lepiej czegoś, co od strony softu wygląda współcześnie,

Użytkownik "Jarosław Sokołowski" snipped-for-privacy@lasek.waw.pl> napisał w wiadomości news: snipped-for-privacy@falcon.lasek.waw.pl...

Nie no, aż takiego kloca nie chcę angażować do tego układu.

Chodziło o miniaturyzację fragmentu: "moduł CRT video out "!. Aby ta część projektu nie stała się większa i bardziej rozbudowana niż właściwy układ pomiarowy, w sumie urządzenie ma być niezbyt duże. Od urządzenia pójdzie kabelek koncentryczny 75Ohm do stojącego nieopodal monitorka 8", razem będzie to dość ergonomicznie !

Roman

Heliogabal pisze:

Zgadza się, popełniło się to i owo :)

Dariusz Żołna

pewnie masz na mysli bugi w GTIA (a wlascwie specyfike generacji video)

DLI

hehe, te kiepskie mozliwosci powoduja ze Atari jest chyba jednym z niewielu (jedynym?) 8 bitowych systemow na ktory jest przegladarka jpg

I tak obciaza - myslsiz ze na AY nie robia softowych sampli? - obwiednia AY jest prymitywna i nei ma nic wspolnego z programowalna obwiednia 6581 (SID z C64)

raczej koderzy nie rozgryzli systemu ze wzgledu na zlozonosc - taki ZX Spectrum czy C64 dosc szybko mialy opanowany hardware wlasnie ze wzgledu na prostote.

naprawde dobrze orpogramowujac ten port mozna bylo uzyskac niezle rezultaty

bo nie bylo przemyslane... dzis juz jest latwiej , techniki programistyczne skoczyly do przodu, zwroc uwage na obecna scene Atari i produkcje scenowe...

no Z80 tez byl potrzebny do wyswietlania ;)

w ZX80 6,5MHz

i sie da, znajdz kontroler CRT, w obudowie ponziej 24 pinow i cenie do

10zl

pewnei ze tak lepiej ale czasem nie warto tym bardziej ze sa opracownia niemal gotowe

formatting link
a jesli nie AVR to moze
formatting link
mozliwosci imponujace

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required