|
@@ -485,12 +485,13 @@ void rtlsdr_init_baseband(rtlsdr_dev_t *dev)
|
|
for (i = 0; i < sizeof (fir_coeff); i++)
|
|
for (i = 0; i < sizeof (fir_coeff); i++)
|
|
rtlsdr_demod_write_reg(dev, 1, 0x1c + i, fir_coeff[i], 1);
|
|
rtlsdr_demod_write_reg(dev, 1, 0x1c + i, fir_coeff[i], 1);
|
|
|
|
|
|
- rtlsdr_demod_write_reg(dev, 0, 0x19, 0x25, 1);
|
|
|
|
|
|
+ /* enable SDR mode, disable DAGC (bit 5) */
|
|
|
|
+ rtlsdr_demod_write_reg(dev, 0, 0x19, 0x05, 1);
|
|
|
|
|
|
/* init FSM state-holding register */
|
|
/* init FSM state-holding register */
|
|
rtlsdr_demod_write_reg(dev, 1, 0x93, 0xf0, 1);
|
|
rtlsdr_demod_write_reg(dev, 1, 0x93, 0xf0, 1);
|
|
|
|
|
|
- /* disable AGC (en_dagc, bit 0) */
|
|
|
|
|
|
+ /* disable AGC (en_dagc, bit 0) (this seems to have no effect) */
|
|
rtlsdr_demod_write_reg(dev, 1, 0x11, 0x00, 1);
|
|
rtlsdr_demod_write_reg(dev, 1, 0x11, 0x00, 1);
|
|
|
|
|
|
/* disable PID filter (enable_PID = 0) */
|
|
/* disable PID filter (enable_PID = 0) */
|
|
@@ -842,7 +843,15 @@ int rtlsdr_set_testmode(rtlsdr_dev_t *dev, int on)
|
|
if (!dev)
|
|
if (!dev)
|
|
return -1;
|
|
return -1;
|
|
|
|
|
|
- return rtlsdr_demod_write_reg(dev, 0, 0x19, on ? 0x23 : 0x25 , 1);
|
|
|
|
|
|
+ return rtlsdr_demod_write_reg(dev, 0, 0x19, on ? 0x03 : 0x05, 1);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+int rtlsdr_set_agc_mode(rtlsdr_dev_t *dev, int on)
|
|
|
|
+{
|
|
|
|
+ if (!dev)
|
|
|
|
+ return -1;
|
|
|
|
+
|
|
|
|
+ return rtlsdr_demod_write_reg(dev, 0, 0x19, on ? 0x25 : 0x05, 1);
|
|
}
|
|
}
|
|
|
|
|
|
static rtlsdr_dongle_t *find_known_device(uint16_t vid, uint16_t pid)
|
|
static rtlsdr_dongle_t *find_known_device(uint16_t vid, uint16_t pid)
|