Video DAC und Analogteil von Ethernet

F

Frank Buss

Guest
Ich experimentiere in letzter Zeit etwas mit dem Spartan 3 Starterkit von
Xilinx, eine Audio-Ausgabe und testweise VGA habe ich bereits implementiert
( http://www.jroller.com/page/fb ), jetzt möchte ich direkt ein Y/C-Signal
für die Ansteuerung des Fernsehers erzeugen. Es gibt zwar extra Wandler-ICs
dafür, die man digital ansteuert, aber ich möchte das mit so wenig wie
möglich speziellen Bausteinen aufbauen, und die ganze Arbeit den FPGA
erledigen lassen.

Habe mir also gedacht, ein R/2R Netzwerk für die Video-Signale zu verwenden
(je 8 Bit sollte reichen), da das PWM-Verfahren wegen der hohen Frequenzen
nicht mehr funktioniert. Der Digital-Teil ist kein Problem, aber vielleicht
hat jemand einen Tipp, wie die Schaltung zwischen dem Ausgang des
Widerstandsnetzwerks zur Pufferung und Impedanzanpassung aussehen muß.

Danach fehlt dann noch ein 10 MBit Ethernet-Anschluss. Auf der digitalen
Seite wird das wieder kein Problem sein, aber wie baut man die
Schnittstelle zwischen Kabel und FPGA mit (möglichst wenigen) diskreten
Bauteilen auf und kennt einer Bezugsquelle für eine Netzwerkbuchse und was
man da sonst noch für Teile braucht, wie Keramikfilter o.ä. ?

--
Frank Buß, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
 
Frank Buss wrote:
[Video-DAC]
Habe mir also gedacht, ein R/2R Netzwerk für die Video-Signale zu
verwenden (je 8 Bit sollte reichen)
Mit normal erhältlichen 1%-tolerierten Widerständen machen 6 bis 7 bit
Auflösung Sinn, was für Videospielanwendungen auch noch gut brauchbar
sein dürfte. Widerstandswerte z.B. 1k und 2k, damit dürfte man
einen brauchbaren Kompromiss zwischen Ausgangswiderständen der
treibenden Pufferstufen und Frequenzgang durch Tiefpasswirkung mit
den unvermeidlichen parasitäten Kapazitäten hinbekommen.

vielleicht hat jemand einen Tipp, wie die Schaltung zwischen dem
Ausgang des Widerstandsnetzwerks zur Pufferung und Impedanzanpassung
aussehen muß.
Einen AD817 z.B. mit dem plus-Eingang am DAC-Ausgang, und den
invertierenden Eingang über 1k zum Ausgang - das sollte reichen.
In den Ausgang natürlich noch 75 Ohm oder sowas (seriell).
Der DAC-Ausgang sollte außerdem noch mit einem Widerstand soweit
belastet werden, dass der Pegel auf ca. 2Vss eingestellt ist.

Thomas.
 
On Tue, 3 Aug 2004 19:26:41 +0000 (UTC), Frank Buss <fb@frank-buss.de>
wrote:
Habe mir also gedacht, ein R/2R Netzwerk für die Video-Signale zu verwenden
(je 8 Bit sollte reichen), da das PWM-Verfahren wegen der hohen Frequenzen
nicht mehr funktioniert. Der Digital-Teil ist kein Problem, aber vielleicht
hat jemand einen Tipp, wie die Schaltung zwischen dem Ausgang des
Widerstandsnetzwerks zur Pufferung und Impedanzanpassung aussehen muß.
*Ganz heißer Tipp*:
Vergiß das R2R Netzwerk und nimmt einen geeigneten integrierten
Wandler. Gerade bei einem Videosignal wird eine R2R Selbstbaulösung
analog einen Haufen Frust bereiten.

So er nicht integriert ist (ist häufig nicht, weil andere Technologie)
sollte man den Ausgang hinter dem D/A Wandler und dem
nachgeschalteten "Strom-Spannungswandler" (Widerstand ;-)
mit einem Current-Feedback OpAmp buffern.

Hintergrund:
Auch die fertigen Flash Wandler IC's arbeiten zumeist intern *nicht*
mit R2R, sondern mit einem Haufen gesteuerter Stromquellen
(nicht pro Bit, sondern z.B. für die ersten 6 Bit pro Zustand eine).
Ein Grund sind die unvermeidlichen C's in Deinem R2R und das
Thema Impedanz - aber richtig, ein anderes Thema ist, dass Du
beim Umschalten des MSB nette Glitches bekommst, wenn die
ansteuernden Ausgänge nicht absolut synchron arbeiten.
Außerdem treiben die Ausgänge low meist mit anderer Stärke als
High, und bei einem Videowandler fließt schon Strom und das
Thema wird relevant.

Du kannst es natürlich mit R2R versuchen, wirst IMHO aber dann
auf die harte Tour lernen, warum die IC-Designer bei schnellen
Wandlern zumindest für die höchstwertigsten Bits nicht mehr auf
dieses Konzept setzen.

Danach fehlt dann noch ein 10 MBit Ethernet-Anschluss. Auf der digitalen
Seite wird das wieder kein Problem sein, aber wie baut man die
Schnittstelle zwischen Kabel und FPGA mit (möglichst wenigen) diskreten
Bauteilen auf und kennt einer Bezugsquelle für eine Netzwerkbuchse und was
man da sonst noch für Teile braucht, wie Keramikfilter o.ä. ?
Farnell, RS & Co. haben die RJ45 Buchsen in verschiedenen Varianten
und sie haben auch Video-D/A's ...

Gruß Oliver

--
Oliver Bartels + Erding, Germany + obartels@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10
 
Danach fehlt dann noch ein 10 MBit Ethernet-Anschluss. Auf der digitalen
Seite wird das wieder kein Problem sein, aber wie baut man die
Schnittstelle zwischen Kabel und FPGA mit (möglichst wenigen) diskreten
Bauteilen auf und kennt einer Bezugsquelle für eine Netzwerkbuchse und was
man da sonst noch für Teile braucht, wie Keramikfilter o.ä. ?
hi! eine frage: hast du irgendwelche resourcen zur entwicklung einer
ethernetsnittstelle mit dem spartan. mir schwebt nämlich das selbe vor und
hab mir vor 3 wochen den selben starterkit gekauft.
bin aber derzeit noch mit einem anderen projekt beschäftigt.

danke
urban
 
On Wed, 4 Aug 2004 09:21:21 +0000 (UTC), Frank Buss <fb@frank-buss.de>
wrote:
Bei 10 Bit müsste auch direkt ein FBAS-Signal möglich sein und noch
ausreichend in der Qualität sein, da brauche ich dann nur einen Wandler
von.
Lob: Du hast Qualität gewählt :)

