Hallo,
ich habe jetzt einen Logikplan für eine TV-Grafikkarte entworfen.
Sie unterstützt eine Auflösung von 256x128 Pixeln bei 256 Farben.
Angeschlossen werden soll sie über RGB-SCART und als Interface wird
die serielle Schnittstelle RS-232 benutzt. Damit kann man sie sowohl
mit einem uC als auch mit dem PC zu Testzwecken ansteuern. Sie
benutzt ausserdem das so genannte Doublebuffering, also zwei Speicher,
der Eine wird gelesen und der Andere beschrieben, dann wird getauscht,
...
Die SRAMs sind vom Conrad: KM68257C/CL mit einer Reaktionszeit von
15 ns. Bei 256 Pixeln und 54 us pro Zeile macht das 200 ns pro Pixel.
Also benutze ich einen Takt von 40 MHz bei den PICs um pro Instruktion
100 ns zu benötigen. Der untere PIC liefert einmal das Sync-Signal und
die Adresse des derzeit anzuzeigenden Pixels. Der Obere empfängt die
Kommandos/Daten von der Schnittstelle und beschreibt und flippt die
SRAMs entsprechend.
Bei beiden wird PortA und B für die Adressen benutzt. der obere bekommt
natürlich noch PortC für die Schnittstelle, PortD für die Daten und
PortE für die Steuersignale (WE und SEL). Die Pins reichen gerade aus.
Ich versuche gerade eine Platine dafür zu erstellen. Vielleicht schaffe
ich es, alles auf das Euro-Format zu quetschen. Um eine zweiseitige mit
durchkontaktierung komme ich dann aber nicht drum herum.
Sieht jemand vielleicht einen Fehler? Oder hat jemand noch einen
Verbesserungsvorschlag? Ansonsten kann natürlich jeder diese Schaltung
nachbauen. =)
Viele Grüße
Sebastian
Okay, ich habe das Projekt in 2 Teile gesplittet, die Logik und den
Speicher.
Ich bin jetzt mit dem Platinenlayout der Logik fertig. Die große Zahl an
Pads oben sind Buchsenleisten. Selbst ohne den Speicher sollte man damit
ein schwarzes Bild auf dem Fernseher generieren können. Den 470 Ohm
Widerstand von PortC1 des rechten PICs habe ich für Testzwecke dazu
gestellt. Damit kann man auch helle Pixel generieren. Wenn man ihn nicht
mehr benötigt, wird der Port auf Eingang geschalten. Bloß nicht auf Low,
sonst liegt der Widerstand plötzlich parallel zu dem FBAS-Ausgang.
Wenn jemanden ein Fehler auffällt, wäre es schön wenn er/sie mich darauf
hinweisen würde. Die Platine werde ich nämlich demnächst in Auftrag
geben und etwa 70 Euro für eine zweiseitige Platine mit Stoplack die
dann nicht funktioniert, würde ich nur ungern ausgeben. =)
Viele Grüße
Sebihepp
Da es keinen Schaltplan gibt kann man auch nichts dazu sagen.
Irgendwie sieht es so aus als wenn die beiden PICs unabhängig
voneinander arbeiten. Das wird wohl nichts werden.
wow, dual core fuer ein bisschen TV Grafik.
Gibt es einen Grund dass du das mit zwei uC loesen musst?
Immerhin reicht wohl ein Oszillator.
Braucht es bei den PICs keinen Pegelwandler fuer RS-232?
Cheers, Roger
An Q9:
Das wär doch was, wenn Studenten noch 70 Euro die Stunde bekommen
würden. XD
Am liebsten hätte ich das ja komplett einseitig erstellt, aber das geht
irgendwie nicht (Oder ich bin zu blöd dazu =) ). Ich denk noch drüber
nach und auch über den Lötstoplack. Die Platine wollte ich jedenfalls
noch eine lange Zeit verwenden. Daraus soll später ein ganzer Computer
auf Mikrocontrollerbasis werden. Mal sehen in wie vielen Jahren ich
fertig bin. =D
Einen Schaltplan habe ich noch nicht, das ist richtig. Aber anhand des
Logikplans sollte man schon vieles erkennen können. Ich habe auch schon
versucht einen Schaltplan zu zeichnen, aber eine DIN-A4 Seite reicht da
leider nicht mehr, und mehr kann mein Scanner leider nicht einlesen.
Kennt jemand ein kostenloses Tool dafür? Ich möchte nur den Plan
erstellen und dann als Bilddatei speichern. Das Tool muss nicht noch
Prüfungen anstellen oder sogar simulieren. Aber es sollte mehr als Paint
beherrschen. ^^
-----------------------------------------------------------------------
an Holger:
Ja, die PICs betreibe ich unabhängig voneinander. Der rechte erzeugt die
Sync-Signale und die Adresse des auszugebenen Pixels. Der andere steuert
das Schreiben. Ich verwende dazu den doppelten SRAM: Einer wird
beschrieben, der andere angezeigt (Der Inhalt, nicht der SRAM =) ).
Zwischen Speicher und PICs stehen dann noch viele 74 HC xxx, welche
Multiplexen und den Datenbus treiben.
-----------------------------------------------------------------------
an Roger Steiner:
Reicht wirklich ein Oszillator aus?
Stimmt, für den PC bräuchte man noch nen Pegelwandler. Aber das soll ja
später an meinen selbsentwickelten uC-PC angeschlossen werden, und da
dieser auch mit 5V läuft brauche ich einen Wandler nur
dazwischenklemmen, wenn ich die Karte an den PC anschließe. Dazu werde
ich mir eine kleine Pegelwandlerplatine löten. Genauso kommt noch eine
Spannungsversorgung dazu.
Viele Grüße
Sebihepp
Den Beitrag habe ich schon mehrmals durchgelesen. =)
Viele Fragen wurden dadurch schon beantwortet.
Wenn ich nun nur einen PIC benutzen würde, dann würde für die Zeit des
beschreibens des RAMs keine Ausgabe stattfinden. Da ich später
vielleicht kleine Spiele auf dem TV darstellen will, brauche ich einen
hohen Datendurchsatz. Und dafür ist DoubleBuffering sehr geeignet. Und
so teuer ist ein zweiter PIC auch nicht (4-5 Euro bei Reichelt).
Aber Danke für den Hinweis. =)
Sebastian Hepp schrieb:
> Da ich später> vielleicht kleine Spiele auf dem TV darstellen will, brauche ich einen> hohen Datendurchsatz.
Die Aussage beisst sich aber mit dem Prinzip mit welchem die
'Grafikkarte' gefuettert werden will. Denn nach deinem Schaltplan zu
urteilen ist das ja nix tile basiertes sondern einfach zweimal ein
Pixelhaufen.
Fuer Spiele auf einfachen Prozessoren denkbar ungeeignet.
Cheers, Roger
Schau Dir doch mal das IC "MB88303" von Fujitsu an. Das hab ich vor 20
Jahren mal eingesetzt. Das kann schon alles, was Du noch erfinden
willst.
Heut gibt es sicher modernere Bausteine. Kenne Sie aber nicht, da ich
nun andere Dinge entwerfe. Bevor Du alles neu erfindest, such doch erst
mal nach ner bestehenden Lösung.
Du hast ja sonst auch noch ne Menge zu tun.
Alternativ halt einen Spartan + SDRAM, den kannst du dann auch zum
Vektorrechnen abordnen. Dateneingabe per SPI und fertig ist die
Grafikkarte :)
_.-=: MFG :=-._
Hmmm, ich weiss leider nicht, welche ICs es da gibt. Wo kann ich mich
darüber informieren?
Es muss jedenfalls ein DIL sein. SMD kann ich nicht löten.
Es wäre auch noch schön, wenn man das aussehen der Tiles selbst
definieren könnte. Optimal mit Farbe. Anschließen würde ich das am
liebsten an einen Fernseher (SCART). Wenn es das nur für einen VGA-
Monitor gibt, ist es auch nicht schlimm. Die höhere Auflösung ist sicher
angenehmer.
An einen FPGA habe ich zuerst gedacht. Aber weder habe ich ein
Programmiergerät, noch ist der SRAM ausreichend dimensioniert und ich
möchte auch nicht über 100 Euro nur für den FPGA ausgeben. Ausserdem
haben die auch keine DIL gehäuse.
Ich versuche mich später an denen.
Viele Grüße
Sebihepp
Sebastian Hepp schrieb:
> Es muss jedenfalls ein DIL sein. SMD kann ich nicht löten.
Das tolle am Basteln ist ja dass man durchaus auch mal was neues in
Angriff nehmen kann und dabei auch noch was lernt
Muss ja nicht grad TQFP144 und 0402 sein.
Mit ein wenig Uebung laesst sich SMD schneller und einfacher loeten als
das thru-hole Zeugs.
> Es wäre auch noch schön, wenn man das aussehen der Tiles selbst> definieren könnte. Optimal mit Farbe. Anschließen würde ich das am> liebsten an einen Fernseher (SCART). Wenn es das nur für einen VGA-> Monitor gibt, ist es auch nicht schlimm. Die höhere Auflösung ist sicher> angenehmer.
Vielleicht solltest du dir mal ein zwei Wochen Zeit nehmen und mal nach
Architekturen der vergangenen Home-Computer und Spielkonsolen
recherchieren.
Vielleicht findest du dann raus dass dein double-buffering Ansatz dann
doch nicht mehr so genial ist wie du vielleicht dachtest.
Dass das hier vorgestellte Design ein Bild auf den TV zaubert, keine
Frage, aber es taugt nicht mehr als fuer eine Photo-Frame Anwendung,
von der Aufloesung mal abgesehen.
> An einen FPGA habe ich zuerst gedacht. Aber weder habe ich ein> Programmiergerät, noch ist der SRAM ausreichend dimensioniert und ich> möchte auch nicht über 100 Euro nur für den FPGA ausgeben. Ausserdem> haben die auch keine DIL gehäuse.
100 Euro in ein gutes FPGA Demoboard ist besser investiert als auch nur
einen in das hier gezeigte PCB.
> Ich versuche mich später an denen.
Jetzt oder nie, aber die Lernkurve ist da vielliecht doch zu steil.
Cheers, Roger
Gut, bis ich eine bessere Idee habe, lege ich das Projekt erstmal aufs
Eis. Ich habe leider nicht genug Geld für ein Demo-Board und wollte mich
erstmal in die PICs einarbeiten. Die erste Testplatine läuft ja schon
mal. =)
Achja, die 100 Euro waren für den FPGA selber gemeint. Ein Board kann da
ruhig in diese Preisgrenze vorstoßen. Allerdings baue ich mir lieber
selbst ein Entwicklungskit, damit ich alles habe, was ich brauche.
Ich bräuchte erstmal nen richtigen Lötkolben bevor ich mit SMD anfange.
Die Spitze meines derzeitigen ist 3mm im Durchmesser und etwas
abgeschrägt, also nur bedingt für Elektronik geeignet. Entlötlitze hatte
ich auch noch nie in der Hand (noch nie benötigt, habe aber auch noch
nicht viel gelötet).
Kann ich nicht die Pads vorverzinnen und dann den IC einfach drauf
fixieren und dann die Stellen kurz erhitzen? Reicht da evtl. schon die
chem. Verzinnung vom Platinenhersteller?
Viele Grüße
Sebihepp
Sebastian Hepp schrieb:
> Kann ich nicht die Pads vorverzinnen und dann den IC einfach drauf> fixieren und dann die Stellen kurz erhitzen? Reicht da evtl. schon die> chem. Verzinnung vom Platinenhersteller?
Die Verzinnung vom PCB Hersteller reicht nicht zum Loeten aus.
Selber vorher verzinnen ist kontraproduktiv, da dann das Bauteil nicht
plan aufliegt. Mit Loetpaste geht das aber.
Am besten Bauteil draufsetzen, ueber Kreuz fixieren und dann verloeten
(gibt genug tutorials im Web).
Ich rate von chemisch Zinn ab, gibt nur Aerger,
problematisch in der Handhabung/Lagerung und loetet sich von Hand
deutlich schlechter als HAL.
Drum fuer nicht Maschinell bei nicht allzukleinem Pitch -> HAL
Ansonsten chemisch Gold.
Cheers, Roger
> Am besten Bauteil draufsetzen, ueber Kreuz fixieren und dann verloeten> (gibt genug tutorials im Web).
Okay, das SMD-Tutorial auf dieser Seite habe ich bereits durchgelesen.
Reicht meine Lötkolbenspitze mit 3mm oder ist diese zu groß?
> Ich rate von chemisch Zinn ab, gibt nur Aerger,> problematisch in der Handhabung/Lagerung und loetet sich von Hand> deutlich schlechter als HAL.
Kann ich auch keine Verzinnung wählen?
> Die Verzinnung vom PCB Hersteller reicht nicht zum Loeten aus.> Selber vorher verzinnen ist kontraproduktiv, da dann das Bauteil nicht> plan aufliegt. Mit Loetpaste geht das aber.
Ich habe mich jetzt erkundigt, was Lötpaste genau ist, aber ich habe
weder einen Siebdrucker noch 'ne Reflowlötstation. Wie benutze ich das
als Hobbieelektroniker?
Zum Schluss:
Welche Padgröße empfehlt Ihr mir? Natürlich so groß wie möglich, oder?
Was mache ich, wenn zwischen den Anschlüssen Bahnen durchgeführt werden
müssen?
Viele Grüße
Sebihepp
>Kann ich auch keine Verzinnung wählen?
Blankes Kupfer gammelt.
>Was mache ich, wenn zwischen den Anschlüssen Bahnen durchgeführt werden>müssen?
Mit Lötstopmaske bestellen.
Sebastian Hepp schrieb:
> Okay, das SMD-Tutorial auf dieser Seite habe ich bereits durchgelesen.> Reicht meine Lötkolbenspitze mit 3mm oder ist diese zu groß?
Kommt auf die Form und Bauteile an, aber ist wohl schon eher ueber der
oberen Grenze.
> Kann ich auch keine Verzinnung wählen?
wozu?
> Ich habe mich jetzt erkundigt, was Lötpaste genau ist, aber ich habe> weder einen Siebdrucker noch 'ne Reflowlötstation. Wie benutze ich das> als Hobbieelektroniker?
Mit einer Spritze, als Hobbyelektroniker hat dies jedoch keinen Nutzen,
da wenn man Uebung hat alle TQFP und PQFP ohne Paste schneller loetet.
> Welche Padgröße empfehlt Ihr mir? Natürlich so groß wie möglich, oder?
Noe, von jedem Hersteller gibt es Angaben zum Gehaeuse, meistens ist das
land pattern mit dabei oder man muss es sich bei JEDEC 'organisieren'.
Am besten haltet man sich daran.
> Was mache ich, wenn zwischen den Anschlüssen Bahnen durchgeführt werden> müssen?
Kommt auf den pitch draufan. Es gibt Gehaeuse wo es geht. Einfach darauf
Achten dass es noch Loetstopp ueber der Bahn hat. Und Vias nicht zu nahe
an die Pads.
Cheers, Roger