Hi Trent Piepho schrieb: > On Wed, 14 Mar 2007, Hartmut Hackmann wrote: >> Trent Piepho schrieb: >>>>> philips_fmd1216_tuner_init() just sends { 0x0b, 0xdc, 0x9c, 0xa0 } to the >>>>> tuner. It could be replaced with the dvb-pll version, which will have >>>>> the same effect. >>>>> >>>> I will have a look >>> My fmd1216 patch will have the tuner init function send {0xdd, 0xa0} to the >>> tuner. That will set the agc value (byte AB) to 0xa0, the same thing. >>> >> That's new for me. But if the data go to the upper bytes first, you are right. > > The way the PLL works is that if the first bit of data sent is a 1, then > the next two bytes are CB+BB (or CB+AB). If the first bit is a 0, then the > next two bytes are the divisor bytes. You can send the divisor first then > the control bytes (as dvb-pll does), or the control bytes first and then > the divisor bytes. Or just the control bytes, or just divisor bytes. > > If you look in the v4l tuner module, there is a special case hack to send > the divisor first or second depending on if the new frequency is less than > or greater than the old frequency. > I found the datasheet. Right, its documented there (but was new for me). >>> Anyway, I don't think the frequency is valid either: >>> >>> divisor = 0x0bdc, ratio bits = 1,1 = 62.5 kHz, so freq = 189.75 MHz >>> But, BB = 0x54, which is analog mode HIGH band. 189.75 MHz would be in the >>> LOW band. (remember to subtract the IF frequency to compare to the >>> bandswitch points used in the code) >>> >> Ratio bits are 1,0 so 167kHz. But i don't think ath this is so important.. > > No, they are 1,1. > > CB is 0x86 = 1 0 000 11 0 > ^ identifies this as the control bytes > ^ selects low charge pump current > ^^^ sets the test mode to "normal" mode > ^^ Ratio select 1,1 = 62.5 kHz > ^ Turn the tuning voltage on > I was in the wrong area, sorry. I had 0x9c in mind. >>> How does that happen? I figured P4 just changed the SAW filters, but it >>> enables/disables the tda9887 too? >>> >> I have no idea why and how this is done, i just observed that... > > I wonder if this is a problem for the v4l tuner module. If one doesn't > start and then stop the dvb frontend before using analog, how does the > tda9887 get turned on? > It is a BIG problem. The tuner initialization code turns the tda9886 on, but now things depend on the module initialization order whether the tda is found or not. I haven't used my board in analog mode after the tda9887 merge but things look like it doesn't work any more :-( Unfortunately i know about at least one board that needs the opposite load order. >>> The documentation for the Infineon TUA6034 should be easy to find if you >>> don't have it. It's pretty clear that you don't need to send the divisor >>> bytes each time. You can just send CB+BB or in this case CB+AB. And I've >>> verified that indeed you can set the AGC values with just two bytes. >>> >> If this is the used PLL chip, i should have a look. >> Did you check whether it is allowed to cut off the lo? > > I've been told that the fmd1216 uses the TUA6034. But in this case it > doesn't really matter, all these I2C PLLs work this way. I have an 11 year > old datasheet for a Philips tuner, and it's the same way. > >> Ack >> I'd like to proceed this way: >> - first i correct the bug in the sleep function. >> - When your changes in dvb-pll are in mainstream, i will adapt the code in >> saa7134-dvb. (you might decide to kick me) >> >> OK? > > My plan was to come up with a patch that converted all the users of fmd1216 > at once. > Ok, less work for me. Hartmut _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb