[linux-dvb] [patch] Improvement dvb-s2 lock with KNC1 DVB-S2 Plus, Satelco DVB-S2, TT S2 3200, Technisat DVB-S2

jlacvdr jlacvdr at gmail.com
Tue Oct 9 17:24:02 CEST 2007


2007/10/9, Manu Abraham <abraham.manu at gmail.com>:
> jlacvdr wrote:
> > 2007/10/9, Manu Abraham <abraham.manu at gmail.com>:
> >> jlacvdr wrote:
> >>> I rewrote a part of stb0899_dvbs2_algo( ) to remove duplicate source
> >>> code and to get a source code more readable.
> >>> I added also re-initialization of some registers.
> >>> The result is a lower probability to don't obtain the lock.
> >>>
> >>> I tested on TT-s2 3200 and on Knc1 dvb-s2 plus.
> >>> It must work on other cards, the patch touch only stb0899 part.
> >>>
> >>> I don't remember the time duration to lock, but if you want I can measure it.
> >>>
> >>> The aim of this patch, it's obtain the lock all the time.
> >>>
> >>> Regards,
> >>>
> >> I doubt whether there is a problem in acquiring LOCK on the KNC1, Satelco and the TT cards.
> >
> > without the patch, I can't lock all the time, and it's seems that
> > other persons have the same problem.
> >
>
> Some cards, yes. What transponder where you trying to tune with KNC1 card and having issues ?
on Astra 19.2E: 12581,12721,12522
and HotBird 13.0E

>
> >
> >> Julian, Marco can you guys please confirm ?
> >>
> >>
> >>
> >> Let me walk through your patch  ....
> >> (I feel something wrong in the patch)
> >>
> >>
> >> --- linux/drivers/media/dvb/frontends/stb0899_algo.c.org        2007-10-08 21:25:09.000000000 +0200
> >> +++ linux/drivers/media/dvb/frontends/stb0899_algo.c    2007-10-08 21:25:06.000000000 +0200
> >> @@ -1351,7 +1351,17 @@
> >>
> >>         s32 offsetfreq, searchTime, FecLockTime, pilots, iqSpectrum;
> >>         int i = 0;
> >> +    int cpt = 0;
> >>         u32 reg, csm1;
> >> +    s32 retry = 0;
> >> +
> >> +
> >> +    reg = STB0899_READ_S2REG( STB0899_S2DEMOD, DMD_CNTRL2 );
> >> +    STB0899_SETFIELD_VAL( SPECTRUM_INVERT, reg, 1 );
> >> +    stb0899_write_s2reg( state, STB0899_S2DEMOD, STB0899_BASE_DMD_CNTRL2, STB0899_OFF0_DMD_CNTRL2, reg );
> >>
> >>
> >>
> >> Why do you forcefully invert the I/Q inputs ? Different hardware have different configurations.
> >
> > yes, there are different hardware configurations, so with this patch
> > the algo find automatically the good configuration.
> > This is an initialiation, I begin with a I/Q configuration, if failure
> > the configuration is inverted.
>
>
> Q) Does it work for you, if you started with SWAP_OFF, rather than SWAP_ON,
> retaining your logic. Or do you see any other issues/degradation when you change
> the initial INVERSION state ?
>
> Currently there will be a case of inversion in your logic, but for the hardware that we
> have and given the networks, the chances of finding an inversion is much less. Can
> you please check whether INVERSION_OFF in the initial case does work better still, if
> not worser ?

I think the resultat is the same, perhaps more slow to lock (when 2 try needed).
I test it soon.


>
>
> >>
> >> +
> >> +    do
> >> +    {
> >>
> >>         if (internal->srate <= 2000000) {
> >>                 searchTime      = 5000; /* 5000 ms max time to lock UWP and CSM, SYMB <= 2Mbs           */
> >> @@ -1381,9 +1391,16 @@
> >>         STB0899_SETFIELD_VAL(FRESRS, reg, 1);
> >>         stb0899_write_reg(state, STB0899_TSTRES, reg);
> >>
> >> +        reg = STB0899_READ_S2REG( STB0899_S2DEMOD, CRL_NOM_FREQ );
> >> +        STB0899_SETFIELD_VAL( CRL_NOM_FREQ, reg, 0xd0 );
> >> +        stb0899_write_s2reg( state, STB0899_S2DEMOD, STB0899_BASE_CRL_NOM_FREQ, STB0899_OFF0_CRL_NOM_FREQ, 0xd0 );
> >> +
> >>
> >>
> >>
> >> You read Nominal Frequency into "reg", set 208 Hz into "reg", ignore reg ..
> >> After which you forcefully enter 208 Hz into the Complex mixer straight away.
> >> Even if you required to reprogram the mixer to 208 Hz, i don't see then why
> >> do you need the Complex mixer current setting as a part of the Carrier Recovery ?
> >>
> >> But, i don't see this "magic frequency" in any of the specs from STM.
> >>
> >> Although one question i have, irrespective to your patch, does setting the
> >> Complex Mixer to "0" Hz (30 bit unsigned) help in your case, as applicable to you ?
> >>
> >>
> >
> > Before starting acquisition, I restore the initial conditions.
> > The 208 is the initial value of nominal frequency in CRL_NOM_FREQ
> > register. (can be found is the datasheet)
>
> Ok. reasonable, missed that one. Thanks for pointing it out. Will test it out, but
> please do see the first question that i raised.
>
> Manu
>
>



More information about the linux-dvb mailing list