This article discusses a family of silicon ICs, produced by Xceive, that combine RF tuner and analog IF demodulator functions within one chip. In addition, this page addresses the drivers that support these chips, as well as their firmware requirements.
IC Family Members
The XC5000 has robust support for both analog and digital signals; it supports the analog TV broadcast standards (NTSC, PAL, & SECAM), CVBS, SIF and most digital TV standards (ATSC, DVB-C, DVB-T, DMB-T, & ISDB-T).
XC5000, intended for high-end TV applications that need noise performance exceeding that of can tuners. DSP blocks allow additional baseband programming functions for adding channel optimization features in the future.
Features a noise figure of 5dB. The XC5000 has a Video SNR greater than 53dB and phase noise of -95dBc/Hz at 10kHz
XC4000 family for midrange "value TV" markets, leaving out the QAM256 functions for handling ATSC/NTSC signals.
Features a noise figure of 5dB. The XC4000 has a 50dB SNR and noise figure of -85.
The XC4000 is not currently supported under Linux, although a project started in June of 2009 to add such support. See http://www.kernellabs.com/blog/ for more details.
A modified version of the kernellabs.com XC4000 driver and firmware is available at http://istvanv.users.sourceforge.net/v4l/xc4000.html, as part of a patch that implements support for Leadtek cards that use this tuner chip (DTV1800 H, DTV2000 H Plus, and PxDVR3200 H). This implements analog TV, radio, DVB-T with 6/7/8 MHz bandwidth, power management, and makes a number of other minor changes.
There are two drivers versions:
- An in kernel driver - kernels 2.6.24+ will have built in support for the XC5000
- An out-of-tree 3rd party driver - from mrec.
The information in this section is directed only towards support for the in-kernel driver. For 3rd party driver requirements and/or information, please consult those sources directly.
How to Obtain the Firmware
There are two versions of firmware that you might need, depending on what version of the xc5000 driver you currently have installed.
If the dmesg says you need dvb-fe-xc5000-1.1.fw:
A script to extract the xc5000 firmware from a specific windows driver is available:
1) Download the compressed Windows driver file & the XC5000 firmware extraction script, "extract.sh", from http://www.steventoth.net/linux/xc5000. You can do this from the commandline by simply running:
wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip http://www.steventoth.net/linux/xc5000/extract.sh
2) Run the perl extraction script
- From the output you will observe that the script first recovers the Windows driver file "hcw85bda.sys" from the zip archive, and then extracts the firmware contained within it into the current directory.
3) As per the instructions found at the end of the script's output, manually copy the generated firmware file to your firmware directory
cp dvb-fe-xc5000-1.1.fw /lib/firmware
If the dmesg says you need dvb-fe-xc5000-1.6.114.fw (Linux 2.6.31 and current v4l-dvb trunk):
Xceive has granted permission to redistribute the latest version of their firmware (which includes various fixes and performance improvements).
1) Download the firmware from http://www.kernellabs.com/firmware/xc5000/dvb-fe-xc5000-1.6.114.fw
2) Copy the firmware to your firmware directory
cp dvb-fe-xc5000-1.6.114.fw /lib/firmware
Licensing information is available here: http://www.kernellabs.com/firmware/xc5000/README.xc5000