FBAS stellt für diesen Wandler gar kein Problem dar und geht auch im
FPGA digital zu erzeugen.
Du solltest Dir nur *genau* den PAL Standard ansehen, Stichworte
sind die PAL 8er Sequenz und die zwischen zwei Zeilen wechselnde
Burstphasenlage sowie die *exakt* einzuhaltende Farbträgerfrequenz.
Mit einem selbstgebauten DDS im FPGA ist das kein Problem,
man muss nur dran denken, sonst wundert man sich, warum der
TV rumzickt und der Videorekorder garnicht mag.

Beim FPGA sind Hardware-Multiplizierer für die Quadraturmodulation
nützlich, bei Xilinx Spartan 3 oder Virtex II oder Altera gibt es
genügend von der Sorte. Für das sin(x) braucht es für die oberen
Bits eine Tabelle oder den Trick mit dem Priority Encoder und
Multiplexer oder, wenn man genügend Multiplier hat, auch über die.
Für eine hohe Taktrate wählt man Pipelining, geht auch beim DDS
Phasenakku sehr schön.

Kostet kaum was, hat einen intergrierten Ausgangspuffer und da gibt es
dann auch keine Fragen wegen der Klangqualität.
Eben.

Solche Konzepte gefallen viel besser als irgendwelche krampfhaften
Geiz-Bastelaktionen, bei denen eigentlich von vorneherein klar ist,
dass es nie wirklich gut funktionieren kann.

ich glaube ich werde da auch ein IC für nehmen. Der 91C111 von SMC (
http://www.smsc.com/main/catalog/lan91c111.html ) sieht gut aus, gab auf
Sollte gehen, der Distri kennt den Typ offenbar, wenngleich keine
Kataloggware. Aber das gilt wohl für alle Non-PCI 10/100 MAC/PHY's.

deren Webseite aber kein Online-Shop, mal sehen, ob die mir ein Muster
zuschicken. Den Übertrager und die Netzwerkbuchse werde ich wohl aus
einer Netzwerkkarte auslöten, damit ist dann meine alte ISA-Karte aus der
Bastelkiste doch noch zu etwas nützlichem zu gebrauchen :)
Der RJ45 ist definitiv Katalogware, auch mit bunten LED's.
Von den Übertragern haben wir seinerzeit auch ein paar mehr
nehmen müssen, ein Muster könnte ich abgeben.
Dann muß ich allerdings eine Platine dafür layouten und von einem
Bestücker löten lassen, da ich das bei einem 128 Pin QFP Gehäuse nicht
selber kann. Ich melde mich aber vorher nochmal hier mit dem Schaltplan
und Layout und werde es erstmal als Erweiterungskarte für das Spartan
Starterkit entwerfen, der drei 2x20-polige gewinkelte Buchsenleisten hat,
vielleicht ist so ein Sound/Video/Ethernet-IO-Interface ja auch für
andere noch nützlich.
Dann viel Spass beim Design :)

