Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Airstar2 and VHF



On Sun, 19 Dec 2004, John Dalgliesh wrote:

On Sat, 18 Dec 2004, Christian Schmitt wrote:
Hello,

i'm using a Technisat Airstar2 for DVB-T reception. It works quite
well, but there is one issue: the driver (skystar2) seems to be unable
to tune to VHF frequencies, which makes it impossibel to receive 4
channels here in Frankfurt/Germany. I already searched the list
archives and found some other people reporting the same problem but so
far no working solution. The problem does not occur under windows, so
it should work under Linux, too. Since i'm not a programmer, I can not
solve the issue myself, but i'll be more than happy to help with
fixing/testing. Are there currently any efforts to make it work?
Yes, I am trying to use one in Australia, where all the channels are 7 MHz
bandwidth like the German VHF channels - so I have even more reason to
care :)

I've got a pretty good idea of what to do, but I haven't found any time to
try it out yet, and since I'm leaving for two weeks holiday tomorrow, it
doesn't look like I'll get to it this year.

But I'll be sure to post here when I do get it working.
Currently Bjarne Steinsbø and me are working a driver for the b2c2-usb devices. For the tests we are using a sky2pc (equipped with stv0299) and a air2pc box (equipped with a mt352).

We already did some usb snooping with the air2pc card in windows. Bjarne, who has the air2pc box, did a scan in windows for channels and recorded the usb traffic.

After letting a script doing some beautification we were able to extract the tuning information. I adapted the samsung_tdtc9251dh0_pll_set in skystar2.c to values I read from the reverse-engineering. (find a patch attached, applies against recent cvs). Please try it and report.

I'm not a signal expert, means I don't know what the regs CONT_1|0 of mt352 acutally mean. Maybe it is a complete mistake and it will only fit for the usb boxes...

If someone of you is interested in more reverse-engineering data just ask.

Hope this helps,
Patrick.

--
Mail: patrick.boettcher@desy.de
WWW: http://www.wi-bw.tfh-wildau.de/~pboettch/
Index: skystar2.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c,v
retrieving revision 1.60
diff -u -3 -p -r1.60 skystar2.c
--- skystar2.c	19 Dec 2004 18:00:44 -0000	1.60
+++ skystar2.c	19 Dec 2004 23:08:30 -0000
@@ -2358,19 +2358,19 @@ static int samsung_tdtc9251dh0_demod_ini
 int samsung_tdtc9251dh0_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params, u8* pllbuf)
 {
 	u32 div;
-	unsigned char bs = 0;
+	u8 bs = 0x01, tmp = 0xb4;
 
 	#define IF_FREQUENCYx6 217    /* 6 * 36.16666666667MHz */
 	div = (((params->frequency + 83333) * 3) / 500000) + IF_FREQUENCYx6;
 
-	if (params->frequency >= 48000000 && params->frequency <= 154000000) bs = 0x09;
-	if (params->frequency >= 161000000 && params->frequency <= 439000000) bs = 0x0a;
-	if (params->frequency >= 447000000 && params->frequency <= 863000000) bs = 0x08;
+	if (params->frequency >= 48000000 && params->frequency <= 154000000)  { tmp = 0xb4; bs = 0x09; }
+	if (params->frequency >= 161000000 && params->frequency <= 439000000) { tmp = 0xb4; bs = 0x02; }
+	if (params->frequency >= 447000000 && params->frequency <= 863000000) { tmp = 0xbc; bs = 0x08; }
 
 	pllbuf[0] = 0xc2; // Note: non-linux standard PLL i2c address
 	pllbuf[1] = div >> 8;
    	pllbuf[2] = div & 0xff;
-   	pllbuf[3] = 0xcc;
+   	pllbuf[3] = tmp;
    	pllbuf[4] = bs;
 
 	return 0;

Home | Main Index | Thread Index