[pvrusb2] AVerMedia HC80 AVerTV Hybrid ExpressCard/54 support?
Mike Isely
isely at isely.net
Wed Apr 7 22:22:50 CDT 2010
On Wed, 7 Apr 2010, Bill Paxton wrote:
> Hi Mike and list,
>
> I've got a USB card that uses the CX23416, and from a cursory search,
> it seems the pvrusb2 driver will be the best hope of making this card
> work anytime soon. If this is incorrect and there is a better place to
> hold this conversation, please let me borrow your internet compass...
>
> As stated in the subject, the card in question is an AVerMedia HC80
> AVerTV Hybrid ExpressCard/54. This *is* a USB device, only in the
> ExpressCard format. (ExpressCard supports both PCI & USB modes, for
> the non-laptop crowd.) I'm pretty sure the reason is because the
> ExpressCard spec allows the card to pull a lot more current than a USB
> port, the spec is 1.75A @ 3.3V; so no wall wart required.
I'm familiar (somewhat) with the ExpressCard format. Interesting device
you've found here...
[...]
>
> ----
>
> Googling around turned up nothing WRT linux support. In fact the card
> and it's successors HC81/82 are rarely mentioned at all. Figuring I'd
> have to know what I was holding before I start asking around, I went
> ahead with the delicate surgery required to open and then identify all
> the major components. This is what led me to this list.
Ouch. That *is* delicate. But you've uncovered some interesting
bits...
>
> ----
>
> Main ICs:
>
> EEPROM: Atmel AT24C64AN-10SU-2.7, 64K I2C, 8-pin SOIC
I2C EEPROMs all use a relatively standard interface (I2C). Odds are
this contains USB config info for the FX2, maybe even the FX2's firmware
(that would be a lucky break).
> Encoder: Conexant CX23416-22, 233-pin BGP
Yup, that's the mpeg encoder.
> Decoder: Conexant CX25843-24Z, 80-pin TQFP
The cx25840 sub-device driver will handle this.
> Analog: Xceive XC3028ACQ, NTSC/PAL/FM, 40-pin QFN
> Digital: LG LGDT3033 VSB/QAM, 100-pin TQFP
I'm not specifically familiar with these, but the tuner infrastructure
in v4l-dvb is generally so good that I don't have to care very much
either :-)
> Line In: Wolfson WM8739S 24-bit Delta/Sigma stereo ADC, 20-pin SSOP
Another familiar part.
> SDRAM: Elite SMT M12L64322A, 512K x 32 bit x 4 banks, 86-pin TSOP(II)
Nothing unusual there.
> USB: Cypress CY7C68013A-100AXC, USB 2.0 Microcontroller, 100-pin TQFP
And that's the FX2...
>
> Others ICs:
>
> Voltage regulator IC, GMT G965 1.5A positive regulator, 8-pin SSOP
> EMI reduction IC, PulseCore (now On Semi) P2781AF, 8-pin SSOP
> 2x bus switch ICs, Pericom PI3B3861, 10-bit, 2-port bus switch, 24-pin QSOP
> unknown, (opamp?) markings "4231 / 4553 / 550" located near Xceive inside tuner shield.
>
> ----
>
> I've casually read the entire pvrusb2-list archives for a couple
> hours. There is never a mention of this card, I don't think the word
> "Aver" is ever spoken. I know Mike's adage that for pvrusb2 to have
> hopes of supporting a unit, it should have a 23416 & an FX2
> (CY7C68xxx) USB micro. This meets those requirements! :^)
>
> Great, but here's where I get lost. I'm sure extracting the firmware
> from the Windows drivers is going to be different. And that's just the
> start.
>
> So... what do you think? Is there hope? Any help greatly appreciated,
> and any further info or work required, just post or email.
So far it sounds like this device fits the pedigree. I don't see
anything that would prevent the pvrusb2 driver from supporting this.
But obviously the devil is in the details.
The first and biggest step is to ensure that the FX2 runs properly, and
for that it requires firmware. The FX2 can load firmware by itself from
a connected I2C ROM or it can be downloaded from the host. My
experience is generally that Hauppauge devices get their FX2 firmware
downloaded while non-Hauppauge devices (not that I have a large sample
set here) have the firmware in ROM. Given the size of that I2C ROM
(64K) it may contain the firmware already.
A starting point for you would be to edit pvrusb2-devattr.c and add a
new item for your device. Look in pvrusb2-devattr.h for the structure
declarations; for now just poke around and see what you can figure out.
You'll need your device's USB manufacturer ID and device ID added to
pvrusb2-devattr.c as well so the kernel can recognize your device and
associate it with the pvrusb2 driver. From the USB endpoint map, this
data is:
Manufacturer ID: 0x07ca
Product ID: 0x0c80
Look at the other pvrusb2-devattr.c items to get a general idea.
Odds are you'll get the analog side working first - it's actually the
more complex side however there is less variance among models there so
the pvrusb2 driver might already be able to handle it without many
changes. (Yes, there will still be changes.)
There's certainly a lot more to describe, but that's a starting point.
-Mike
--
Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
More information about the pvrusb2
mailing list