Mailing List archive

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

[linux-dvb] Re: Dissecting the 2002 TechnoTrend DVB-T budget design(with TDA10045H)...



Hi,

Frank was showing me some i2c sniffer logs of his card last week, so I'll just add my comment below. His logs were not completely clean, there were some interruptions so you want to record probably your own log. Frank used the warmcat i2c sniffer, but you can use any other too...


Robert Schlabbach wrote:
Hi,

since others here are also struggling with this new card, sold as "Lorenzen
SL DVB-T" in Germany and supposedly also as "Hauppauge Nova-T" in the UK, I
thought I'd share my results so far in analyzing the hardware on this card.

First off, the relevant components on this board are:

1. Philips TDM1316L tuner module
2. Philips TDA9889 DVB AGC amplifier
3. Philips TDA10045H DVB-T channel receiver
4. A 2KB EEPROM
5. Philips SAA7146A PCI multimedia bridge

Unfortunately, I have not been able to get my hands on the programming
guides for the TDM1316 nor the TDA10045H so far.

Now what I know about each component so far:

1. The TDM1316L is _not_ "visible" on the I2C-bus of the SAA7146A, even
after enabling all its GPIO outputs. I assume it may be controlled via the
dedicated TDA10045H I2C-bus for tuner control.
correct.

2. The TDA9889 is controlled by 3 signals, S0/S1/S2 to configure the
channel bandwidth and AGC. S0 and S2 are connected to TDA10045H pin 59
(DS_SPARE2), which supposedly can be controlled by one of its I2C
registers. I have not been able to find out where S1 is connected to.

3. The TDA10045H is reset/enabled by the SAA7146A GPIO2 pin. Set GPIO2 to
output LOW for reset state and to output HIGH for operational state. The
TDA10045H has I2C registers 0x00 through 0x38, addressed by the I2C
IIRC the address actually used is 0x08 for the demod, 0x63 for the Tuner PLL.

subaddress mechanism. A microcode needs to be loaded into the DSP of this
chip. Unfortunately, it is _not_ autoloaded from the EEPROM, the driver has
to load it "manually" through the I2C register "CODE_IN" (register address
unknown). Furthermore, the tuner module probably needs to be controlled
through this chip (as mentioned above).
Yes, you can clearly see the open/close i2c gate commands before the write_pll() command in the log whenever the tuner is configured.


The transport data output is wired
to the SAA7146A's port D1_B; I think the mechanism is exactly the same as
for the older budget cards.
Probably.

4. The 2KB EEPROM is pretty boring - there appears to be nothing in there
but the standard SAA7146A PCI configuration and the encrypted MAC address.
Unfortunately, most of the EEPROM is filled with 0xFF, and no DSP microcode
appears to be in there :(
DSP code is loaded at initialisation time, you can record this from the logs by simply modifying milk so that it outputs C initialisation arrays.

5. Well, this part is well known and well documented. All you need to know
is that you must set the GPIO2 pin to output low then high to initialize
the TDA10045H. GPIO0 is wired to the CI connector (which is not equipped on
my card), where GPIO1 is going I could not figure out, and GPIO2 is somehow
connected to TDA10045H pin 100, though I have no idea what (if anything) it
does.

Well, that's what I know so far. Now I *badly* need the programming guide
for the TDA10045H (or maybe its predecessor, the VLSI VISTA VES9600, this
hmmm, I did not knew that it's derived from another VLSI chip too, has Philips ever created an own chip design??

Holger



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



Home | Main Index | Thread Index