From fd579445dfb24faaac95ae1e36dfc732def09bb1 Mon Sep 17 00:00:00 2001 From: Michael Ossmann Date: Thu, 16 Feb 2017 23:22:07 -0700 Subject: [PATCH 1/3] improved accuracy of hackrf_sweep timestamps --- host/hackrf-tools/src/hackrf_sweep.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_sweep.c b/host/hackrf-tools/src/hackrf_sweep.c index 6a9d0f19..31a02b45 100644 --- a/host/hackrf-tools/src/hackrf_sweep.c +++ b/host/hackrf-tools/src/hackrf_sweep.c @@ -98,13 +98,14 @@ int gettimeofday(struct timeval *tv, void* ignored) { #define TUNE_STEP (DEFAULT_SAMPLE_RATE_HZ / FREQ_ONE_MHZ) #define OFFSET 7500000 -#define DEFAULT_SAMPLE_COUNT 0x2000 #define BLOCKS_PER_TRANSFER 16 +#define THROWAWAY_BLOCKS 2 #if defined _WIN32 #define sleep(a) Sleep( (a*1000) ) #endif +uint32_t num_samples = SAMPLES_PER_BLOCK; int num_ranges = 0; uint16_t frequencies[MAX_SWEEP_RANGES*2]; @@ -202,11 +203,13 @@ int rx_callback(hackrf_transfer* transfer) { int i, j; struct tm *fft_time; char time_str[50]; + struct timeval usb_transfer_time; if(NULL == fd) { return -1; } + gettimeofday(&usb_transfer_time, NULL); byte_count += transfer->valid_length; buf = (int8_t*) transfer->buffer; for(j=0; j Date: Fri, 17 Feb 2017 00:28:32 -0700 Subject: [PATCH 2/3] added cast to fix tv_usec formatting on various platforms --- host/hackrf-tools/src/hackrf_sweep.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/host/hackrf-tools/src/hackrf_sweep.c b/host/hackrf-tools/src/hackrf_sweep.c index 31a02b45..3d400942 100644 --- a/host/hackrf-tools/src/hackrf_sweep.c +++ b/host/hackrf-tools/src/hackrf_sweep.c @@ -280,7 +280,7 @@ int rx_callback(hackrf_transfer* transfer) { strftime(time_str, 50, "%Y-%m-%d, %H:%M:%S", fft_time); fprintf(fd, "%s.%06ld, %" PRIu64 ", %" PRIu64 ", %.2f, %u", time_str, - time_stamp.tv_usec, + (long int)time_stamp.tv_usec, (uint64_t)(frequency), (uint64_t)(frequency+DEFAULT_SAMPLE_RATE_HZ/4), fft_bin_width, @@ -291,7 +291,7 @@ int rx_callback(hackrf_transfer* transfer) { fprintf(fd, "\n"); fprintf(fd, "%s.%06ld, %" PRIu64 ", %" PRIu64 ", %.2f, %u", time_str, - time_stamp.tv_usec, + (long int)time_stamp.tv_usec, (uint64_t)(frequency+(DEFAULT_SAMPLE_RATE_HZ/2)), (uint64_t)(frequency+((DEFAULT_SAMPLE_RATE_HZ*3)/4)), fft_bin_width, From d4c69890b5629e416935494d368f1865d4c0c957 Mon Sep 17 00:00:00 2001 From: schneider Date: Sun, 19 Feb 2017 01:38:11 +0100 Subject: [PATCH 3/3] fix(rad1o): Restore old clock behaviour for now. --- firmware/common/hackrf_core.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/firmware/common/hackrf_core.c b/firmware/common/hackrf_core.c index 9bdcf9d6..e64bf9c0 100644 --- a/firmware/common/hackrf_core.c +++ b/firmware/common/hackrf_core.c @@ -634,6 +634,7 @@ void cpu_clock_init(void) CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_AUTOBLOCK(1) | CGU_BASE_SSP1_CLK_CLK_SEL(CGU_SRC_PLL1); +#if (defined JAWBREAKER || defined HACKRF_ONE) /* Disable unused clocks */ /* Start with PLLs */ CGU_PLL0AUDIO_CTRL = CGU_PLL0AUDIO_CTRL_PD(1); @@ -699,6 +700,13 @@ void cpu_clock_init(void) // CCU2_CLK_APB2_USART3_CFG = 0; // CCU2_CLK_APLL_CFG = 0; // CCU2_CLK_SDIO_CFG = 0; +#endif + +#ifdef RAD1O + /* Disable unused clock outputs. They generate noise. */ + scu_pinmux(CLK0, SCU_CLK_IN | SCU_CONF_FUNCTION7); + scu_pinmux(CLK2, SCU_CLK_IN | SCU_CONF_FUNCTION7); +#endif }