Gruß Oliver

--
Oliver Bartels + Erding, Germany + obartels@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10
 
Oliver Bartels <spamtrap@bartels.de> wrote:

Du kannst es natürlich mit R2R versuchen, wirst IMHO aber dann
auf die harte Tour lernen, warum die IC-Designer bei schnellen
Wandlern zumindest für die höchstwertigsten Bits nicht mehr auf
dieses Konzept setzen.
ich glaube dir, hatte nicht an die kapazitiven Einflüsse gedacht, die ja
gerade bei so hohen Frequenzen Probleme bereiten könnten. Außerdem lohnt
sich der Aufwand eigentlich nicht, denn der sowieso notwendige Verstärker
kostet schon fast so viel, wie ein IC. Ich habe mir jetzt mal hiervon
einen bestellt:

http://www.analog.com/UploadedFiles/Data_Sheets/569555511ADV7127_0.pdf

Bei 10 Bit müsste auch direkt ein FBAS-Signal möglich sein und noch
ausreichend in der Qualität sein, da brauche ich dann nur einen Wandler
von.

Und da ich gerade dabei war, habe ich auch gleich einen Stereo-Audio-DAC
mitbestellt:

http://www.analog.com/UploadedFiles/Data_Sheets/598149434AD1859_a.pdf

Kostet kaum was, hat einen intergrierten Ausgangspuffer und da gibt es
dann auch keine Fragen wegen der Klangqualität.

Danach fehlt dann noch ein 10 MBit Ethernet-Anschluss. Auf der
digitalen Seite wird das wieder kein Problem sein, aber wie baut man
die Schnittstelle zwischen Kabel und FPGA mit (möglichst wenigen)
diskreten Bauteilen auf und kennt einer Bezugsquelle für eine
Netzwerkbuchse und was man da sonst noch für Teile braucht, wie
Keramikfilter o.ä. ?
Farnell, RS & Co. haben die RJ45 Buchsen in verschiedenen Varianten
und sie haben auch Video-D/A's ...
ich glaube ich werde da auch ein IC für nehmen. Der 91C111 von SMC (
http://www.smsc.com/main/catalog/lan91c111.html ) sieht gut aus, gab auf
deren Webseite aber kein Online-Shop, mal sehen, ob die mir ein Muster
zuschicken. Den Übertrager und die Netzwerkbuchse werde ich wohl aus
einer Netzwerkkarte auslöten, damit ist dann meine alte ISA-Karte aus der
Bastelkiste doch noch zu etwas nützlichem zu gebrauchen :)

Dann muß ich allerdings eine Platine dafür layouten und von einem
Bestücker löten lassen, da ich das bei einem 128 Pin QFP Gehäuse nicht
selber kann. Ich melde mich aber vorher nochmal hier mit dem Schaltplan
und Layout und werde es erstmal als Erweiterungskarte für das Spartan
Starterkit entwerfen, der drei 2x20-polige gewinkelte Buchsenleisten hat,
vielleicht ist so ein Sound/Video/Ethernet-IO-Interface ja auch für
andere noch nützlich.

--
Frank Buß, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
 
Oliver Bartels <spamtrap@bartels.de> wrote:

Du solltest Dir nur *genau* den PAL Standard ansehen, Stichworte
sind die PAL 8er Sequenz und die zwischen zwei Zeilen wechselnde
Burstphasenlage sowie die *exakt* einzuhaltende Farbträgerfrequenz.
Mit einem selbstgebauten DDS im FPGA ist das kein Problem,
man muss nur dran denken, sonst wundert man sich, warum der
TV rumzickt und der Videorekorder garnicht mag.
danke, werde daran denken.

Beim FPGA sind Hardware-Multiplizierer für die Quadraturmodulation
nützlich, bei Xilinx Spartan 3 oder Virtex II oder Altera gibt es
genügend von der Sorte. Für das sin(x) braucht es für die oberen
Bits eine Tabelle oder den Trick mit dem Priority Encoder und
Multiplexer oder, wenn man genügend Multiplier hat, auch über die.
Der Typ auf dem Starterkit-Board hat 18 Multiplier mit je 18 Bit Breite,
sollte also überhaupt kein Problem sein. Aber wie kann man mit einem
Priority-Encoder einen Sinus berechnen? Du meinst doch sowas hier:

