From 839a1a170f6bb2c1b34e34a13c0dbfa415e7d3b3 Mon Sep 17 00:00:00 2001 From: Hoernchen Date: Sun, 16 Jun 2013 19:08:59 +0200 Subject: [PATCH] fw: dc offset correction fix pins b7 & b6 are floating, disable re-triggering selecting a different HPC_STOP fixes the dc offset drift disabling and enabling rx/tx after tuning triggers the dc offset correction --- firmware/common/max2837.c | 4 ++++ firmware/hackrf_usb/hackrf_usb.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/firmware/common/max2837.c b/firmware/common/max2837.c index 26189d43..c3d6d5cf 100644 --- a/firmware/common/max2837.c +++ b/firmware/common/max2837.c @@ -141,6 +141,10 @@ void max2837_setup(void) set_MAX2837_TXVGA_GAIN_MSB_SPI_EN(1); //set_MAX2837_TXVGA_GAIN(0x3f); /* maximum attenuation */ set_MAX2837_TXVGA_GAIN(0x00); /* minimum attenuation */ + set_MAX2837_VGAMUX_enable(1); + set_MAX2837_VGA_EN(1); + set_MAX2837_HPC_RXGAIN_EN(0); + set_MAX2837_HPC_STOP(MAX2837_STOP_1K); set_MAX2837_LNAgain_SPI_EN(1); set_MAX2837_LNAgain(MAX2837_LNAgain_MAX); /* maximum gain */ set_MAX2837_VGAgain_SPI_EN(1); diff --git a/firmware/hackrf_usb/hackrf_usb.c b/firmware/hackrf_usb/hackrf_usb.c index f34d797a..200d284e 100644 --- a/firmware/hackrf_usb/hackrf_usb.c +++ b/firmware/hackrf_usb/hackrf_usb.c @@ -115,6 +115,7 @@ bool set_freq(uint32_t freq_mhz, uint32_t freq_hz) success = true; + gpio_clear(PORT_XCVR_ENABLE, (PIN_XCVR_RXENABLE | PIN_XCVR_TXENABLE)); if(freq_mhz >= MIN_LP_FREQ_MHZ) { if(freq_mhz < MAX_LP_FREQ_MHZ) @@ -170,6 +171,11 @@ bool set_freq(uint32_t freq_mhz, uint32_t freq_hz) /* Error freq_mhz too low */ success = false; } + if(transceiver_mode == TRANSCEIVER_MODE_RX) + gpio_set(PORT_XCVR_ENABLE, PIN_XCVR_RXENABLE); + else if(transceiver_mode == TRANSCEIVER_MODE_TX) + gpio_set(PORT_XCVR_ENABLE, PIN_XCVR_TXENABLE); + freq_mhz_cache = freq_mhz; freq_hz_cache = freq_hz; return success;