Hey Chuck,

I have one of these rev 1 tvrx daughter boards too.  Thanks for the effort!

Will you please post your code?

I tried the same trick at first, changed the dboard ID: no joy so changed
it back.

Found the code and data sheet same as you and then struggled to set up a
working build environment.  By the time that was finally done I totally
forgot about the 1st task.

Plus my son's cat died in his room. Ugh, the smell.  We've stripped out the
carpet and are painting and putting in hardwood floor.  I really hate cats
at this point.

Back on point, I think I see how to add another dboard object with code
correction, ID = 0x03, and named "TVRX Rev1" if I can just get to it.  Then
contribute back to the UHD code base so it will be supported by default in
the future.

Cheers,

Mark Napier



Date: Sat, 11 Jun 2016 22:10:15 -0400
From: Chuck Swiger <cswi...@swigerco.com>
To: Discuss-gnuradio@gnu.org
Subject: [Discuss-gnuradio] vintage hardware support: tvrx rev 1 -
        MT4937DI5 3X7702
Message-ID: <1465697415.2044.19.camel@localhost.localdomain>
Content-Type: text/plain; charset="UTF-8"

My own personal summer of code project (1st of hopefully many) was to
restore support for my old TVRX Rev1 daughter board (id 0x0003 in the
current uhd code and was not TOO hard.

Comparing the schematic http://files.ettus.com/schematics/tvrx/tvrx.pdf
with the board matches.   Looking at the MT4937DI5 datasheet
http://swigerco.com/4937_DI5_MicroTune_TVRXr_DSA00488550.pdf   that
covers both the old 3X7702 with the 2nd downconverted to 5.75e6 AND
another model with the 43.75e6 IF like the newer tvrx (id 0x0040) still
supported in    uhd/host/lib/usrp/dboard/db_tvrx.cpp   Gain charts in
db_tvrx.cpp match that manual, i2c commands sent out for set_freq match
the registers, etc.

Just changing the board id gets it recognized but just gets static,
barely can make out a strong local fm station.   There's another tvrx id
hiding in an evil hack in uhd/host/lib/usrp/usrp1/dboard_iface.cpp  that
needs to be changed.

Just changing the tvrx_if_freq won't work, as that really is the IF - we
just have to compensate for the 2nd converter and that's appearently
done in the value returned by set_freq(double freq) - this works:
comment out the if (tvrx_if_freq >= codec_rate/2) block as the DAC never
sees that IF, and return _lo_freq - tvrx_if_freq + tvrx_2ndif_freq;

Now it can get FM just fine, plus make fft plots like this again:
http://swigerco.com/tvrx_atsc.jpg

Which reminds me the rev 3 turners have to compensate for inverted
spectrum (being at 44.75Mhz with a 64Mhz clock). Have to fix that next.
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to