http://www.semiconductors.philips.com/pip/N74F148N.html

Zur Zeit habe ich einfach eine Tabelle genommen, um beliebige Frequenzen
per Hz-Angabe direkt erzeugen zu können. Das ist allerdings zu ungenau,
die FFT-Anzeige meines Scopes zeigt da einiges an Oberwellen. In einem
DSP wurde der Vektordreh-Algorithmus erfolgreich eingesetzt:

http://groups.google.de/groups?threadm=ccr8hk%244gn%243%40newsreader2.netcologne.de

Dort waren allerdings auch nur wenige vorausberechnete Frequenzen
notwendig. Zumindest für die Audio-Ausgabe würde daher vielleicht der
CORDIC-Algorithmus besser sein und sogar noch für jedes Sample einzeln
verwendet werden können, was den Vorteil hätte, dann auch relativ leicht
einen Sinus-Generator für die Frequenzmodulation eines anderen verwenden
zu können und andere Effekte.

Werde da Ressourcen schonend wohl einen kleinen Microcode-Interpreter
implementieren, damit ich die Multiplier wiederverwenden kann,
schließlich brauche ich davon noch einiges für die FBAS-Signalgenerierung
und später das eigentliche Spiel (mal sehen, ob ich da 3D-Grafik in
den FPGA untergebracht bekomme).

--
Frank Buß, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
 
"Urban Stadler" <u.stadler@pfeilheim.sth.ac.at> wrote:

hi! eine frage: hast du irgendwelche resourcen zur entwicklung einer
ethernetsnittstelle mit dem spartan. mir schwebt nämlich das selbe vor
und hab mir vor 3 wochen den selben starterkit gekauft.
ich habe eben einen Distributor für den LAN91C111 gefunden, der mir auch
2 einzelne Stück verkauft hat. Als Basis für das Modul werde ich die 2.02
Version von Ethernut verwenden:

http://www.ethernut.de/de/download.html

Der Schaltplan darf auch für kommerzielle Zwecke in eigenen Projekte
verwendet werden. Ich entwerfe dann die Erweiterungsplatine erstmal nur
mit dem Ethernet-Controller und baue meinen Audio/Video-Ausgang auf einer
weiteren Erweiterungplatine (man kann ja 3 Stück an den Spartan
anstecken), dann kannst du, und andere Starterkit Besitzer, die auch
verwenden ohne unnötige Teile und ich kann die vielleicht sogar mal über
meine Firma verkaufen. Ganz in der Philosophie von Ethernut wird der
Schaltplan natürlich auch dann frei bleiben.

Für die Programmierung des Chips gibt es das Datenblatt und die
Beispielsourcen von SMSC. Ein TCP/IP-Stack wird das aufwändigste werden.
Da wird man zunächst einen Prozessor oder geeigneten Microcode
implementieren müssen, könnte dann aber auf Projekte wie dieses
zurückgreifen:

http://www.sics.se/~adam/lwip/index.html

Für den Microcode würde ich gerne einen Befehlssatz entwerfen, mit dem
man Lisp performant umsetzen kann, ist einfach eine schönere Sprache als
die üblichen wie Java oder C/C++.

--
Frank Buß, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
 
Oliver Bartels wrote:
*Ganz heißer Tipp*:
Vergiß das R2R Netzwerk und nimmt einen geeigneten integrierten
Wandler. Gerade bei einem Videosignal wird eine R2R Selbstbaulösung
analog einen Haufen Frust bereiten.
Hier wird ein 5-Bit-R2R-Netzwerk verwendet
http://www.rickard.gunee.com/projects/video/sx/tetris.php
und das Ergebnis sieht durchaus brauchbar aus. Vermutlich
will man mit dieser Auflösung keine Fotos anschauen, aber
für ein Videospiel scheint es locker zu reichen.

Markus
 
Frank Buss wrote:

Hier wird ein 5-Bit-R2R-Netzwerk verwendet
http://www.rickard.gunee.com/projects/video/sx/tetris.php

Verglichen mit anderen Systemen ist es dann aber doch etwas matschig und
mit sichtbaren Schattenwurf an den Kanten rechts, wohl wegen Reflexionen
o.ä. Ich möchte mein Interface vielleicht auch mal verkaufen können, daher
komme ich um die IC-Lösung nicht drumherum.
Reflexionen kommen doch von falscher/fehlender Leitungsanpassung? Das
sollte dann doch kein Problem des R2R-Netzwerkes sein?

