DViCO FusionHDTV DVB-T Dual Express

From LinuxTVWiki
Revision as of 02:44, 5 October 2008 by Dareni (Talk | contribs)

Jump to: navigation, search
DVico Fusion HDTV Dual Express PCB showing component labels

A hybrid DVB-T PCIe card from DViCO.

It is not supported under Linux. However, experimental support for the DVB-T side is available (see below for details).

Overview/Features

Able to deliver one analogue channel and one digital channel simultaneously or 2 digital channels. High definition resolution is 1920 x 1080. Features a power switch pass-through to allow it to turn the host system on automatically.

Components Used

  • 2 x Xceive 3008ACQ (tuner IC)
  • 2 x Intel WJCE6353 (digital demodulator)
  • Conexant CX23885 (A/V Decoder / PCIe bridge)
  • Pericom P15C.... (switch)
  • PIC16F73 (external audio adc ? -- its used as such on the Fusion5 RT (note- the PIC16F73 is currently unsupported under Linux, so audio from external analog sources (a/v inputs) will not work); or maybe its being used for remote control (although that might be natively handled by the cx23885)?; or maybe its being used in conjunction with RTC duty ?)
  • some Atmel eeproms
  • some others (RF switch)...

Text for components not legible in main image:

  • Oscillators:
    • X511 : 4.000000 KONY 0703
    • X301 : 28.636360 KONY 0703
    • X951,X901 : KONY 0716Y 20.480
    • X701,X801 : 32.000 KDK 7D
  • U501 : ANW S688H
  • U231 : ABE 632
  • U221,U411 : AXH704

Identification

 04:00.0 0400: 14f1:8852 (rev 02)
       Subsystem: 18ac:db78
       Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
       Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
       Latency: 0, Cache Line Size: 32 bytes
       Interrupt: pin A routed to IRQ 18
       Region 0: Memory at fe800000 (64-bit, non-prefetchable) [size=2M]
       Capabilities: [40] Express Endpoint IRQ 0
               Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-
               Device: Latency L0s <64ns, L1 <1us
               Device: AtnBtn- AtnInd- PwrInd-
               Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
               Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
               Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
               Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0
               Link: Latency L0s <2us, L1 <4us
               Link: ASPM Disabled RCB 64 bytes CommClk+ ExtSynch-
               Link: Speed 2.5Gb/s, Width x1
       Capabilities: [80] Power Management version 2
               Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
               Status: D0 PME-Enable- DSel=0 DScale=0 PME-
       Capabilities: [90] Vital Product Data
       Capabilities: [a0] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
               Address: 0000000000000000  Data: 0000

Other images

Making it Work

Firmware

The driver requires the standard xc3028 firmware (xc3028-v27.fw), to obtain the firmware see instructions within the extract_xc3028.pl script (available within linux/arch/Documentation/video4linux/).

Drivers

There is currently no in kernel drivers for the device. However, the card's digital functionality is supported in the main V4L-DVB tree available here: http://linuxtv.org/hg/v4l-dvb/

The patches applied to the tree above were derived by work originally completed by Chris Pascoe, the older version of these patches can be found here: http://www.itee.uq.edu.au/~chrisp/Linux-DVB/DVICO/

Experimental Driver Test Results

  • Note: Apply this Patch to the xc-test branch for making it work with standard xc3028 firmware (xc3028-v27.fw) - otherwise the card will not be able tuning of non-Australian frequencies.
  • Successful tuning of typical German channels with standard xc3028 firmware and patched driver.
  • Successful tuning of typical Australian channels with stoth/v4l-dvb/

Sample kernel output

Initial loading of the driver:

cx23885 driver version 0.0.1 loaded
ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 19 (level, low) -> IRQ 18
CORE cx23885[0]: subsystem: 18ac:db78, board: DViCO FusionHDTV DVB-T Dual Express [card=11,autodetected]
input: i2c IR (FusionHDTV) as /devices/virtual/input/input7
ir-kbd-i2c: i2c IR (FusionHDTV) detected at i2c-0/0-006b/ir0 [cx23885[0]]
cx23885[0]: i2c bus 0 registered
cx23885[0]: i2c bus 1 registered
cx23885[0]: i2c bus 2 registered
cx23885[0]: cx23885 based dvb card
xc2028 0-0061: creating new instance
xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner
DVB: registering new adapter (cx23885[0])
DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)...
cx23885[0]: cx23885 based dvb card
xc2028 1-0061: creating new instance
xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
DVB: registering new adapter (cx23885[0])
DVB: registering frontend 1 (Zarlink ZL10353 DVB-T)...
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:02:00.0, rev: 2, irq: 18, latency: 0, mmio: 0xcdc00000
PCI: Setting latency timer of device 0000:02:00.0 to 64

Upon first tune (on first tuner):

xc2028 0-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
xc2028 0-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000.
xc2028 0-0061: Loading firmware for type=D2620 DTV7 (88), id 0000000000000000.
xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.

Note: If the card does not work ensure that 80 firmware images were loaded, if not see the firmware section above to get the correct version.

Remote Control Support

External Links