Mailing List archive

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

[linux-dvb] Re: Progess on VP-1020



Just to follow up with more info, as a few people are
interested.

Here is the packet sent to the asic to control the tuner / decoder
combo.

This is as in the kernel driver module. Be wary, because it
is possible to send packets directly to the asic by calling an ioctl.
The 'sdk' demo + multi_pid.o does this, and some of the hard coded
packets don't seem to fit this pattern. But it could be this
demo is not correct, or description wrong ... Or mistakes do
happen :)

Please refer to previous email for other info, e.g. bttv lockups,
i2c and gpio pin 0, new asic detection ....

I may have referred to alps_b2srv, I think maybe bsru6 (e.g.
preferred comparison frequency ratio is 1 Mhz, not 62.5 Khz, 
fM_CLK is 88000000). Probably only matters for old asic.

new asic tuner packet
=====================

example values
lnb_lo=5150,lnb_hi=11300;
h_v=0;
freq=4000;
symrate=28125000;

symrate exact value (e.g.  28125000)
freq / 1000 (e.g. 4000)
freq_diff = freq below lnb_lo or freq above lnb_hi

tuner packet sent to aa

byte
0:  len = 9
1:  0
2:  (freq_diff & 0x7f ) >> 8
3:  freq_diff low byte
4:  1  (could be any reference division ratio)
5:  (sym >> 16) & 0x7f;
6:  sym >> 8
7:  sym;
8:  0x80    (i_Q)
    0x40    (h_v)
    0x20    (symbol rate > 8000)
    0x10    0
    8     = 0
    4       set if freq_diff <=  1530
    2     = 0
    1     = 1 for 22K

9: checksum (~bytesum(buf[0..8]) + 1)

old asic tuner packet
=====================

example values:
lnb1=5150,lnb2=11300;
h_v=0;
freq=4000;
symrate=28125;

symbol rate div 1000, e.g symrate=28125
freq / 1000 (e.g. 4000)
freq_diff = freq below lnb_lo or freq above lnb_hi
symcalc = ((long long)symbolrate << 20) / 88000 

tuner packet sent to aa

0:  0
1:  (freq_diff & 0x7f ) >> 8
2:  freq_diff low byte
3:  1  (could be any reference division ratio)
4:  symcalc ( 13..20)
5:  symcalc ( 4 .. 12)
6:  symcalc ( 0 .. 3) in high nibble
7:  0x80    (i_Q)
    0x40    (h_v 13/18V)
    0x20    (symbol rate > 8000)
    0x10    0
    8     = 0
    4       set if freq_diff <=  1530
    2     = 0
    1     = 1 for 22K

8: checksum (~bytesum(buf[1..7]) + 1)

Jamie
jhonan /at/ optushome.com.au


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index