Und die Matschigkeit ist doch wohl nur fehlender Kontrast? Das sollte
sich doch auch mit R2R machen lassen? (Ohne daß ich jetzt R2R
verteidigen wollte.)

Markus
 
Markus Kaufmann wrote:
Und die Matschigkeit ist doch wohl nur fehlender Kontrast? Das sollte
sich doch auch mit R2R machen lassen? (Ohne daß ich jetzt R2R
verteidigen wollte.)
Nebenbei ist das NTSC, was eine kleinere Bandbreite als PAL hat.
So scharf wie RGB kann es also auch mit dem besten DAC nicht sein.

Gerrit
 
Markus Kaufmann <markus.kaufmann@gmx.de> wrote:

Hier wird ein 5-Bit-R2R-Netzwerk verwendet
http://www.rickard.gunee.com/projects/video/sx/tetris.php
und das Ergebnis sieht durchaus brauchbar aus. Vermutlich
will man mit dieser Auflösung keine Fotos anschauen, aber
für ein Videospiel scheint es locker zu reichen.
sieht schon beeindruckend aus, wenn man den wenigen Aufwand bedenkt. Die
schwarz/weiß-Version hatte sogar nur 2 Widerstände an zwei
Digitalausgägnen, die direkt auf den Video-Eingang gingen. Hätten sich die
Entwickler früher sehr gefreut, solche Microcontroller zu haben (
http://www.pong-story.com/odyssey.htm).

Verglichen mit anderen Systemen ist es dann aber doch etwas matschig und
mit sichtbaren Schattenwurf an den Kanten rechts, wohl wegen Reflexionen
o.ä. Ich möchte mein Interface vielleicht auch mal verkaufen können, daher
komme ich um die IC-Lösung nicht drumherum.

--
Frank Buß, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
 
Markus Kaufmann <markus.kaufmann@gmx.de> wrote:

Reflexionen kommen doch von falscher/fehlender Leitungsanpassung? Das
sollte dann doch kein Problem des R2R-Netzwerkes sein?
wahrscheinlich nicht, aber bei solchen Schaltungen hier:

http://www.rickard.gunee.com/projects/video/pic/schematic_big.png

ist das auch nicht verwunderlich :) Dennoch: Respekt, mit welchen
Minimalaufwand man ein Telespiel bauen kann und wie er die
Signalgenerierung in den 16F84 heineinbekommen hat.

Und die Matschigkeit ist doch wohl nur fehlender Kontrast? Das sollte
sich doch auch mit R2R machen lassen? (Ohne daß ich jetzt R2R
verteidigen wollte.)
ich denke nicht, denn, ohne jetzt genau das PAL- oder NTSC-Format zu
kennen, das Bild wird meiner Meinung nach unscharf, weil bei hohen
Frequenzen im Zusammenhang mit den Wiederständen die parasitären
Kapazitäten zu ungewollten Filtern werden, die das Signal verfälschen.
Niedrigere Widerstandswerte könnten dem entgegenwirken, was dann aber
auch wieder mehr Stromverbrauch bedeutet und teuere, weil schnelle,
Digital-Treiber erfordert, mal abgesehen von dem zusätzlich
erforderlichen Ausgangstreiber.

--
Frank Buß, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
 
ahh
hast du den LAN91C111 bei ethernut bestellt oder woanders?


danke
urban
 
"Urban Stadler" <u.stadler@pfeilheim.sth.ac.at> wrote:

ahh
hast du den LAN91C111 bei ethernut bestellt oder woanders?
nein, bei http://www.dacomsued.de/ . Die wurden als Distributor von der
SMSC-Seite angegeben. Da ich aber zwei bestellt habe und wir beide ein
Board für das Spartan 3 Starterkit bauen wollen, wäre es wohl sinnvoll,
wenn ich nach dem Board-Entwurf auch gleich zwei bei PCB-Pool herstellen
lasse.

Bestücken wollte ich die dann hier lassen:

http://www.hupperz.de/

Die sind nicht ganz billig, aber läuft da problemlos und die bestücken auch
einzelne Platinen. Falls sich das natürlich einer hier in der Newsgroup
preiswert zutraut, dann vergebe ich auch gerne den Auftrag an diesen. Es
handelt sich beim LAN91C111 um ein 128 poliges QFP IC.

--
Frank Buß, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
 

Welcome to EDABoard.com

Sponsor

Back
Top