FF-Karten Full-TS Mod

Aus VDR Wiki
Version vom 21. September 2014, 14:10 Uhr von Mpenno (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Allgemeines

Idee und Entwicklung

Diese Idee des Umbaus von Full-Featured DVB-Karten wurde von Oliver Endriss entwickelt, um die Bandbreitenbeschränkung der SAA711x Full-Featured-DVB-Karten aufzuheben.

Was genau bringt dieser Mod?

Bei den Full-Featured Karten durchläuft das DVB-Signal den DSP und das auf der Karte befindliche RAM, bevor es auf den PCI-Bus gebracht wird. Die damit erreichbare Transferleistung ist auf etwa 12 MBit begrenzt und deutlich kleiner als bei Budget-Karten. Übersteigt die Bitrate diesen Wert, kommt es zu Datenverlust.

Durch diese Modifikation werden die Daten wie bei Budget Karten direkt an den PCI-Bus gesendet. Nach der Umrüstung hat die FF-Karte die Transferleistung einer Budget-Karte.

Allgemeine FAQ

  • Wird die Fullfeatured durch den Full-TS-Mod zu einer Budget-Karte?
Nein. Der MPEG-Decoder und TV-Out können ganz normal weiter genutzt werden. Nur der Flaschenhals, der die Transferleistung begrenzt, wird umgangen.
  • Wird durch den Full-TS-Mod der DSP umgangen?
Ja.
  • Wenn der DSP kaputt ist, kann man die Karte dann als Budget verwenden?
So etwas ist machbar, erfordert jedoch Anpassungen im Treiber. Die Karte würde dann exakt wie eine Budget-Karte funktionieren, siehe auch der Budget-Patch.
  • Welche Anpassungen an die DVB-Treiber sind nötig?
Damit der Treiber die Karte als solche erkennt, muss die PCI-Kennung im EEPROM mit der einer Budget überschrieben werden (FF-Karten EEPROM-Fix). Außerdem muss der ENT-Eingang vom lnbp16 auf GPIO3 am SAA7146 gelegt werden. Sonst fehlt der 22 kHz Ton, denn der wird bei den FFs normalerweise über den AV7110 geschaltet.
  • Könnte man so auch eine Dual-Tuner Full-Featured-Karte realisieren?
Ja, dies wurde auch schon getestet, erfordert aber Anpassungen im Treiber. Und einer der beiden Tuner hat immer noch die begrenzte Transferleistung, da dieser über den DSP geroutet wird.

Hardware

Wie funktioniert der Mod?

Das DVB-Signal wird vom Tuner/CAM über den Port_b des SAA7146 direkt auf den PCI-Bus gelegt (statt wie zuvor vom Tuner über den AV7110 auf den Port_A des SAA7146). An den Port_B des SA7146 müssen neben den Datenleitungen des Tuners noch das VS_B-Signal angelegt werden. Dieses wird mit einer Teilerschaltung generiert (benötigt 74HC4040 und 74HC74).

Welche Karten lassen sich umrüsten

Alle auf dem Technotrend Design (TT PCline Premium Family) basierende Full-featured-DVB-Karten (mit dem AV7110 und dem SAA7146) sollten sich umrüsten lassen, sofern der port_B des SAA7146 nicht schon belegt ist.

Dies ist jedoch je nach Revision der Karte mit mehr oder weniger Aufwand verbunden. Erfolgreich getestet wurden bisher:

  • DVB-S: Rev 1.3, 1.5, 2.1, 2.2, 2.3
  • DVB-C: Rev 2.1

DVB-S Rev 1.x/2.1 und DVB-C Rev 2.1

Bei diesen Karten müssen die Signalleitungen vom AV7110/Tuner zum Port_B des SAA7146 gezogen und das VS_B Signal mit der Teilerschaltung (74HC4040 und 74HC74) generiert werden. Dies ist auf der Seite von Oliver Endriss sehr genau beschrieben.

Benötigte Bauteile:

  • Feiner Fädeldraht/Lackdraht
  • Dicker Kupferlackdraht für die Spannungsversorgung
  • Abblockkondensator 100 nF für die Spannungsversorgung
  • 74HC74
  • 74HC4040

Hier einige Bilder

DVB-S Rev. 2.2

Bei diesen Karten sind D1_B[0-7], LLC_B, HS_B, PXQ_B zwischen AV7110 und SAA7146 ab Werk im Original-Layout bereits verbunden. Lediglich die beiden unbestückten ICs über dem Tuner für das VS_B Signal (Teilerschaltung) müssen nachgerüstet werden. Des weiteren wurde festgestellt, dass die Spannungsversorgung offenbar keinen Kontakt zum Rest der Platine hat. Man muss noch Vdd mit +3,3 V verbinden (für die Spannungsversorgung der beiden ICs der Teilerschaltung).

Benötigte Bauteile (damit es auf die Platine passt):

  • Fädeldraht/Drahtbrücke/0Ohm-Widerstand zur 3,3 V Spannungsversorgung
  • 2x Abblockkondensator, Größe 0805, Keramik 100 nF
  • 74HC74 (TSSOP)
  • 74HC4040 (SO-16)

Hier ein paar passende Bilder:

DVB-S Rev. 2.3

Bei diesen Karten sind D1_B[0-7], LLC_B, HS_B, PXQ_B zwischen AV7110 und SAA7146 ab Werk im Original-Layout bereits verbunden. Lediglich die beiden unbestückten ICs diagonal oben rechts vom Tuner für das VS_B Signal (Teilerschaltung) fehlen. Selbst die Abblockkondensatoren für die beiden ICs sind in der Regel schon bestückt.

Benötigte Bauteile (damit es genau auf die Platine passt):

  • 74HC74 in TSSOP
  • 74HC4040 in TSSOP
  • (ggf. 2 x Abblockkondensator, Größe 0805, Keramik 100 nF, sollte aber schon bestückt sein)

Die Chips sind in der benötigten TSSOP-Bauform nur schwer zu bekommen.

Einige Bilder:

DVB-C Fujitsu Siemens Rev.C

Die Karte von FuSi hat ein anderes Layout als die bereits oben genannten Beispiele. Die Signalleitungen vom av7111 können am senkrechten CAM-Anschluss und die Leitungen zum saa7146 können am linken Port des Analogmoduls abgegriffen werden. Zusätzlich müssen eine Leitung für das Signal "PXQ_B" und ein Abgriff für 3,3V direkt von der DVB-C Karte entnommen werden. Dazu muss der Lötklecks, der im Originalzustand den "PXQ_B" Eingang des saa7146 auf 3,3V legt, entfernt werden. Wer den Aufwand nicht scheut, kann sich auch die 3,3V aus den 5V erzeugen, da ein 5V PIN am CAM-Stecker zur Verfügung steht.

Signalleitungen und Anschlüsse der FuSi DVB-C

Aufgrund der Stiftleisten lässt sich hier der Full-TS-Mod leicht durchführen. Eine kleine Platine, die mit den beiden ICs und den Blockkondensatoren bestückt ist, wird auf beiden Stiftleisten gesteckt.

Augesteckter Full-TS Mod auf der FuSi DVB-C
Bestückte Platine für Full-TS Mod der FuSi DVB-C

Bestückungsliste:
IC1: SN74HC74N
IC2: MC74HC4040N
C1: 100nF
C2: 100nF
S1: 26er Sockelleiste
S2: 20er Sockelleiste
S3: Steckkupplung von einer alten Soundkarte

Der Nachteil ist hier allerdings, dass ein vorhandenes Analogmodul (welches den Einsatz des Full-TS-Mods komplett ausschließt) oder CAM-Modul nicht mehr steckbar wäre.

  • * * 4x unbestückte Platinen und Eagle-Planungsdaten sind noch vorhanden und können versandt werden. Bei Bedarf über www.vdr-portal.de eine Nachricht an "mpenno" senden * * *

Software FAQ

  • Wie installiere ich den Treiber/die Kernel-Module?
Derzeit (Stand 04/2008) muss der Treiber aus den hg-repository-quellen von Oliver Endriss kompiliert werden. Diese Modifikation wird aber vermutlich mit der Zeit Einzug in den offiziellen Kernel finden, so das eigenständiges kompilieren überflüssig werden sollte (wie beim 4MB-mod).
  • Wie lade ich den Treiber / das Modul um den Full-TS-Mod zu aktivieren?
Dazu muss der DVB-Treiber mit der Option driver "full_ts=1" geladen werden:
modprobe dvb-ttpci full_ts=1
  • Wie kann ich prüfen ob mein Kernel-Modul den Full-TS-Mod unterstützt?
modinfo dvb-ttpci | grep full_ts
Dabei muss
parm:           full_ts:enable code for full-ts hardware modification: 0 disable (default), 1 enable (int)
angezeigt werden.
  • Was passiert wenn ein Karte ohne Hardware-Änderungen mit der full_ts=1 Option geladen wird?
Reines TV schauen geht noch, dabei wird ja nichts über den PCI-Bus übertragen. Wenn jedoch versucht wird mit der FF eine Aufnahme zu machen, geht das bei full_ts=1 nur mit modifizierter Karte. Ansonsten gibt es kein Signal, da der Port_b ja nicht angeschlossen ist (und der VDR stürzt dann in der Regel ab).
  • Was passiert, wenn zwei FF-Karten im VDR stecken und die eine die Modifikation hat, die andere aber nicht? Gibt es da Probleme oder wird das automatisch berücksichtigt?
Kein Problem, wenn das EEPROM richtig programmiert wurde. Genau deshalb kann eine Kennung in das EEPROM geschrieben werden (siehe nächste Frage).
  • Ist es möglich, den Full-TS-Mod irgendwie treiberseitig automatisch zu erkennen, ohne "full_ts=1"?
Ja, ist im Treiber bereits eingebaut. Damit dies funktioniert, muss man einmalig das folgende Skript aufrufen (benötigt i2c-tools).
Datei
full-ts.sh
#!/bin/bash
if [ -z $1 ] ; then
        echo "Usage: $0 <number of I2C bus>"
        echo "Tool to add the 'full-ts' signature to the eeprom of a full-featured card"
        echo
        echo "I2C busses found:"
        i2cdetect -l
        exit 1
fi

echo "(Please ignore 'readback' warnings!)"
i2cset -y $1 0x55 0 0x4f b
sleep 1
i2cset -y $1 0x55 1 0x45 b
sleep 1
i2cset -y $1 0x55 2 0x01 b


Obiges Skript als .sh-Datei speichern (z.B. "full-ts.sh"), diese dann mit "chmod a+x full-ts.sh" ausführbar machen und dann starten. Der VDR muss dabei gestoppt und das dvb-ttpci-Modul geladen sein. Falls Readback-Warnings auftreten können diese ignoriert werden. Das Kernelmodul i2c-dev wird für das Auflisten der I2C-Busse zusätzlich benötigt:
modprobe i2c-dev
Den Patch sollte man jedoch erst anwenden, wenn der Full-TS-Mod erfolgreich getestet wurde. Im Original steht im EEPROM übrigens ff ff ff statt 4f 45 01, damit sollte man den Originalinhalt des EEPROMs wiederherstellen können, falls man den Patch wieder deaktivieren möchte. Der Inhalt des EEPROMs kann übrigens mittels
i2cdump <Bus> 0x55
ausgegeben werden.
  • Eintrag im syslog: woran erkenne ich so eine Karte?
Wenn der Kernel die modifizierte Karte erkennt, steht im syslog folgender Eintrag:
 dvb-ttpci: full-ts mode enabled for saa7146 port B

Links

  1. Platine von kls
Ansichten
Meine Werkzeuge
Navigation
mitmachen
Werkzeuge