A Linux device-driver for the
saa7146 chipset by Philips-Semiconductors
The saa7146 is a chipset by
Philips-Semiconductors
(now called NXP)
which can be found on different video hardware like analog frame-grabbers,
tv-cards, dvb-cards or other custom video boards and professional
video-editing-hardware.
There is no real difference between the saa7146
and the 'saa7146a'. The "a" just indicates, that it is a revised version and that
some bugs have been fixed. Because of this, I will always refer to the chipset
as "saa7146". As far as I know, the latest revision of the saa7146 is revision 3.
The saa7146 is a very universal chipset, so the
board-designer has much freedom when constructing "his" board. But as always,
engineers don't invent the wheel twice, so there are many similarities:
The saa7146 works with standardised digital video-streams rather than
video-inputs, so it there is nearly always a video decoder like the saa711x by Philips-Semiconductors present.
If the digital video-stream shall be routed to an analog output
(say: a TV) again, the 'saa7185' by Philips-Semiconductors can be used.
If the hardware is some sort of tv-card, it needs some sort of
tuner, too.
But here end the similarites: if the board-designer wants multiple video-
and audio-inputs, fancy stereo-decoding or MPEG-Encoding/Decoding, he can
do whatever he wants: there are numerous helper-chipsets for these features.
If you have some unidentified chipset on your board,
you may be able to find some specifications using the seach engines
of the manufacturers.
Feel free to send any suggestions, improvements, bug-reports or questions to
michael@mihu.de. This is the preferred
way.
Some notes on the saa7111(a), saa7112, saa7113, saa7114, saa7140...
The whole saa711x-family is not directly comparable
to the saa7146 and therefore my driver cannot be used with cards that
have any of these chipsets on it (e.g. Asus 3800, ...) Here is a short explanation:
The saa7146 is an active component, e.g. it
is a pci busmaster component which can initiate and process data
transfers on the pci bus. The whole saa711x-family in contrast are
passive components.
The saa711x is a so-called video-decoder, that means that it decodes
an analogue video signal (for example from your vcr)
to a digital byte stream. Sometimes and image scaler is present, too, for example on the
saa7140. Programming these devices isn't hard at all. They
have to be programmed by a master chipset via a
simple bus called I2C and do not need to be touched afterwards.
They are not pci busmaster capable and therefore cannot be
found on the pci bus. They are sort of slave chipsets only.
On most graphic adapters which have fancy video-in and/or
video-out capabilities, the pci busmaster chipset is the
main graphic chipset (e.g. GeForce2, GeForce3, TNT2, ...).
This chipset drives the saa711x as a slave.
So you don't need a driver for the saa711x, but a driver
for you graphic adapter that supports the video-in / video-out
capabilities. So you should concentrate on finding a driver
for that thing first. My driver (and I) cannot help
you here! Unfortunately, most companies don't release data sheets for their products
into public. But without details
about the chipsets and how they are wired
together, you are simply out of luck.
Details about the driver
The saa7146 driver and various drivers for specific cards are part of the 2.6 Linux kernel series.
The following carda are supported:
saa7146 based DVB cards
There are some quite popular saa7146 based DVB cards out there, so-called
full-featured cards (with an on-board mpeg2-decoder) and budget-cards, which
only provide the raw transport stream.
Please refer to the LinuxTV.org project page for detailed download and
installation instructions:
If you have questions about these DVB cards or DVB in general, please send them to the LinuxTV.org DVB mailinglist.
'Multimedia eXtension Board' by Siemens-Nixdorf
The 'Multimedia eXtension Board' (or short: mxb)
is a plain tv-card that was build until October 1998
to supplement the Siemens "Scenic"-PC series.
Detailed installation instructions can be found on the
'Orion' and 'Gemini' frame grabber cards by Hexium
For further informations about these cards have a look at the official homepage.
The Orion series (aka. HV-PCI6) was released in 1997 and is supported by the hexium_orion
driver. It is based on a SAA7146 and SAA7110 video-decoder.
The Gemini series was released in 2001 is supported by the driver called hexium_gemini. It is based
on a SAA7146 and a Samsung KS0127B video-decoder instead of the SAA7110. The KS0127B supports faster channel
switching time (about 60ms) and both square pixel and CCIR modes. The Gemini Dual series has two
KS0127B connected simultaneously to the 2 video-input ports of the saa7146. It's possible to grab and overlay
images at the same time, but this is currently not supported.
All cards have the same input numbering. The first input (camera 0) is the farest connector from the PCI bus.
The HV-PCI6 and Orion series have two version. The first one has a SVHS connector in the camera 0
position and three BNC connectors. The second version has four BNC connectors.
'CM7326 PC/104-plus frame grabber' by Real Time Devices USA, Inc.
The CM7326 is an image capture card for the industrial 104-pin PC/104 AT bus
and is manufactured by Real Time Devices USA, Inc.
For further informations, have a look at the official homepage:
Thanks to Miguel Freitas for writing this driver, thanks to François Seingier for
testing the driver intensively.
The driver is called cm7326.
'Mediafocus II' by Technisat
The MediafocusII is an analog satellite tv card.
Detailed installation instructions can be found on the
Download old drivers
For historical reasons, you can download old versions of the driver (before it was integrated into the Linux kernel) here:
Datasheets and specifications
Direct download of some datasheets:
- saa7146a.pdf
(saa7146a: Multimedia bridge, hiph performance scaler, PCI circuit)
- saa7111a.pdf
(saa7111a: Enhanced Video Input Processor)
- saa7184_85b.pdf
(saa7185: digital video-encoder)
- saa5281.pdf
(saa5281: Integrated Video input processor and Teletext decoder)
- tea6420.pdf
(tea6420: bus-controlled audio matrix-switch)
- tea6415c.pdf
(tea6415c: bus-controlled video matrix-switch)
- tda9840.pdf
(tda9840: TV and VTR stereo/dual sound processor with digital identification)
- fi1216mk2.pdf
(fi12616mk2: Desktop video tuner system CCIR B/G)
- saa5249.pdf
(saa5249: Integrated video input processor and Teletext with Background Memory Controller)
Windows drivers
Philips-Semiconductors once had a dedicated web-page for the saa7146,
but it has been shut down. On that page, you could download sample-drivers for Windows 95 and
Windows NT for their demonstration board called 'dpc7146'. For your convenience, I zipped the whole binary stuff that was available on the page.
But because of the fact that you are reading my page, I suppose you
are not interested in this stuff, right? ;-)