From: "Johannes Stezenbach" <[EMAIL PROTECTED]> > > and AFC is interesting even if there is no sync. > > (sync & 2) tests if the carrier has been recovered. > If we don't have a carrier, then AFC is undefined > (AFC := difference between given frequency and > recovered carrier frequency).
True, the docs say "if the carrier has been recovered". However, the value of the AFC register seems to reflect where the VES1820 is currently "looking" for the carrier if it has no sync. And you can see when it gets "stuck", because it stops changing. Thus, I stand by my statement: The value of the VAFC register is _interesting_ even if there is no sync. > > ((s32)(p->u.qam.symbol_rate * afc) >> 10)); > > The calcuation above avoids overflow errors at the expense of some > loss in precision. Unnecessarily so. The maximum symbol_rate supported by the VES1820 is 8.75 Mbaud. AFC can be -128 maximum. 8.75M * -128 = -1120M -> that'll fit into a signed 32-bit integer. > > I found that the most difficult channel changes to the VES1820 are > > between _adjacent_ channels, especially in downwards direction. > > Hm. BTW, I forgot the scenario in which the AFC gets stuck most often: Switch from an unused (or analog) channel to a digital channel (typically during channel scan). E.g. In Berlin, switch from S25 to S26. The VES1820 will often fail to lock, unless reset. Regards, -- Robert Schlabbach e-mail: [EMAIL PROTECTED] Berlin, Germany -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
