Mailing List archive

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

[linux-dvb] Re: High BER's & Glitching with 2.6 kernel, betterwith 2.4 and 1.0.0-pre2 (Nova-T)



Johannes Stezenbach wrote:
Dave Smith wrote:

Using release 1.0.1 and a 2.4.20 kernel, I have modified the tsa5060_set_tv_freq function in the grundig_29504-401 frontend to match 1.0.0.-pre2.

Changing the frequency offset from the -pre2 value of 36000000 to the 1.0.1 value of 36125000 made no apparent difference.

In the -pre2 code, there are no values for cpump or band_select, meaning that buf[3] in that function is always set to 0xc0. If I change this to 0x43 (which I think would be the value when the frequency of the BBC mux from Crystal Palace is given) leads to the higher BER rates and many UNConcealed errors when tuned to a channel in the BBC mux.

I must admit that my understanding of C is pretty weak, and so I may have evaluated the cpump and band_select errors incorrectly. However it does appear that the setting of buf[3] (whatever that does) is causing the errors on my card.

I hope this helps.

Hm, I had a look at the code and the tsa5060 data sheet.

The band_select stuff is beyond me, as it just sets a few
general purpose output pins. I'm not sure if it does
anything at all, and the only way to find out is to
look at a grundig_29504-401 data sheet or poke around in
the metal box.
do you have a datasheet not?

The charge pump stuff is also not clear to me. What is
the logic behind that formula?

I would think that either
- the charge pump current depends on the voltage used to drive
  the VCO, so: high freq -> low capacitance -> high voltage
  at the varactor diode (or is it the other way round?)
  -> high cpump
The tuning voltage is used to select the actual frequency, the charge pump current is driving or damping the dynamic VCO system so that you can/have to use it to tune the system elasticity so that it neither rings nor is too stiff. In both cases it takes more time or is impossible at all to aquire a PLL lock.

This behaviour was pretty nicely explained in a paper I saw somewhere on the web, but I don't have the URL handy right now (sorry!).

- or one uses a high cpump to change the frequency, and
  sets the cpump to a low value afterwards (less noise)

Does anyone know for sure?

Anyway, the current cpump formula look bogus to me:

        cpump = freq < 175000000 ? 2 : freq < 390000000 ? 1 :
	        freq < 470000000 ? 2 : freq < 750000000 ? 1 : 3;


Comments?
The optimal charge pump settings depend on the external components around the tuner module, so this can even vary between tuners using the same PLL type (although this is unlikely since both are usually derived from the same reference design).

The suggested values in the tuner module datasheets seem to be usually found empirically. The approach of using a high current for fast tuning and then lowering the current does not works on every hardware. The optimal charge pump setting does not needs to depend linearly on the frequency.

Holger



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



Home | Main Index | Thread Index