[linux-dvb] I2C NAKs and fails to respond during init of TDA18211

MikeW mw_phil at yahoo.co.uk
Tue Nov 6 10:18:06 CET 2007

Michael Krufky <mkrufky <at> linuxtv.org> writes:

> On 11/1/07, MikeW <mw_phil <at> yahoo.co.uk> wrote:
> > Using the OM5776 eval board, and using the algorithm published
> > in the rev 1.1.0 datasheet, I find I am getting an I2C NAK,
> > which does not go away and requires a chip reset to restore
> > any I2C communication, after successfully writing EP4 (r06) in the
> > 'image rejection cal pt I, wanted signal measurement' section
> > where registers are written back.
> > (NAK occurs on write to EP5)
> While in calibration mode, the bytes of sub addresses 0x03 thru 0x0f
> must be written in one single i2c sequence.

Thanks, I sorted this out and it got me past _this_ impediment,
but get hangup elsewhere now :(

> Are you sure that you're using the exact algorithm from the datasheet?
>  You're better off storing the values that you plan to write, then
> write them all at once in a single transaction.

Am doing this as per datasheet - annoyingly since the two datasheet versions
give one more complex, and one less complex algorithm respectively.
(This has got to be the most complex setup for a tuner chip!)

> You might want to take a look at the tda18271 driver recently merged
> into the master branch, located under dvb/frontends ...

Had a quick look - looks like the 'less complex' algorithm (which I
am having little success with)

My code is more 'factored out' rather than being one big(gish) function.

TWEAK SUGGESTION - rather than copying your register map
in order to prefix with the required register number prior to I2C write :-
since you will never write r0 (assert this !), if you are about to
write bytes from your 'register map' starting at rN, save the contents
of the map byte at [N-1], write value N into that location,
then do I2C block write from that position, then replace the byte at [N-1].

> Perhaps this driver might be enough to bring up the tda18211-- I don't
> have the spec for the 18211, so I cannot say that for sure, but I was
> under the impression that the tda18211 is exactly a tda18271, but DVB
> only.

Might try it out if I come to a brick wall !

> Let me know if there's anything that I can do to help you.
> Regards,
> Mike Krufky


More information about the linux-dvb mailing list