From 747d8e227856fa74d568a5ff8857cb9193a27aef Mon Sep 17 00:00:00 2001 From: Marco Bartolucci Date: Mon, 15 May 2017 12:56:51 +0200 Subject: [PATCH] Removed decimation in CPLD --- firmware/common/hackrf_core.c | 54 ++--- firmware/cpld/sgpio_if/default_sync.xsvf | Bin 37629 -> 37629 bytes firmware/cpld/sgpio_if/top.jed | 246 +++++++++++----------- firmware/cpld/sgpio_if/top.ucf | 3 - firmware/cpld/sgpio_if/top.vhd | 28 +-- firmware/hackrf_usb/hackrf_usb.c | 2 - firmware/hackrf_usb/usb_api_transceiver.c | 19 +- 7 files changed, 140 insertions(+), 212 deletions(-) diff --git a/firmware/common/hackrf_core.c b/firmware/common/hackrf_core.c index 59bccb1e..ac231860 100644 --- a/firmware/common/hackrf_core.c +++ b/firmware/common/hackrf_core.c @@ -74,10 +74,10 @@ static struct gpio_t gpio_max5864_select = GPIO(2, 7); // static struct gpio_t gpio_rffc5072_reset = GPIO(2, 14); // #endif -static struct gpio_t gpio_sync_in_a = GPIO(3, 10); -static struct gpio_t gpio_sync_in_b = GPIO(3, 11); -static struct gpio_t gpio_sync_out_a = GPIO(3, 8); -static struct gpio_t gpio_sync_out_b = GPIO(3, 9); +//static struct gpio_t gpio_sync_in_a = GPIO(3, 10); +//static struct gpio_t gpio_sync_in_b = GPIO(3, 11); +//static struct gpio_t gpio_sync_out_a = GPIO(3, 8); +//static struct gpio_t gpio_sync_out_b = GPIO(3, 9); /* RF supply (VAA) control */ #ifdef HACKRF_ONE @@ -824,11 +824,11 @@ void pin_setup(void) { scu_pinmux(SCU_PINMUX_GPIO3_10, SCU_GPIO_PDN | SCU_CONF_FUNCTION0); scu_pinmux(SCU_PINMUX_GPIO3_11, SCU_GPIO_PDN | SCU_CONF_FUNCTION0); - gpio_input(&gpio_sync_in_a); - gpio_input(&gpio_sync_in_b); + //gpio_input(&gpio_sync_in_a); + //gpio_input(&gpio_sync_in_b); - gpio_output(&gpio_sync_out_a); - gpio_output(&gpio_sync_out_b); + //gpio_output(&gpio_sync_out_a); + //gpio_output(&gpio_sync_out_b); #endif #ifdef RAD1O @@ -841,11 +841,11 @@ void pin_setup(void) { scu_pinmux(SCU_PINMUX_GPIO3_10, SCU_GPIO_PDN | SCU_CONF_FUNCTION0); scu_pinmux(SCU_PINMUX_GPIO3_11, SCU_GPIO_PDN | SCU_CONF_FUNCTION0); - gpio_input(&gpio_sync_in_a); - gpio_input(&gpio_sync_in_b); + //gpio_input(&gpio_sync_in_a); + //gpio_input(&gpio_sync_in_b); - gpio_output(&gpio_sync_out_a); - gpio_output(&gpio_sync_out_b); + //gpio_output(&gpio_sync_out_a); + //gpio_output(&gpio_sync_out_b); #endif /* enable input on SCL and SDA pins */ @@ -902,33 +902,3 @@ void led_off(const led_t led) { void led_toggle(const led_t led) { gpio_toggle(&gpio_led[led]); } - -void hw_sync_syn() { - gpio_set(&gpio_sync_out_a); -} - -void hw_sync_stop() { - gpio_clear(&gpio_sync_out_a); - gpio_clear(&gpio_sync_out_b); -} - -void hw_sync_ack() { - gpio_set(&gpio_sync_out_b); -} - -void hw_sync_copy_state() { - if(gpio_read(&gpio_sync_in_a)) { - gpio_set(&gpio_sync_out_a); - } else { - gpio_clear(&gpio_sync_out_a); - } - if(gpio_read(&gpio_sync_in_b)) { - gpio_set(&gpio_sync_out_b); - } else { - gpio_clear(&gpio_sync_out_b); - } -} - -bool hw_sync_ready() { - return (gpio_read(&gpio_sync_in_a) && gpio_read(&gpio_sync_in_b)); -} diff --git a/firmware/cpld/sgpio_if/default_sync.xsvf b/firmware/cpld/sgpio_if/default_sync.xsvf index 104ab92d35cfd99a25332117ce62abc2060919fd..85ea588db2bf539181450b7547e2f5f0d8c41eb9 100755 GIT binary patch delta 2128 zcmeH_?@wD*7{@*LwqRkjv>g=aZfQF2U4Ov7dbbECtVFn@%Y%w%GsCK!_vUujJ?wM~FAdcEiLURvXSV0K>I z^ZfWe_c`Y|pVdp;>LqS!njqU)kI(o`xJxQ9!C6bBv9Ym337jHM?CUEvHCF0Kaycax z7J|+y9O2q=V531J1#$*etCh9)eU1K&PSo)p?Gi0Pl#c>2JFf8wO)4LV;F#tjhC+6P zwMlt*h-vLh1ZQG4@kptO!;da2KG3z|2bX{)osSIQuLc{s$^vpny*49BxmSx@l6Mdf zIg!@7MN4^*FsDrCCg($Yuh6?y_RO(qsO1?Qc|)VxqKpcLnwGE3q;I|N0=g ziDbZr@%0HZi`uH*f?{=LM#5#jofz1;=c|%j?kW?%Qk~$wxWa~8V`*ml^A;b;F>Bh= zOg@q=0r%JVxLksneKkpbRz4mLFBQUFwMn@vozL&Juj62kfD?7CcrGO1=ejvO6S9jp ztTRNBObFj8*0@cv#1r+$2z# z4dU4ce&R8=xf~0wN*v!h27Q}=4c>zajg#KjD2*h84&PyxOZm;>Z@v#XOt}U8;;+Ux ztpk{IwW5DpW-XT7o{yOy9E9NBK<~TPZ^rwwtCsm6$`n$gO85{)dK`%Kn(*e1e^u7( z97J?`3$E-Oz~*fZgnP}{)s|(CaeI#m``hCRnl{*DMl81fjY)SI$-_w%LLiItZQ8m; zb-FU2GQ6rMNw?X6J3BJQ{}78gzY_<7Lj`E3ye8ZY4#++9^2k?i;jyq2CwK3Mp{Q%cLMoGJUYn;a*-&#-eb?7$&2}M!E##Kzlt~2GfHm}p zK3jXN&Eq25Z~G&%X%VP5O|j4Z^^3ODIxftFLZ}ck<=?qZVp)jRCkO5FnFO98lL$%~ z_{dU1Za_NZ#FE9sH05I=PlSJm7bg$!I4Txqzd_gWSzP_4o1wTjMe(k^WNbhd?(q>a zNK<6tZc7n4kBNL2uI=p6`)0W!(u%`JC0t1?B3IXSNpAA17PTaW^}eNOpFi1+!(}d` zfLT4yFV`o|(jiZk1dFAR?4yMw!WuHj)@Iw(hE*!`)G};dwpdYc%=UJ|+>D}((|Ekb zfpk8+NxjDbsBYh~%8kt$u&sEkVw?bsNts*^>NI?yJNwz8uao6W#fk zF6ZUp`-Yee?!Q+)x90~|cYkluY2E!!cbDP*_i_Y$<$g{h;EP9jGJ;s%6y#$^UWrR2+nYDMe*4&OjPa$}rYmYS?>1f0 Vv!MSL^h>Z!m*fA_)iKad{sZ3eHR1pO diff --git a/firmware/cpld/sgpio_if/top.jed b/firmware/cpld/sgpio_if/top.jed index 36a8d855..b5d95669 100755 --- a/firmware/cpld/sgpio_if/top.jed +++ b/firmware/cpld/sgpio_if/top.jed @@ -1,5 +1,5 @@ Programmer Jedec Bit Map -Date Extracted: Fri Jul 8 16:10:08 2016 +Date Extracted: Mon May 15 12:52:29 2017 QF25812* QP100* @@ -12,28 +12,28 @@ N DEVICE XC2C64A-7-VQ100* Note Block 0 * Note Block 0 ZIA * -L000000 1111111011100111* -L000016 1110101011111111* +L000000 1111111111111111* +L000016 1111111111111111* L000032 1111111011110011* L000048 1111111111111111* L000064 1111111111111111* L000080 1111111011010111* -L000096 1110101011111111* +L000096 1111111111111111* L000112 1111111111111111* -L000128 1110101011111111* +L000128 1111111011010111* L000144 1111111111111111* L000160 1111111111111111* -L000176 1111111011100111* +L000176 1111111111111111* L000192 1111111111111111* -L000208 1111111011100111* +L000208 1111111111111111* L000224 1111111111111111* L000240 1111111111111111* L000256 1111111111111111* L000272 1111111111111111* -L000288 1111111011010111* +L000288 1111111111111111* L000304 1111111111111111* L000320 1111111111111111* -L000336 1111111011100111* +L000336 1111111111111111* L000352 1111111111111111* L000368 1111111111111111* L000384 1111111111111111* @@ -54,21 +54,21 @@ L000608 1111111111111111* L000624 1111111111111111* Note Block 0 PLA AND array * -L000640 11110111111111111111110111011111111111111111111111111111111111111111111111111111* -L000720 11011011111111111111111111111111111111111111111111111111111111111111111111111111* -L000800 11011111111111111011111011111111111111111111111111111111111111111111111111111111* -L000880 11100111111111110111111011111111111111111111111111111111111111111111111111111111* -L000960 11011111111101111111111111011111111111111111111111111111111111111111111111111111* -L001040 11111011111111111111111111111111111111111111111111111111111111111111111111111111* -L001120 01111111111111110111110111111111111111111111111111111111111111111111111111111111* -L001200 10111111111111111011110111111111111111111111111111111111111111111111111111111111* -L001280 01011111111101110111111111111111111111111111111111111111111111111111111111111111* -L001360 11110111111101111111110111111111111111111110111111111111111111111111111111111111* -L001440 11010111111101110111111111111111111111111110111111111111111111111111111111111111* -L001520 11110111111110111111110111111111111111111101111111111111111111111111111111111111* -L001600 11010111111110110111111011111111111111111111111111111111111111111111111111111111* -L001680 11111011110111111111111111111111111111111111111111111111111111111111111111111111* -L001760 11111111110111111111111111111111111110111111111111111111111111111111111111111111* +L000640 11111111111011111111111111111111111111111111111111111111111111111111111111111111* +L000720 11110111111111110111111111111111111111111111111111111111111111111111111111111111* +L000800 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L000880 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L000960 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001040 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001120 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001200 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001280 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001360 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001440 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001520 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001600 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001680 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001760 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L001840 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L001920 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L002000 11111111111111111111111111111111111111111111111111111111111111111111111111111111* @@ -100,7 +100,7 @@ L004000 111111111111111111111111111111111111111111111111111111111111111111111111 L004080 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L004160 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L004240 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L004320 11111011111111111111111111111111111110111111111111111111111111111111111111111111* +L004320 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L004400 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L004480 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L004560 11111111111111111111111111111111111111111111111111111111111111111111111111111111* @@ -114,19 +114,19 @@ L005040 111111111111111111111111111111111111111111111111111111111111111111111111 Note Block 0 PLA OR array * L005120 1111111111111110* L005136 1111111111111110* -L005152 1111111111111110* -L005168 1111111111111110* -L005184 1111111111111110* -L005200 1111111111111101* -L005216 1111111111111101* -L005232 1111111111111101* -L005248 1111111111111101* -L005264 1111111111111011* -L005280 1111111111111011* -L005296 1111111111111011* -L005312 1111111111111011* -L005328 1111111111101111* -L005344 1111111111101111* +L005152 1111111111111111* +L005168 1111111111111111* +L005184 1111111111111111* +L005200 1111111111111111* +L005216 1111111111111111* +L005232 1111111111111111* +L005248 1111111111111111* +L005264 1111111111111111* +L005280 1111111111111111* +L005296 1111111111111111* +L005312 1111111111111111* +L005328 1111111111111111* +L005344 1111111111111111* L005360 1111111111111111* L005376 1111111111111111* L005392 1111111111111111* @@ -182,18 +182,18 @@ L006205 000001111001111110011111100* L006232 000001111001111110011111100* L006259 000001111001111110011111100* L006286 000001111001111110011111100* -L006313 000001111001100110011111101* -L006340 000001111001100111011111101* -L006367 000101111101110110011111100* -L006394 000101111101110111111111100* -L006421 000101111001110110011111100* +L006313 000001111001111110011111100* +L006340 000001111001111110011111100* +L006367 000001111001111110011111100* +L006394 000001111001111110011111100* +L006421 000001111001100110011111101* Note Block 1 * Note Block 1 ZIA * L006448 1111111111111111* -L006464 1111111011010111* +L006464 1110101011111111* L006480 1111111011010111* -L006496 1110101011111111* +L006496 1111111011010111* L006512 1111111011010111* L006528 1111111011010111* L006544 1111111111111111* @@ -210,8 +210,8 @@ L006704 1111111011100111* L006720 1111111111111111* L006736 1111111111111111* L006752 1111111111111111* -L006768 1111111111111111* -L006784 1111111011010111* +L006768 1111111011010111* +L006784 1111111111111111* L006800 1111111111111111* L006816 1111111111111111* L006832 1111111111111111* @@ -233,21 +233,21 @@ L007072 1111111111111111* Note Block 1 PLA AND array * L007088 11111111110111110111111111111101011111111111111111111111111111111111111111111111* -L007168 11111101111111111111111111111111101111111111111111111111111111111111111111111111* +L007168 11101111111111111111111111111111101111111111111111111111111111111111111111111111* L007248 11111111110111110111011111111101111111111111111111111111111111111111111111111111* -L007328 11111101111111111111101111111111111111111111111111111111111111111111111111111111* +L007328 11101111111111111111101111111111111111111111111111111111111111111111111111111111* L007408 11111111110111110101111111111101111111111111111111111111111111111111111111111111* -L007488 11111101111111111110111111111111111111111111111111111111111111111111111111111111* -L007568 11111111110111110111111111111101111111111101111111111111111111111111111111111111* -L007648 11111101111111111111111111111111111111111110111111111111111111111111111111111111* +L007488 11101111111111111110111111111111111111111111111111111111111111111111111111111111* +L007568 11111101110111110111111111111101111111111111111111111111111111111111111111111111* +L007648 11101110111111111111111111111111111111111111111111111111111111111111111111111111* L007728 11111111010111110111111111111101111111111111111111111111111111111111111111111111* -L007808 11111101101111111111111111111111111111111111111111111111111111111111111111111111* +L007808 11101111101111111111111111111111111111111111111111111111111111111111111111111111* L007888 11110111110111110111111111111101111111111111111111111111111111111111111111111111* -L007968 11111001111111111111111111111111111111111111111111111111111111111111111111111111* -L008048 11011111110111110111111111111101111111111111111111111111111111111111111111111111* -L008128 11101101111111111111111111111111111111111111111111111111111111111111111111111111* +L007968 11101011111111111111111111111111111111111111111111111111111111111111111111111111* +L008048 11111111110111110111111111111101111111110111111111111111111111111111111111111111* +L008128 11101111111111111111111111111111111111111011111111111111111111111111111111111111* L008208 11111111110111110111111111110101111111111111111111111111111111111111111111111111* -L008288 11111101111111111111111111111011111111111111111111111111111111111111111111111111* +L008288 11101111111111111111111111111011111111111111111111111111111111111111111111111111* L008368 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L008448 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L008528 11111111111111111111111111111111111111111111111111111111111111111111111111111111* @@ -284,10 +284,10 @@ L010928 111111111111111111111111111111111111111111111111111111111111111111111111 L011008 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L011088 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L011168 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L011248 11111101111111111111111111111111111111111111111111111111111111111111111111111111* +L011248 11011111111111111111111111111111111111111111111111111111111111111111111111111111* L011328 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L011408 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L011488 11111101111111111111111111111111111111111111111111111111111111111111111111111111* +L011488 11011111111111111111111111111111111111111111111111111111111111111111111111111111* Note Block 1 PLA OR array * L011568 1111111111111011* @@ -363,39 +363,39 @@ L012734 000101111001111101100000011* L012761 000101111001111101100000011* L012788 000101111001111101100000011* L012815 000101111001111101100000011* -L012842 000101111001111100100000011* -L012869 000101111001111100100000011* +L012842 000101111001111101000000011* +L012869 000101111001111101000000011* Note Block 2 * Note Block 2 ZIA * L012896 1111111111111111* -L012912 1110101011111111* +L012912 1111111111111111* L012928 1111111011110011* L012944 1111111111111111* L012960 1111111010110111* L012976 1111111011010111* -L012992 1110101011111111* +L012992 1111111010110111* L013008 0110111011111111* -L013024 1110101011111111* +L013024 1111111010110111* L013040 1111111010110111* -L013056 1110101011111111* -L013072 1111111010110111* -L013088 1111111010110111* +L013056 1111111010110111* +L013072 1111111011010111* +L013088 1111111011010111* L013104 1111111111111111* L013120 1100111011111111* L013136 1111111011010111* L013152 1111111111111111* L013168 1111111111111111* -L013184 1111111111111111* +L013184 1111111011010111* L013200 1111111111111111* L013216 1111111111111111* L013232 1111111111111111* L013248 1111111111111111* -L013264 1111111011010111* -L013280 1111111011010111* +L013264 1111111111111111* +L013280 1111111111111111* L013296 1111111111111111* L013312 1111111111111111* -L013328 1111111010110111* +L013328 1111111111111111* L013344 1111111111111111* L013360 1111111111111111* L013376 1111111111111111* @@ -411,28 +411,28 @@ L013520 1111111111111111* Note Block 2 PLA AND array * L013536 11110111110111011111111111111111111111111111111111111111111111111011111111111111* -L013616 11011011111001010111111111111111111111111111111111111111111111111011111111111111* +L013616 11111011111011011111111111111111111111111111111111111111111111111011111111111111* L013696 11110111111011111111111111110111111111111111111111111111111111111111111111111111* L013776 11111011110111111111111111110111111111111111111111111111111111111111111111111111* -L013856 11111111111111111101011111111111111111111111111111111111111111111111111111111111* -L013936 11111111111111111110101111111111111111111111111111111111111111111111111111111111* -L014016 11111111111111111111011111111111111111111111111111111101111111111111111111111111* +L013856 11111011111111111111111111111111111110111111111111111111111111111111111111111111* +L013936 11111011111111111111111101111111111110111111111111111111111111111111111111111111* +L014016 11111111111111111111111110111111111101111111111111111111111111111111111111111111* L014096 11111111111011111111111111111111111111111111111111111111111111111111111111111111* -L014176 11111111111111111111101111111111111111111111111111111110111111111111111111111111* -L014256 11111111011111111111011111111111111111111111111111111111111111111111111111111111* -L014336 11111111101111111111101111111111111111111111111111111111111111111111111111111111* -L014416 11111111111111111111011101111111111111111111111111111111111111111111111111111111* -L014496 11111111111111111111101110111111111111111111111111111111111111111111111111111111* -L014576 11111111111111111111010111111111111111111111111111111111111111111111111111111111* -L014656 11111111111111111111101011111111111111111111111111111111111111111111111111111111* -L014736 11111111111111111111011111111111111111111111110111111111111111111111111111111111* -L014816 11111111111111111111101111111111111111111111111011111111111111111111111111111111* -L014896 11111111111111111111011111111101111111111111111111111111111111111111111111111111* -L014976 11111111111111111111101111111110111111111111111111111111111111111111111111111111* -L015056 11111111111111111111011111111111111111111111111110111111111111111111111111111111* -L015136 11111111111111111111101111111111111111111111111101111111111111111111111111111111* +L014176 11110111111111111111111110111111111111111111111111111111111111111111111111111111* +L014256 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L014336 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L014416 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L014496 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L014576 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L014656 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L014736 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L014816 11111111111111111101111111111111111111111111111111111111111111111111111111111111* +L014896 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L014976 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L015056 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L015136 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L015216 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L015296 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L015296 11111111111101111111111111111111111111111111111111111111111111111111111111111111* L015376 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L015456 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L015536 11111111111111111111111111111111111111111111111111111111111111111111111111111111* @@ -444,10 +444,10 @@ L015936 111111111111111111111111111111111111111111111111111111111111111111111111 L016016 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L016096 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L016176 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L016256 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L016256 11111111011111111111111111111111111111111111111111111111111111111111111111111111* L016336 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L016416 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L016496 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L016496 11111111111111110111111111111111111111111111111111111111111111111111111111111111* L016576 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L016656 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L016736 11111111111111111111111111111111111111111111111111111111111111111111111111111111* @@ -459,36 +459,36 @@ L017136 111111111111111111111111111111111111111111111111111111111111111111111111 L017216 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L017296 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L017376 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L017456 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L017456 11111111111111111111011111111111111111111111111111111111111111111111111111111111* L017536 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L017616 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L017696 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L017696 11111111111111111111110111111111111111111111111111111111111111111111111111111111* L017776 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L017856 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L017936 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L017936 11111111111111111111111111111101111111111111111111111111111111111111111111111111* Note Block 2 PLA OR array * L018016 0111111111111111* L018032 0111111111111111* L018048 0111111111111111* L018064 0111111111111111* -L018080 1101111111111111* -L018096 1101111111111111* -L018112 1111011111111111* +L018080 1101011100111000* +L018096 1111110111111111* +L018112 1111110111111111* L018128 1111111111111111* -L018144 1111011111111111* -L018160 1111111101111111* -L018176 1111111101111111* -L018192 1111111110111111* -L018208 1111111110111111* -L018224 1111111111111011* -L018240 1111111111111011* -L018256 1111111111111101* -L018272 1111111111111101* -L018288 1111111111111110* -L018304 1111111111111110* -L018320 1111110111111111* -L018336 1111110111111111* +L018144 1111110111111111* +L018160 1111111111111111* +L018176 1111111111111111* +L018192 1111111111111111* +L018208 1111111111111111* +L018224 1111111111111111* +L018240 1111111111111111* +L018256 1111111111111111* +L018272 1111111111111111* +L018288 1111111111111111* +L018304 1111111111111111* +L018320 1111111111111111* +L018336 1111111111111111* L018352 1111111111111111* L018368 1111111111111111* L018384 1111111111111111* @@ -528,21 +528,21 @@ L018896 1111111111111111* Note Block 2 I/O Macrocell Configuration 27 bits * N Aclk ClkOp Clk:2 ClkFreq R:2 P:2 RegMod:2 INz:2 FB:2 InReg St XorIn:2 RegCom Oe:4 Tm Slw Pu* L018912 000101111001110100000000011* -L018939 000001111000011100011111100* -L018966 000101111000011101101000111* -L018993 000001111000011100011111100* -L019020 000101111000011101101000111* -L019047 000001111000011100011111100* -L019074 000101111000011101101000111* +L018939 000001111001111110011111100* +L018966 000101111000011101001000111* +L018993 000001111001111110011111100* +L019020 000101111000011101001000111* +L019047 000001111001111110011111100* +L019074 000101111000011100001000111* L019101 000001111000011100011111100* -L019128 000101111000011101101000111* -L019155 000101111000011101101000111* +L019128 000101111000011101001000111* +L019155 000101111000011101001000111* L019182 000001111000011100011111100* L019209 000001111000011100011111100* L019236 000001111001111110011111100* -L019263 000101111000011101101000111* -L019290 000101111000011101101000111* -L019317 000101111000011101101000111* +L019263 000101111000011101001000111* +L019290 000101111000011101001000111* +L019317 000101111000011101001000111* Note Block 3 * Note Block 3 ZIA * @@ -753,5 +753,5 @@ L025810 0* Note I/O Bank 1 Vcco * L025811 0* -CF7BB* -AA74 +C0C4E* +AACE diff --git a/firmware/cpld/sgpio_if/top.ucf b/firmware/cpld/sgpio_if/top.ucf index aa7ebdf6..c2fcb1f3 100755 --- a/firmware/cpld/sgpio_if/top.ucf +++ b/firmware/cpld/sgpio_if/top.ucf @@ -58,9 +58,6 @@ NET "HOST_DATA<4>" LOC = "P67" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ; NET "HOST_DATA<5>" LOC = "P64" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ; NET "HOST_DATA<6>" LOC = "P61" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ; NET "HOST_DATA<7>" LOC = "P77" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ; -NET "HOST_DECIM_SEL<0>" LOC = "P90" | IOSTANDARD = LVCMOS33 ; -NET "HOST_DECIM_SEL<1>" LOC = "P81" | IOSTANDARD = LVCMOS33 ; -NET "HOST_DECIM_SEL<2>" LOC = "P78" | IOSTANDARD = LVCMOS33 ; NET "HOST_DIRECTION" LOC = "P71" | IOSTANDARD = LVCMOS33 ; NET "HOST_DISABLE" LOC = "P76" | IOSTANDARD = LVCMOS33 ; NET "HOST_Q_INVERT" LOC = "P70" | IOSTANDARD = LVCMOS33 ; diff --git a/firmware/cpld/sgpio_if/top.vhd b/firmware/cpld/sgpio_if/top.vhd index 771f663e..a7f71fb3 100755 --- a/firmware/cpld/sgpio_if/top.vhd +++ b/firmware/cpld/sgpio_if/top.vhd @@ -34,7 +34,6 @@ entity top is HOST_SYNC : in std_logic; HOST_DISABLE : in std_logic; HOST_DIRECTION : in std_logic; - HOST_DECIM_SEL : in std_logic_vector(2 downto 0); HOST_Q_INVERT : in std_logic; DA : in std_logic_vector(7 downto 0); @@ -65,10 +64,6 @@ architecture Behavioral of top is signal data_from_host_i : std_logic_vector(7 downto 0); signal data_to_host_o : std_logic_vector(7 downto 0); - signal decimate_count : std_logic_vector(2 downto 0) := "111"; - signal decimate_sel_i : std_logic_vector(2 downto 0); - signal decimate_en : std_logic; - signal q_invert : std_logic; signal rx_q_invert_mask : std_logic_vector(7 downto 0); signal tx_q_invert_mask : std_logic_vector(7 downto 0); @@ -100,31 +95,14 @@ begin data_from_host_i <= HOST_DATA; HOST_CAPTURE <= host_data_capture_o; - host_sync_i <= HOST_SYNC; - HOST_SYNC_CMD <= host_sync_o; + host_sync_i <= HOST_SYNC; + HOST_SYNC_CMD <= host_sync_o; host_data_enable_i <= not HOST_DISABLE; transfer_direction_i <= to_dac when HOST_DIRECTION = '1' else from_adc; - - decimate_sel_i <= HOST_DECIM_SEL; ------------------------------------------------ - - decimate_en <= '1' when decimate_count = "111" else '0'; - - process(host_clk_i) - begin - if rising_edge(host_clk_i) then - if codec_clk_i = '1' then - if decimate_count = "111" or host_data_enable_i = '0' then - decimate_count <= decimate_sel_i; - else - decimate_count <= decimate_count + 1; - end if; - end if; - end if; - end process; q_invert <= HOST_Q_INVERT; rx_q_invert_mask <= X"80" when q_invert = '1' else X"7f"; @@ -179,7 +157,7 @@ begin end if; else if codec_clk_i = '0' then - host_data_capture_o <= host_data_enable_i and decimate_en and host_sync_latched; + host_data_capture_o <= host_data_enable_i and host_sync_latched; end if; end if; end if; diff --git a/firmware/hackrf_usb/hackrf_usb.c b/firmware/hackrf_usb/hackrf_usb.c index 51d8a088..2a840232 100644 --- a/firmware/hackrf_usb/hackrf_usb.c +++ b/firmware/hackrf_usb/hackrf_usb.c @@ -206,8 +206,6 @@ int main(void) { sweep_mode(); } - start_streaming_on_hw_sync(); - // Set up IN transfer of buffer 0. if ( usb_bulk_buffer_offset >= 16384 && phase == 1 diff --git a/firmware/hackrf_usb/usb_api_transceiver.c b/firmware/hackrf_usb/usb_api_transceiver.c index 4532d28a..f86defad 100644 --- a/firmware/hackrf_usb/usb_api_transceiver.c +++ b/firmware/hackrf_usb/usb_api_transceiver.c @@ -269,20 +269,16 @@ void set_transceiver_mode(const transceiver_mode_t new_transceiver_mode) { led_off(LED3); rf_path_set_direction(&rf_path, RF_PATH_DIRECTION_OFF); vector_table.irq[NVIC_SGPIO_IRQ] = sgpio_isr_rx; - - hw_sync_stop(); } - hw_sync_stop(); if( _transceiver_mode != TRANSCEIVER_MODE_OFF ) { si5351c_activate_best_clock_source(&clock_gen); if( _hw_sync_mode != HW_SYNC_MODE_OFF) { - hw_sync_syn(); - } else { - baseband_streaming_enable(&sgpio_config); + hw_sync_enable(); } + baseband_streaming_enable(&sgpio_config); } } @@ -323,14 +319,3 @@ usb_request_status_t usb_vendor_request_set_hw_sync_mode( return USB_REQUEST_STATUS_OK; } } - -void start_streaming_on_hw_sync() -{ - if( _hw_sync_mode != HW_SYNC_MODE_OFF) { - while(!hw_sync_ready()) { } - hw_sync_ack(); - led_on(LED3); - - baseband_streaming_enable(&sgpio_config); - } -}