Merge remote-tracking branch 'mossmann/master' into jboone_refactor_20130906

Conflicts:
	firmware/common/hackrf_core.h
	firmware/common/rffc5071.c
This commit is contained in:
Jared Boone
2013-11-20 18:43:40 -08:00
20 changed files with 79390 additions and 7646 deletions

View File

@ -186,8 +186,8 @@ bool sample_rate_set(const uint32_t sample_rate_hz) {
return true; return true;
#endif #endif
#ifdef JAWBREAKER #if (defined JAWBREAKER || defined HACKRF_ONE)
uint32_t p1 = 4608; uint32_t p1 = 4608;
switch(sample_rate_hz) { switch(sample_rate_hz) {
@ -276,7 +276,7 @@ void cpu_clock_init(void)
si5351c_configure_multisynth(5, 1536, 0, 1, 0); /* 50MHz */ si5351c_configure_multisynth(5, 1536, 0, 1, 0); /* 50MHz */
#endif #endif
#ifdef JAWBREAKER #if (defined JAWBREAKER || defined HACKRF_ONE)
/* /*
* Jawbreaker clocks: * Jawbreaker clocks:
* CLK0 -> MAX5864/CPLD * CLK0 -> MAX5864/CPLD
@ -564,7 +564,7 @@ void pin_setup(void) {
/* Configure USB indicators */ /* Configure USB indicators */
scu_pinmux(SCU_PINMUX_USB_LED0, SCU_CONF_FUNCTION3); scu_pinmux(SCU_PINMUX_USB_LED0, SCU_CONF_FUNCTION3);
scu_pinmux(SCU_PINMUX_USB_LED1, SCU_CONF_FUNCTION3); scu_pinmux(SCU_PINMUX_USB_LED1, SCU_CONF_FUNCTION3);
/* Configure all GPIO as Input (safe state) */ /* Configure all GPIO as Input (safe state) */
GPIO0_DIR = 0; GPIO0_DIR = 0;
GPIO1_DIR = 0; GPIO1_DIR = 0;
@ -574,12 +574,14 @@ void pin_setup(void) {
GPIO5_DIR = 0; GPIO5_DIR = 0;
GPIO6_DIR = 0; GPIO6_DIR = 0;
GPIO7_DIR = 0; GPIO7_DIR = 0;
/* Configure GPIO2[1/2/8] (P4_1/2 P6_12) as output. */ /* Configure GPIO2[1/2/8] (P4_1/2 P6_12) as output. */
GPIO2_DIR |= (PIN_LED1 | PIN_LED2 | PIN_LED3); GPIO2_DIR |= (PIN_LED1 | PIN_LED2 | PIN_LED3);
/* GPIO3[6] on P6_10 as output. */ /* GPIO3[6] on P6_10 as output. */
GPIO3_DIR |= PIN_EN1V8; GPIO3_DIR |= PIN_EN1V8;
rf_path_pin_setup();
/* Configure SSP1 Peripheral (to be moved later in SSP driver) */ /* Configure SSP1 Peripheral (to be moved later in SSP driver) */
scu_pinmux(SCU_SSP1_MISO, (SCU_SSP_IO | SCU_CONF_FUNCTION5)); scu_pinmux(SCU_SSP1_MISO, (SCU_SSP_IO | SCU_CONF_FUNCTION5));
@ -596,3 +598,17 @@ void pin_setup(void) {
void enable_1v8_power(void) { void enable_1v8_power(void) {
gpio_set(PORT_EN1V8, PIN_EN1V8); gpio_set(PORT_EN1V8, PIN_EN1V8);
} }
void disable_1v8_power(void) {
gpio_clear(PORT_EN1V8, PIN_EN1V8);
}
#ifdef HACKRF_ONE
void enable_rf_power(void) {
gpio_clear(PORT_NO_VAA_ENABLE, PIN_NO_VAA_ENABLE);
}
void disable_rf_power(void) {
gpio_set(PORT_NO_VAA_ENABLE, PIN_NO_VAA_ENABLE);
}
#endif

View File

@ -35,6 +35,7 @@ extern "C"
/* hardware identification number */ /* hardware identification number */
#define BOARD_ID_JELLYBEAN 0 #define BOARD_ID_JELLYBEAN 0
#define BOARD_ID_JAWBREAKER 1 #define BOARD_ID_JAWBREAKER 1
#define BOARD_ID_HACKRF_ONE 2
#ifdef JELLYBEAN #ifdef JELLYBEAN
#define BOARD_ID BOARD_ID_JELLYBEAN #define BOARD_ID BOARD_ID_JELLYBEAN
@ -44,6 +45,10 @@ extern "C"
#define BOARD_ID BOARD_ID_JAWBREAKER #define BOARD_ID BOARD_ID_JAWBREAKER
#endif #endif
#ifdef HACKRF_ONE
#define BOARD_ID BOARD_ID_HACKRF_ONE
#endif
/* /*
* SCU PinMux * SCU PinMux
*/ */
@ -74,6 +79,7 @@ extern "C"
/* CPLD JTAG interface */ /* CPLD JTAG interface */
#define SCU_PINMUX_CPLD_TDO (P9_5) /* GPIO5[18] */ #define SCU_PINMUX_CPLD_TDO (P9_5) /* GPIO5[18] */
#define SCU_PINMUX_CPLD_TCK (P6_1) /* GPIO3[ 0] */ #define SCU_PINMUX_CPLD_TCK (P6_1) /* GPIO3[ 0] */
//FIXME swap TDI and TMS once more recent HackRF One PCBs are built:
#define SCU_PINMUX_CPLD_TMS (P6_2) /* GPIO3[ 1] */ #define SCU_PINMUX_CPLD_TMS (P6_2) /* GPIO3[ 1] */
#define SCU_PINMUX_CPLD_TDI (P6_5) /* GPIO3[ 4] */ #define SCU_PINMUX_CPLD_TDI (P6_5) /* GPIO3[ 4] */
@ -89,7 +95,7 @@ extern "C"
#ifdef JELLYBEAN #ifdef JELLYBEAN
#define SCU_PINMUX_SGPIO8 (P1_12) #define SCU_PINMUX_SGPIO8 (P1_12)
#endif #endif
#ifdef JAWBREAKER #if (defined JAWBREAKER || defined HACKRF_ONE)
#define SCU_PINMUX_SGPIO8 (P9_6) #define SCU_PINMUX_SGPIO8 (P9_6)
#endif #endif
#define SCU_PINMUX_SGPIO9 (P4_3) #define SCU_PINMUX_SGPIO9 (P4_3)
@ -126,7 +132,7 @@ extern "C"
#define SCU_MIXER_SDATA (P7_2) /* GPIO3[10] on P7_2 */ #define SCU_MIXER_SDATA (P7_2) /* GPIO3[10] on P7_2 */
#define SCU_MIXER_RESETX (P7_3) /* GPIO3[11] on P7_3 */ #define SCU_MIXER_RESETX (P7_3) /* GPIO3[11] on P7_3 */
#endif #endif
#ifdef JAWBREAKER #if (defined JAWBREAKER || defined HACKRF_ONE)
#define SCU_MIXER_ENX (P5_4) /* GPIO2[13] on P5_4 */ #define SCU_MIXER_ENX (P5_4) /* GPIO2[13] on P5_4 */
#define SCU_MIXER_SCLK (P2_6) /* GPIO5[6] on P2_6 */ #define SCU_MIXER_SCLK (P2_6) /* GPIO5[6] on P2_6 */
#define SCU_MIXER_SDATA (P6_4) /* GPIO3[3] on P6_4 */ #define SCU_MIXER_SDATA (P6_4) /* GPIO3[3] on P6_4 */
@ -135,7 +141,12 @@ extern "C"
/* RF LDO control */ /* RF LDO control */
#ifdef JAWBREAKER #ifdef JAWBREAKER
#define RF_LDO_ENABLE (P5_0) /* GPIO2[9] on P5_0 */ #define SCU_RF_LDO_ENABLE (P5_0) /* GPIO2[9] on P5_0 */
#endif
/* RF supply (VAA) control */
#ifdef HACKRF_ONE
#define SCU_NO_VAA_ENABLE (P5_0) /* GPIO2[9] on P5_0 */
#endif #endif
/* SPI flash */ /* SPI flash */
@ -146,6 +157,23 @@ extern "C"
#define SCU_FLASH_HOLD (P3_4) /* GPIO1[14] on P3_4 */ #define SCU_FLASH_HOLD (P3_4) /* GPIO1[14] on P3_4 */
#define SCU_FLASH_WP (P3_5) /* GPIO1[15] on P3_5 */ #define SCU_FLASH_WP (P3_5) /* GPIO1[15] on P3_5 */
/* RF switch control */
#ifdef HACKRF_ONE
#define SCU_HP (P4_0) /* GPIO2[0] on P4_0 */
#define SCU_LP (P5_1) /* GPIO2[10] on P5_1 */
#define SCU_TX_MIX_BP (P5_2) /* GPIO2[11] on P5_2 */
#define SCU_NO_MIX_BYPASS (P1_7) /* GPIO1[0] on P1_7 */
#define SCU_RX_MIX_BP (P5_3) /* GPIO2[12] on P5_3 */
#define SCU_TX_AMP (P5_6) /* GPIO2[15] on P5_6 */
#define SCU_TX (P6_7) /* GPIO5[15] on P6_7 */
#define SCU_MIX_BYPASS (P6_8) /* GPIO5[16] on P6_8 */
#define SCU_RX (P2_5) /* GPIO5[5] on P2_5 */
#define SCU_NO_TX_AMP_PWR (P6_9) /* GPIO3[5] on P6_9 */
#define SCU_AMP_BYPASS (P2_10) /* GPIO0[14] on P2_10 */
#define SCU_RX_AMP (P2_11) /* GPIO1[11] on P2_11 */
#define SCU_NO_RX_AMP_PWR (P2_12) /* GPIO1[12] on P2_12 */
#endif
/* TODO add other Pins */ /* TODO add other Pins */
#define SCU_PINMUX_GPIO3_8 (P7_0) /* GPIO3[8] */ #define SCU_PINMUX_GPIO3_8 (P7_0) /* GPIO3[8] */
#define SCU_PINMUX_GPIO3_9 (P7_1) /* GPIO3[9] */ #define SCU_PINMUX_GPIO3_9 (P7_1) /* GPIO3[9] */
@ -215,7 +243,7 @@ extern "C"
#define PIN_MIXER_RESETX (BIT11) /* GPIO3[11] on P7_3 */ #define PIN_MIXER_RESETX (BIT11) /* GPIO3[11] on P7_3 */
#define PORT_MIXER_RESETX (GPIO3) #define PORT_MIXER_RESETX (GPIO3)
#endif #endif
#ifdef JAWBREAKER #if (defined JAWBREAKER || defined HACKRF_ONE)
#define PIN_MIXER_ENX (BIT13) /* GPIO2[13] on P5_4 */ #define PIN_MIXER_ENX (BIT13) /* GPIO2[13] on P5_4 */
#define PORT_MIXER_ENX (GPIO2) #define PORT_MIXER_ENX (GPIO2)
#define PIN_MIXER_SCLK (BIT6) /* GPIO5[6] on P2_6 */ #define PIN_MIXER_SCLK (BIT6) /* GPIO5[6] on P2_6 */
@ -231,12 +259,47 @@ extern "C"
#define PORT_RF_LDO_ENABLE (GPIO2) /* PORT for RF_LDO_ENABLE */ #define PORT_RF_LDO_ENABLE (GPIO2) /* PORT for RF_LDO_ENABLE */
#endif #endif
#ifdef HACKRF_ONE
#define PIN_NO_VAA_ENABLE (BIT9) /* GPIO2[9] on P5_0 */
#define PORT_NO_VAA_ENABLE (GPIO2) /* PORT for NO_VAA_ENABLE */
#endif
#define PIN_FLASH_HOLD (BIT14) /* GPIO1[14] on P3_4 */ #define PIN_FLASH_HOLD (BIT14) /* GPIO1[14] on P3_4 */
#define PIN_FLASH_WP (BIT15) /* GPIO1[15] on P3_5 */ #define PIN_FLASH_WP (BIT15) /* GPIO1[15] on P3_5 */
#define PORT_FLASH (GPIO1) #define PORT_FLASH (GPIO1)
#define PIN_SSP0_SSEL (BIT11) /* GPIO5[11] on P3_8 */ #define PIN_SSP0_SSEL (BIT11) /* GPIO5[11] on P3_8 */
#define PORT_SSP0_SSEL (GPIO5) #define PORT_SSP0_SSEL (GPIO5)
/* RF switch control */
#ifdef HACKRF_ONE
#define PIN_HP (GPIOPIN0) /* GPIO2[0] on P4_0 */
#define PORT_HP (GPIO2)
#define PIN_LP (GPIOPIN10) /* GPIO2[10] on P5_1 */
#define PORT_LP (GPIO2)
#define PIN_TX_MIX_BP (GPIOPIN11) /* GPIO2[11] on P5_2 */
#define PORT_TX_MIX_BP (GPIO2)
#define PIN_NO_MIX_BYPASS (GPIOPIN0) /* GPIO1[0] on P1_7 */
#define PORT_NO_MIX_BYPASS (GPIO1)
#define PIN_RX_MIX_BP (GPIOPIN12) /* GPIO2[12] on P5_3 */
#define PORT_RX_MIX_BP (GPIO2)
#define PIN_TX_AMP (GPIOPIN15) /* GPIO2[15] on P5_6 */
#define PORT_TX_AMP (GPIO2)
#define PIN_TX (GPIOPIN15) /* GPIO5[15] on P6_7 */
#define PORT_TX (GPIO5)
#define PIN_MIX_BYPASS (GPIOPIN16) /* GPIO5[16] on P6_8 */
#define PORT_MIX_BYPASS (GPIO5)
#define PIN_RX (GPIOPIN5) /* GPIO5[5] on P2_5 */
#define PORT_RX (GPIO5)
#define PIN_NO_TX_AMP_PWR (GPIOPIN5) /* GPIO3[5] on P6_9 */
#define PORT_NO_TX_AMP_PWR (GPIO3)
#define PIN_AMP_BYPASS (GPIOPIN14) /* GPIO0[14] on P2_10 */
#define PORT_AMP_BYPASS (GPIO0)
#define PIN_RX_AMP (GPIOPIN11) /* GPIO1[11] on P2_11 */
#define PORT_RX_AMP (GPIO1)
#define PIN_NO_RX_AMP_PWR (GPIOPIN12) /* GPIO1[12] on P2_12 */
#define PORT_NO_RX_AMP_PWR (GPIO1)
#endif
/* GPIO Input */ /* GPIO Input */
#define PIN_BOOT0 (BIT8) /* GPIO0[8] on P1_1 */ #define PIN_BOOT0 (BIT8) /* GPIO0[8] on P1_1 */
#define PIN_BOOT1 (BIT9) /* GPIO0[9] on P1_2 */ #define PIN_BOOT1 (BIT9) /* GPIO0[9] on P1_2 */
@ -282,11 +345,17 @@ void ssp1_set_mode_max5864(void);
void pin_setup(void); void pin_setup(void);
void enable_1v8_power(void); void enable_1v8_power(void);
void disable_1v8_power(void);
bool sample_rate_frac_set(uint32_t rate_num, uint32_t rate_denom); bool sample_rate_frac_set(uint32_t rate_num, uint32_t rate_denom);
bool sample_rate_set(const uint32_t sampling_rate_hz); bool sample_rate_set(const uint32_t sampling_rate_hz);
bool baseband_filter_bandwidth_set(const uint32_t bandwidth_hz); bool baseband_filter_bandwidth_set(const uint32_t bandwidth_hz);
#ifdef HACKRF_ONE
void enable_rf_power(void);
void disable_rf_power(void);
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -22,6 +22,9 @@
#include "rf_path.h" #include "rf_path.h"
#include <libopencm3/lpc43xx/gpio.h>
#include <libopencm3/lpc43xx/scu.h>
#include <hackrf_core.h> #include <hackrf_core.h>
#include <rffc5071.h> #include <rffc5071.h>
@ -29,10 +32,15 @@
#include <max5864.h> #include <max5864.h>
#include <sgpio.h> #include <sgpio.h>
#ifdef JAWBREAKER #if (defined JAWBREAKER || defined HACKRF_ONE)
/* /*
* RF switches on Jawbreaker are controlled by General Purpose Outputs (GPO) on * RF switches on Jawbreaker are controlled by General Purpose Outputs (GPO) on
* the RFFC5072. * the RFFC5072.
*
* On HackRF One, the same signals are controlled by GPIO on the LPC.
* SWITCHCTRL_NO_TX_AMP_PWR and SWITCHCTRL_NO_RX_AMP_PWR are not normally used
* on HackRF One as the amplifier power is instead controlled only by
* SWITCHCTRL_AMP_BYPASS.
*/ */
#define SWITCHCTRL_NO_TX_AMP_PWR (1 << 0) /* GPO1 turn off TX amp power */ #define SWITCHCTRL_NO_TX_AMP_PWR (1 << 0) /* GPO1 turn off TX amp power */
#define SWITCHCTRL_AMP_BYPASS (1 << 1) /* GPO2 bypass amp section */ #define SWITCHCTRL_AMP_BYPASS (1 << 1) /* GPO2 bypass amp section */
@ -67,6 +75,124 @@
uint8_t switchctrl = SWITCHCTRL_SAFE; uint8_t switchctrl = SWITCHCTRL_SAFE;
#ifdef HACKRF_ONE
static void switchctrl_set_hackrf_one(uint8_t ctrl) {
if (ctrl & SWITCHCTRL_TX) {
gpio_set(PORT_TX, PIN_TX);
gpio_clear(PORT_RX, PIN_RX);
} else {
gpio_clear(PORT_TX, PIN_TX);
gpio_set(PORT_RX, PIN_RX);
}
if (ctrl & SWITCHCTRL_MIX_BYPASS) {
gpio_set(PORT_MIX_BYPASS, PIN_MIX_BYPASS);
gpio_clear(PORT_NO_MIX_BYPASS, PIN_NO_MIX_BYPASS);
if (ctrl & SWITCHCTRL_TX) {
gpio_set(PORT_TX_MIX_BP, PIN_TX_MIX_BP);
gpio_clear(PORT_RX_MIX_BP, PIN_RX_MIX_BP);
} else {
gpio_clear(PORT_TX_MIX_BP, PIN_TX_MIX_BP);
gpio_set(PORT_RX_MIX_BP, PIN_RX_MIX_BP);
}
} else {
gpio_clear(PORT_MIX_BYPASS, PIN_MIX_BYPASS);
gpio_set(PORT_NO_MIX_BYPASS, PIN_NO_MIX_BYPASS);
gpio_clear(PORT_TX_MIX_BP, PIN_TX_MIX_BP);
gpio_clear(PORT_RX_MIX_BP, PIN_RX_MIX_BP);
}
if (ctrl & SWITCHCTRL_HP) {
gpio_set(PORT_HP, PIN_HP);
gpio_clear(PORT_LP, PIN_LP);
} else {
gpio_clear(PORT_HP, PIN_HP);
gpio_set(PORT_LP, PIN_LP);
}
if (ctrl & SWITCHCTRL_AMP_BYPASS) {
gpio_set(PORT_AMP_BYPASS, PIN_AMP_BYPASS);
gpio_clear(PORT_TX_AMP, PIN_TX_AMP);
gpio_set(PORT_NO_TX_AMP_PWR, PIN_NO_TX_AMP_PWR);
gpio_clear(PORT_RX_AMP, PIN_RX_AMP);
gpio_set(PORT_NO_RX_AMP_PWR, PIN_NO_RX_AMP_PWR);
} else if (ctrl & SWITCHCTRL_TX) {
gpio_clear(PORT_AMP_BYPASS, PIN_AMP_BYPASS);
gpio_set(PORT_TX_AMP, PIN_TX_AMP);
gpio_clear(PORT_NO_TX_AMP_PWR, PIN_NO_TX_AMP_PWR);
gpio_clear(PORT_RX_AMP, PIN_RX_AMP);
gpio_set(PORT_NO_RX_AMP_PWR, PIN_NO_RX_AMP_PWR);
} else {
gpio_clear(PORT_AMP_BYPASS, PIN_AMP_BYPASS);
gpio_clear(PORT_TX_AMP, PIN_TX_AMP);
gpio_set(PORT_NO_TX_AMP_PWR, PIN_NO_TX_AMP_PWR);
gpio_set(PORT_RX_AMP, PIN_RX_AMP);
gpio_clear(PORT_NO_RX_AMP_PWR, PIN_NO_RX_AMP_PWR);
}
/*
* These normally shouldn't be set post-Jawbreaker, but they can be
* used to explicitly turn off power to the amplifiers while AMP_BYPASS
* is unset:
*/
if (ctrl & SWITCHCTRL_NO_TX_AMP_PWR)
gpio_set(PORT_NO_TX_AMP_PWR, PIN_NO_TX_AMP_PWR);
if (ctrl & SWITCHCTRL_NO_RX_AMP_PWR)
gpio_set(PORT_NO_RX_AMP_PWR, PIN_NO_RX_AMP_PWR);
}
#endif
static void switchctrl_set(const uint8_t gpo) {
#ifdef JAWBREAKER
rffc5071_set_gpo(gpo);
#elif HACKRF_ONE
switchctrl_set_hackrf_one(gpo);
#else
(void)gpo;
#endif
}
void rf_path_pin_setup() {
#ifdef HACKRF_ONE
/* Configure RF switch control signals */
scu_pinmux(SCU_HP, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_LP, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_TX_MIX_BP, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_NO_MIX_BYPASS, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_RX_MIX_BP, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_TX_AMP, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_TX, SCU_GPIO_FAST | SCU_CONF_FUNCTION4);
scu_pinmux(SCU_MIX_BYPASS, SCU_GPIO_FAST | SCU_CONF_FUNCTION4);
scu_pinmux(SCU_RX, SCU_GPIO_FAST | SCU_CONF_FUNCTION4);
scu_pinmux(SCU_NO_TX_AMP_PWR, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_AMP_BYPASS, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_RX_AMP, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
scu_pinmux(SCU_NO_RX_AMP_PWR, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
/* Configure RF power supply (VAA) switch */
scu_pinmux(SCU_NO_VAA_ENABLE, SCU_GPIO_FAST | SCU_CONF_FUNCTION0);
/* Configure RF switch control signals as outputs */
GPIO0_DIR |= PIN_AMP_BYPASS;
GPIO1_DIR |= (PIN_NO_MIX_BYPASS | PIN_RX_AMP | PIN_NO_RX_AMP_PWR);
GPIO2_DIR |= (PIN_HP | PIN_LP | PIN_TX_MIX_BP | PIN_RX_MIX_BP | PIN_TX_AMP);
GPIO3_DIR |= PIN_NO_TX_AMP_PWR;
GPIO5_DIR |= (PIN_TX | PIN_MIX_BYPASS | PIN_RX);
/*
* Safe (initial) switch settings turn off both amplifiers and enable both
* amp bypass and mixer bypass.
*/
switchctrl_set(SWITCHCTRL_AMP_BYPASS | SWITCHCTRL_MIX_BYPASS);
/* Configure RF power supply (VAA) switch control signal as output */
GPIO_DIR(PORT_NO_VAA_ENABLE) |= PIN_NO_VAA_ENABLE;
/* Safe state: start with VAA turned off: */
disable_rf_power();
#endif
}
void rf_path_init(void) { void rf_path_init(void) {
ssp1_set_mode_max5864(); ssp1_set_mode_max5864();
max5864_shutdown(); max5864_shutdown();
@ -76,6 +202,7 @@ void rf_path_init(void) {
max2837_start(); max2837_start();
rffc5071_setup(); rffc5071_setup();
switchctrl_set(switchctrl);
} }
void rf_path_set_direction(const rf_path_direction_t direction) { void rf_path_set_direction(const rf_path_direction_t direction) {
@ -132,8 +259,8 @@ void rf_path_set_direction(const rf_path_direction_t direction) {
sgpio_configure(SGPIO_DIRECTION_RX, true); sgpio_configure(SGPIO_DIRECTION_RX, true);
break; break;
} }
rffc5071_set_gpo(switchctrl); switchctrl_set(switchctrl);
} }
void rf_path_set_filter(const rf_path_filter_t filter) { void rf_path_set_filter(const rf_path_filter_t filter) {
@ -155,8 +282,8 @@ void rf_path_set_filter(const rf_path_filter_t filter) {
rffc5071_enable(); rffc5071_enable();
break; break;
} }
rffc5071_set_gpo(switchctrl); switchctrl_set(switchctrl);
} }
void rf_path_set_lna(const uint_fast8_t enable) { void rf_path_set_lna(const uint_fast8_t enable) {
@ -175,5 +302,5 @@ void rf_path_set_lna(const uint_fast8_t enable) {
switchctrl |= SWITCHCTRL_AMP_BYPASS | SWITCHCTRL_NO_TX_AMP_PWR | SWITCHCTRL_NO_RX_AMP_PWR; switchctrl |= SWITCHCTRL_AMP_BYPASS | SWITCHCTRL_NO_TX_AMP_PWR | SWITCHCTRL_NO_RX_AMP_PWR;
} }
rffc5071_set_gpo(switchctrl); switchctrl_set(switchctrl);
} }

View File

@ -25,6 +25,7 @@
#include <stdint.h> #include <stdint.h>
void rf_path_pin_setup(void);
void rf_path_init(void); void rf_path_init(void);
typedef enum { typedef enum {

View File

@ -226,7 +226,7 @@ void si5351c_configure_clock_control()
} }
#endif #endif
#ifdef JAWBREAKER #if (defined JAWBREAKER || defined HACKRF_ONE)
void si5351c_configure_clock_control() void si5351c_configure_clock_control()
{ {
uint8_t data[] = {16 uint8_t data[] = {16

View File

@ -178,6 +178,9 @@ void usb_configuration_changed(
int main(void) { int main(void) {
pin_setup(); pin_setup();
enable_1v8_power(); enable_1v8_power();
#ifdef HACKRF_ONE
enable_rf_power();
#endif
cpu_clock_init(); cpu_clock_init();
usb_set_configuration_changed_cb(usb_configuration_changed); usb_set_configuration_changed_cb(usb_configuration_changed);

View File

@ -0,0 +1,46 @@
Copyright 2012 Michael Ossmann
These files are part of HackRF.
This is a free hardware design; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This design is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this design; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
Boston, MA 02110-1301, USA.
HackRF One is a wideband software radio transceiver with a USB interface.
hardware notes:
Schematic and layout files were designed in KiCad, an open source electronic
design automation package.
order of copper layers:
Copper 1: Front
Copper 2: Inner3
Copper 3: Inner2
Copper 4: Back
PCB description: 4 layer PCB 0.062 in
Copper 1 0.5 oz foil plated to approximately 0.0017 in
Dielectric 1-2 0.0119 in
Copper 2 1 oz foil (0.0014 in)
Dielectric 2-3 0.0280 in
Copper 3 1 oz foil (0.0014 in)
Dielectric 3-4 0.0119 in
Copper 4 0.5 oz foil plated to approximately 0.0017 in
FR4 or similar substrate with Er=4.5 (+/- 0.1)
double side solder mask black
double side silkscreen white
6 mil min trace width and
6 mil min isolation

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
update=Wed Mar 27 00:13:41 2013
version=1
last_client=eeschema
[cvpcb]
version=1
NetITyp=0
NetIExt=.net
PkgIExt=.pkg
NetDir=
LibDir=
NetType=0
[cvpcb/libraries]
EquName1=devcms
[general]
version=1
[pcbnew]
version=1
PadDrlX=320
PadDimH=600
PadDimV=600
BoardThickness=630
TxtPcbV=800
TxtPcbH=600
TxtModV=600
TxtModH=600
TxtModW=120
VEgarde=100
DrawLar=150
EdgeLar=150
TxtLar=120
MSegLar=150
LastNetListRead=hackrf-one.net
[pcbnew/libraries]
LibDir=../kicad
LibName1=sockets
LibName2=connect
LibName3=discret
LibName4=pin_array
LibName5=divers
LibName6=libcms
LibName7=display
LibName8=valves
LibName9=led
LibName10=dip_sockets
LibName11=hackrf
[eeschema]
version=1
LibDir=../kicad
NetFmtName=
RptD_X=0
RptD_Y=100
RptLab=1
LabSize=60
[eeschema/libraries]
LibName1=power
LibName2=device
LibName3=transistors
LibName4=conn
LibName5=linear
LibName6=regul
LibName7=74xx
LibName8=cmos4000
LibName9=adc-dac
LibName10=memory
LibName11=xilinx
LibName12=special
LibName13=microcontrollers
LibName14=dsp
LibName15=microchip
LibName16=analog_switches
LibName17=motorola
LibName18=texas
LibName19=intel
LibName20=audio
LibName21=interface
LibName22=digital-audio
LibName23=philips
LibName24=display
LibName25=cypress
LibName26=siliconi
LibName27=opto
LibName28=atmel
LibName29=contrib
LibName30=valves
LibName31=hackrf

View File

@ -0,0 +1,66 @@
EESchema Schematic File Version 2
LIBS:power
LIBS:device
LIBS:transistors
LIBS:conn
LIBS:linear
LIBS:regul
LIBS:74xx
LIBS:cmos4000
LIBS:adc-dac
LIBS:memory
LIBS:xilinx
LIBS:special
LIBS:microcontrollers
LIBS:dsp
LIBS:microchip
LIBS:analog_switches
LIBS:motorola
LIBS:texas
LIBS:intel
LIBS:audio
LIBS:interface
LIBS:digital-audio
LIBS:philips
LIBS:display
LIBS:cypress
LIBS:siliconi
LIBS:opto
LIBS:atmel
LIBS:contrib
LIBS:valves
LIBS:hackrf
LIBS:hackrf-one-cache
EELAYER 27 0
EELAYER END
$Descr User 17000 11000
encoding utf-8
Sheet 1 4
Title "HackRF One"
Date "17 nov 2013"
Rev ""
Comp "Copyright 2012 Michael Ossmann"
Comment1 "License: GPL v2"
Comment2 ""
Comment3 ""
Comment4 ""
$EndDescr
$Sheet
S 2550 3300 1050 150
U 503BB638
F0 "frontend" 60
F1 "frontend.sch" 60
$EndSheet
$Sheet
S 2550 2850 1050 150
U 50370666
F0 "baseband" 60
F1 "baseband.sch" 60
$EndSheet
$Sheet
S 2550 2400 1050 150
U 5037043E
F0 "mcu/usb/power" 60
F1 "mcu.sch" 60
$EndSheet
$EndSCHEMATC

4996
hardware/hackrf-one/mcu.sch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
Cmp-Mod V01 Created by CvPcb (2012-11-24 BZR 3813)-stable date = Thu Dec 6 15:27:37 2012 Cmp-Mod V01 Created by CvPcb (2013-07-24 BZR 4024)-stable date = Wed Nov 6 22:45:44 2013
BeginCmp BeginCmp
TimeStamp = /503BB638/4FAECB99; TimeStamp = /503BB638/4FAECB99;
@ -1530,7 +1530,7 @@ BeginCmp
TimeStamp = /5037043E/4F837D97; TimeStamp = /5037043E/4F837D97;
Reference = P28; Reference = P28;
ValeurCmp = SD; ValeurCmp = SD;
IdModule = GSG-HEADER-2x6; IdModule = GSG-HEADER-2x10;
EndCmp EndCmp
BeginCmp BeginCmp
@ -1544,7 +1544,7 @@ BeginCmp
TimeStamp = /5037043E/504571A2; TimeStamp = /5037043E/504571A2;
Reference = P30; Reference = P30;
ValeurCmp = BANK2_AUX; ValeurCmp = BANK2_AUX;
IdModule = GSG-HEADER-2x8; IdModule = GSG-HEADER-2x10;
EndCmp EndCmp
BeginCmp BeginCmp

View File

@ -1,4 +1,4 @@
EESchema-DOCLIB Version 2.0 Date: Thu Sep 6 10:28:44 2012 EESchema-DOCLIB Version 2.0 Date: Sat Nov 16 08:23:32 2013
# #
$CMP CONN_2_SHORTED $CMP CONN_2_SHORTED
D Symbole general de connecteur D Symbole general de connecteur

View File

@ -1,4 +1,4 @@
EESchema-LIBRARY Version 2.3 Date: Thu Sep 6 10:28:44 2012 EESchema-LIBRARY Version 2.3 Date: Sat Nov 16 08:23:32 2013
#encoding utf-8 #encoding utf-8
# #
# BALUN # BALUN
@ -6,6 +6,8 @@ EESchema-LIBRARY Version 2.3 Date: Thu Sep 6 10:28:44 2012
DEF BALUN T 0 40 Y N 1 F N DEF BALUN T 0 40 Y N 1 F N
F0 "T" 0 250 70 H V C CNN F0 "T" 0 250 70 H V C CNN
F1 "BALUN" 0 -300 70 H V C CNN F1 "BALUN" 0 -300 70 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
A -100 -150 50 899 1 0 1 0 N -100 -100 -50 -150 A -100 -150 50 899 1 0 1 0 N -100 -100 -50 -150
A -100 -150 50 -1 -899 0 1 0 N -50 -150 -100 -199 A -100 -150 50 -1 -899 0 1 0 N -50 -150 -100 -199
@ -38,6 +40,8 @@ ENDDEF
DEF BALUN-B0310J50100AHF T 0 40 Y N 1 F N DEF BALUN-B0310J50100AHF T 0 40 Y N 1 F N
F0 "T" 0 200 70 H V C CNN F0 "T" 0 200 70 H V C CNN
F1 "BALUN-B0310J50100AHF" 0 -150 70 H V C CNN F1 "BALUN-B0310J50100AHF" 0 -150 70 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
A -150 -50 50 1 1799 0 1 0 N -100 -50 -200 -50 A -150 -50 50 1 1799 0 1 0 N -100 -50 -200 -50
A -150 100 50 -1799 -1 0 1 0 N -200 100 -100 100 A -150 100 50 -1799 -1 0 1 0 N -200 100 -100 100
@ -60,6 +64,8 @@ ENDDEF
DEF BALUN-CX2156NL T 0 40 Y N 1 F N DEF BALUN-CX2156NL T 0 40 Y N 1 F N
F0 "T" 0 200 70 H V C CNN F0 "T" 0 200 70 H V C CNN
F1 "BALUN-CX2156NL" 0 -150 70 H V C CNN F1 "BALUN-CX2156NL" 0 -150 70 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
A -150 -50 50 1 1799 0 1 0 N -100 -50 -200 -50 A -150 -50 50 1 1799 0 1 0 N -100 -50 -200 -50
A -150 100 50 -1799 -1 0 1 0 N -200 100 -100 100 A -150 100 50 -1799 -1 0 1 0 N -200 100 -100 100
@ -82,6 +88,8 @@ ENDDEF
DEF BALUN-RFXF9503 T 0 40 Y N 1 F N DEF BALUN-RFXF9503 T 0 40 Y N 1 F N
F0 "T" 0 200 70 H V C CNN F0 "T" 0 200 70 H V C CNN
F1 "BALUN-RFXF9503" 0 -150 70 H V C CNN F1 "BALUN-RFXF9503" 0 -150 70 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
A -150 -50 50 1 1799 0 1 0 N -100 -50 -200 -50 A -150 -50 50 1 1799 0 1 0 N -100 -50 -200 -50
A -150 100 50 -1799 -1 0 1 0 N -200 100 -100 100 A -150 100 50 -1799 -1 0 1 0 N -200 100 -100 100
@ -99,11 +107,48 @@ X P2 5 300 -50 100 L 60 60 1 1 P
ENDDRAW ENDDRAW
ENDDEF ENDDEF
# #
# CONN_11X2
#
DEF CONN_11X2 P 0 10 Y N 1 F N
F0 "P" 0 600 60 H V C CNN
F1 "CONN_11X2" 0 0 50 V V C CNN
F2 "~" 0 -250 60 H V C CNN
F3 "~" 0 -250 60 H V C CNN
DRAW
S -100 550 100 -550 0 1 0 N
S 1200 650 1200 650 0 1 0 N
X P1 1 -400 500 300 R 60 30 1 1 P I
X P2 2 400 500 300 L 60 30 1 1 P I
X P3 3 -400 400 300 R 60 30 1 1 P I
X P4 4 400 400 300 L 60 30 1 1 P I
X P5 5 -400 300 300 R 60 30 1 1 P I
X P6 6 400 300 300 L 60 30 1 1 P I
X P7 7 -400 200 300 R 60 30 1 1 P I
X P8 8 400 200 300 L 60 30 1 1 P I
X P9 9 -400 100 300 R 60 30 1 1 P I
X P10 10 400 100 300 L 60 30 1 1 P I
X P20 20 400 -400 300 L 60 30 1 1 P I
X P11 11 -400 0 300 R 60 30 1 1 P I
X P21 21 -400 -500 300 R 60 30 1 1 P I
X P12 12 400 0 300 L 60 30 1 1 P I
X P22 22 400 -500 300 L 60 30 1 1 P I
X P13 13 -400 -100 300 R 60 30 1 1 P I
X P14 14 400 -100 300 L 60 30 1 1 P I
X P15 15 -400 -200 300 R 60 30 1 1 P I
X P16 16 400 -200 300 L 60 30 1 1 P I
X P17 17 -400 -300 300 R 60 30 1 1 P I
X P18 18 400 -300 300 L 60 30 1 1 P I
X P19 19 -400 -400 300 R 60 30 1 1 P I
ENDDRAW
ENDDEF
#
# CONN_16X2 # CONN_16X2
# #
DEF CONN_16X2 P 0 10 Y N 1 F N DEF CONN_16X2 P 0 10 Y N 1 F N
F0 "P" 0 850 60 H V C CNN F0 "P" 0 850 60 H V C CNN
F1 "CONN_16X2" 0 0 50 V V C CNN F1 "CONN_16X2" 0 0 50 V V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -100 800 100 -800 0 1 0 N S -100 800 100 -800 0 1 0 N
S 1200 650 1200 650 0 1 0 N S 1200 650 1200 650 0 1 0 N
@ -147,6 +192,8 @@ ENDDEF
DEF CONN_2_SHORTED P 0 40 Y N 1 F N DEF CONN_2_SHORTED P 0 40 Y N 1 F N
F0 "P" -50 0 40 V V C CNN F0 "P" -50 0 40 V V C CNN
F1 "CONN_2_SHORTED" 50 0 40 V V C CNN F1 "CONN_2_SHORTED" 50 0 40 V V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -100 150 100 -150 0 1 0 N S -100 150 100 -150 0 1 0 N
P 2 0 1 0 -300 100 -300 -100 N P 2 0 1 0 -300 100 -300 -100 N
@ -160,6 +207,8 @@ ENDDEF
DEF DMC2400 U 0 40 Y Y 1 F N DEF DMC2400 U 0 40 Y Y 1 F N
F0 "U" -50 0 60 V V C CNN F0 "U" -50 0 60 V V C CNN
F1 "DMC2400" 50 0 60 V V C CNN F1 "DMC2400" 50 0 60 V V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -250 250 250 -250 0 1 0 N S -250 250 250 -250 0 1 0 N
X S1 1 -400 100 150 R 50 50 1 1 B X S1 1 -400 100 150 R 50 50 1 1 B
@ -176,6 +225,8 @@ ENDDEF
DEF FIL-DEA U 0 40 Y Y 1 F N DEF FIL-DEA U 0 40 Y Y 1 F N
F0 "U" 0 50 60 H V C CNN F0 "U" 0 50 60 H V C CNN
F1 "FIL-DEA" 0 -50 60 H V C CNN F1 "FIL-DEA" 0 -50 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -300 200 300 -200 0 1 0 N S -300 200 300 -200 0 1 0 N
X IN 1 -600 -150 300 R 50 50 1 1 B X IN 1 -600 -150 300 R 50 50 1 1 B
@ -190,6 +241,8 @@ ENDDEF
DEF FIL-LP0603 U 0 40 Y Y 1 F N DEF FIL-LP0603 U 0 40 Y Y 1 F N
F0 "U" 0 50 60 H V C CNN F0 "U" 0 50 60 H V C CNN
F1 "FIL-LP0603" 0 -50 60 H V C CNN F1 "FIL-LP0603" 0 -50 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -300 200 300 -200 0 1 0 N S -300 200 300 -200 0 1 0 N
X OUT 1 -600 150 300 R 50 50 1 1 B X OUT 1 -600 150 300 R 50 50 1 1 B
@ -204,6 +257,8 @@ ENDDEF
DEF GSG-74HC04 U 0 40 Y Y 1 F N DEF GSG-74HC04 U 0 40 Y Y 1 F N
F0 "U" -50 0 60 V V C CNN F0 "U" -50 0 60 V V C CNN
F1 "GSG-74HC04" 50 0 60 V V C CNN F1 "GSG-74HC04" 50 0 60 V V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -300 350 300 -350 0 1 0 N S -300 350 300 -350 0 1 0 N
X ~ 0 0 -650 300 U 50 50 1 1 W X ~ 0 0 -650 300 U 50 50 1 1 W
@ -229,6 +284,8 @@ ENDDEF
DEF GSG-74HC08 U 0 40 Y Y 1 F N DEF GSG-74HC08 U 0 40 Y Y 1 F N
F0 "U" -50 0 60 V V C CNN F0 "U" -50 0 60 V V C CNN
F1 "GSG-74HC08" 50 0 60 V V C CNN F1 "GSG-74HC08" 50 0 60 V V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -300 350 300 -350 0 1 0 N S -300 350 300 -350 0 1 0 N
X ~ 0 0 -650 300 U 50 50 1 1 W X ~ 0 0 -650 300 U 50 50 1 1 W
@ -254,6 +311,8 @@ ENDDEF
DEF GSG-900MHZ-F-ANTENNA J 0 40 Y Y 1 F N DEF GSG-900MHZ-F-ANTENNA J 0 40 Y Y 1 F N
F0 "J" 300 100 60 H V C CNN F0 "J" 300 100 60 H V C CNN
F1 "GSG-900MHZ-F-ANTENNA" 250 650 60 H V C CNN F1 "GSG-900MHZ-F-ANTENNA" 250 650 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
P 4 0 1 0 -150 300 -150 550 0 550 0 300 N P 4 0 1 0 -150 300 -150 550 0 550 0 300 N
P 15 0 1 0 0 550 100 550 100 200 200 200 200 550 300 550 300 200 400 200 400 550 500 550 500 200 600 200 600 550 700 550 700 100 N P 15 0 1 0 0 550 100 550 100 200 200 200 200 550 300 550 300 200 400 200 400 550 500 550 500 200 600 200 600 550 700 550 700 100 N
@ -267,6 +326,8 @@ ENDDEF
DEF GSG-DIODE-TVS-BI D 0 40 N N 1 F N DEF GSG-DIODE-TVS-BI D 0 40 N N 1 F N
F0 "D" 0 100 50 H V C CNN F0 "D" 0 100 50 H V C CNN
F1 "GSG-DIODE-TVS-BI" 0 -100 40 H V C CNN F1 "GSG-DIODE-TVS-BI" 0 -100 40 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
$FPLIST $FPLIST
D? D?
SO* SO*
@ -286,6 +347,8 @@ ENDDEF
DEF GSG-IP4220CZ6 U 0 40 Y Y 1 F N DEF GSG-IP4220CZ6 U 0 40 Y Y 1 F N
F0 "U" 0 250 60 H V C CNN F0 "U" 0 250 60 H V C CNN
F1 "GSG-IP4220CZ6" 0 -250 60 H V C CNN F1 "GSG-IP4220CZ6" 0 -250 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -250 200 250 -200 0 1 0 N S -250 200 250 -200 0 1 0 N
X ESD1 1 -550 100 300 R 50 50 1 1 I X ESD1 1 -550 100 300 R 50 50 1 1 I
@ -302,6 +365,8 @@ ENDDEF
DEF GSG-SMA-CONN P 0 0 Y N 1 F N DEF GSG-SMA-CONN P 0 0 Y N 1 F N
F0 "P" 0 150 60 H V C CNN F0 "P" 0 150 60 H V C CNN
F1 "GSG-SMA-CONN" 0 -150 60 H V C CNN F1 "GSG-SMA-CONN" 0 -150 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
C 0 0 100 0 1 0 N C 0 0 100 0 1 0 N
P 3 0 1 0 0 -100 0 -500 0 -500 N P 3 0 1 0 0 -100 0 -500 0 -500 N
@ -318,6 +383,8 @@ ENDDEF
DEF GSG-USB-MICRO-B J 0 40 Y Y 1 F N DEF GSG-USB-MICRO-B J 0 40 Y Y 1 F N
F0 "J" 0 300 60 H V C CNN F0 "J" 0 300 60 H V C CNN
F1 "GSG-USB-MICRO-B" 0 -350 60 H V C CNN F1 "GSG-USB-MICRO-B" 0 -350 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
P 5 0 1 0 200 250 -50 250 -50 -250 200 -250 200 -250 N P 5 0 1 0 200 250 -50 250 -50 -250 200 -250 200 -250 N
X VBUS 1 -250 200 200 R 50 50 1 1 w X VBUS 1 -250 200 200 R 50 50 1 1 w
@ -328,11 +395,31 @@ X GND 5 -250 -200 200 R 50 50 1 1 w
ENDDRAW ENDDRAW
ENDDEF ENDDEF
# #
# GSG-USB-MICRO-B-SHIELDED
#
DEF GSG-USB-MICRO-B-SHIELDED J 0 40 Y Y 1 F N
F0 "J" 150 300 60 H V C CNN
F1 "GSG-USB-MICRO-B-SHIELDED" 400 0 60 V V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW
P 4 0 1 0 350 -250 -50 -250 -50 250 350 250 N
X SHIELD 0 250 -450 200 U 50 50 1 1 P
X VBUS 1 -250 200 200 R 50 50 1 1 w
X D- 2 -250 100 200 R 50 50 1 1 B
X D+ 3 -250 0 200 R 50 50 1 1 B
X ID 4 -250 -100 200 R 50 50 1 1 I
X GND 5 -250 -200 200 R 50 50 1 1 w
ENDDRAW
ENDDEF
#
# GSG-XC2C64A-7VQG100C # GSG-XC2C64A-7VQG100C
# #
DEF GSG-XC2C64A-7VQG100C U 0 40 Y Y 1 F N DEF GSG-XC2C64A-7VQG100C U 0 40 Y Y 1 F N
F0 "U" 0 100 60 H V C CNN F0 "U" 0 100 60 H V C CNN
F1 "GSG-XC2C64A-7VQG100C" 0 -100 60 H V C CNN F1 "GSG-XC2C64A-7VQG100C" 0 -100 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -1700 1700 1700 -1700 0 1 0 N S -1700 1700 1700 -1700 0 1 0 N
X BANK2F1M12 1 -2000 1200 300 R 50 50 1 1 B X BANK2F1M12 1 -2000 1200 300 R 50 50 1 1 B
@ -443,6 +530,8 @@ ENDDEF
DEF GSG-XTAL4PIN X 0 40 N N 1 F N DEF GSG-XTAL4PIN X 0 40 N N 1 F N
F0 "X" 0 150 60 H V C CNN F0 "X" 0 150 60 H V C CNN
F1 "GSG-XTAL4PIN" 0 -150 60 H V C CNN F1 "GSG-XTAL4PIN" 0 -150 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
P 2 0 1 16 -100 100 -100 -100 N P 2 0 1 16 -100 100 -100 -100 N
P 2 0 1 16 100 100 100 -100 N P 2 0 1 16 100 100 100 -100 N
@ -459,6 +548,8 @@ ENDDEF
DEF LPC43XXFBD144 U 0 40 Y Y 1 F N DEF LPC43XXFBD144 U 0 40 Y Y 1 F N
F0 "U" 0 150 60 H V C CNN F0 "U" 0 150 60 H V C CNN
F1 "LPC43XXFBD144" 0 -150 60 H V C CNN F1 "LPC43XXFBD144" 0 -150 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -2400 2400 2400 -2400 0 1 0 N S -2400 2400 2400 -2400 0 1 0 N
X P4_0 1 -2700 1750 300 R 50 50 1 1 B X P4_0 1 -2700 1750 300 R 50 50 1 1 B
@ -608,11 +699,31 @@ X ADC0_3/ADC1_3 139 -1250 2700 300 D 50 50 1 1 I
ENDDRAW ENDDRAW
ENDDEF ENDDEF
# #
# LXES1TBCC2-004
#
DEF LXES1TBCC2-004 U 0 40 Y Y 1 F N
F0 "U" 0 250 60 H V C CNN
F1 "LXES1TBCC2-004" 0 -250 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW
S -250 200 250 -200 0 1 0 N
X ESD1 1 -550 100 300 R 50 50 1 1 I
X GND 2 -550 0 300 R 50 50 1 1 W
X ESD2 3 -550 -100 300 R 50 50 1 1 I
X NC 4 550 -100 300 L 50 50 1 1 N
X VDD 5 550 0 300 L 50 50 1 1 W
X NC 6 550 100 300 L 50 50 1 1 N
ENDDRAW
ENDDEF
#
# MAX2837 # MAX2837
# #
DEF MAX2837 U 0 40 Y Y 1 F N DEF MAX2837 U 0 40 Y Y 1 F N
F0 "U" 0 50 60 H V C CNN F0 "U" 0 50 60 H V C CNN
F1 "MAX2837" 0 -50 60 H V C CNN F1 "MAX2837" 0 -50 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -1000 1000 1000 -1000 0 1 0 N S -1000 1000 1000 -1000 0 1 0 N
X EP 0 -1300 900 300 R 50 50 1 1 W X EP 0 -1300 900 300 R 50 50 1 1 W
@ -672,6 +783,8 @@ ENDDEF
DEF MAX5864 U 0 40 Y Y 1 F N DEF MAX5864 U 0 40 Y Y 1 F N
F0 "U" 0 50 60 H V C CNN F0 "U" 0 50 60 H V C CNN
F1 "MAX5864" 0 -50 60 H V C CNN F1 "MAX5864" 0 -50 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -900 900 900 -900 0 1 0 N S -900 900 900 -900 0 1 0 N
X EP 0 -1200 800 300 R 50 50 1 1 W X EP 0 -1200 800 300 R 50 50 1 1 W
@ -731,6 +844,8 @@ ENDDEF
DEF MGA-81563 U 0 40 Y Y 1 F N DEF MGA-81563 U 0 40 Y Y 1 F N
F0 "U" 0 50 60 H V C CNN F0 "U" 0 50 60 H V C CNN
F1 "MGA-81563" 0 -50 60 H V C CNN F1 "MGA-81563" 0 -50 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -300 300 300 -300 0 1 0 N S -300 300 300 -300 0 1 0 N
X GND 1 -100 -450 150 U 50 50 1 1 W X GND 1 -100 -450 150 U 50 50 1 1 W
@ -747,6 +862,8 @@ ENDDEF
DEF NCP699 U 0 40 Y Y 1 F N DEF NCP699 U 0 40 Y Y 1 F N
F0 "U" 0 200 60 H V C CNN F0 "U" 0 200 60 H V C CNN
F1 "NCP699" 0 -200 60 H V C CNN F1 "NCP699" 0 -200 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -250 250 250 -250 0 1 0 N S -250 250 250 -250 0 1 0 N
X VIN 1 -400 100 150 R 50 50 1 1 W X VIN 1 -400 100 150 R 50 50 1 1 W
@ -762,6 +879,8 @@ ENDDEF
DEF PE4140 U 0 40 Y Y 1 F N DEF PE4140 U 0 40 Y Y 1 F N
F0 "U" 0 200 60 H V C CNN F0 "U" 0 200 60 H V C CNN
F1 "PE4140" 0 -250 60 H V C CNN F1 "PE4140" 0 -250 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -300 250 300 -300 0 1 0 N S -300 250 300 -300 0 1 0 N
X EP 0 250 -450 150 U 50 50 1 1 P X EP 0 250 -450 150 U 50 50 1 1 P
@ -779,6 +898,8 @@ ENDDEF
DEF R-SHORTED R 0 0 N Y 1 F N DEF R-SHORTED R 0 0 N Y 1 F N
F0 "R" 80 0 50 V V C CNN F0 "R" 80 0 50 V V C CNN
F1 "R-SHORTED" -100 0 50 V V C CNN F1 "R-SHORTED" -100 0 50 V V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
$FPLIST $FPLIST
R? R?
SM0603 SM0603
@ -793,11 +914,89 @@ X ~ 2 0 -250 100 U 60 60 1 1 P
ENDDRAW ENDDRAW
ENDDEF ENDDEF
# #
# RF-SHIELD
#
DEF RF-SHIELD J 0 40 Y Y 1 F N
F0 "J" 0 500 60 H V C CNN
F1 "RF-SHIELD" 0 400 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW
P 2 0 1 0 -450 200 -450 100 N
P 2 0 1 0 -450 350 -450 250 N
P 2 0 1 0 -450 500 -450 400 N
P 2 0 1 0 -350 0 -250 0 N
P 2 0 1 0 -250 600 -350 600 N
P 2 0 1 0 -200 0 -100 0 N
P 2 0 1 0 -100 600 -200 600 N
P 2 0 1 0 -50 0 50 0 N
P 2 0 1 0 50 600 -50 600 N
P 2 0 1 0 100 0 200 0 N
P 2 0 1 0 200 600 100 600 N
P 2 0 1 0 250 0 350 0 N
P 2 0 1 0 350 600 250 600 N
P 2 0 1 0 450 100 450 200 N
P 2 0 1 0 450 250 450 350 N
P 2 0 1 0 450 400 450 500 N
P 3 0 1 0 -450 50 -450 0 -400 0 N
P 3 0 1 0 -400 600 -450 600 -450 550 N
P 3 0 1 0 400 0 450 0 450 50 N
P 3 0 1 0 450 550 450 600 400 600 N
X SHIELD 0 0 -300 300 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# RF-SHIELD-COVER
#
DEF RF-SHIELD-COVER J 0 40 Y Y 1 F N
F0 "J" 0 250 60 H V C CNN
F1 "RF-SHIELD-COVER" 0 150 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW
P 4 0 1 0 -550 -100 -550 100 550 100 550 -100 N
ENDDRAW
ENDDEF
#
# RF-SHIELD-FRAME
#
DEF RF-SHIELD-FRAME J 0 40 Y Y 1 F N
F0 "J" 0 500 60 H V C CNN
F1 "RF-SHIELD-FRAME" 0 400 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW
P 2 0 1 0 -450 200 -450 100 N
P 2 0 1 0 -450 350 -450 250 N
P 2 0 1 0 -450 500 -450 400 N
P 2 0 1 0 -350 0 -250 0 N
P 2 0 1 0 -250 600 -350 600 N
P 2 0 1 0 -200 0 -100 0 N
P 2 0 1 0 -100 600 -200 600 N
P 2 0 1 0 -50 0 50 0 N
P 2 0 1 0 50 600 -50 600 N
P 2 0 1 0 100 0 200 0 N
P 2 0 1 0 200 600 100 600 N
P 2 0 1 0 250 0 350 0 N
P 2 0 1 0 350 600 250 600 N
P 2 0 1 0 450 100 450 200 N
P 2 0 1 0 450 250 450 350 N
P 2 0 1 0 450 400 450 500 N
P 3 0 1 0 -450 50 -450 0 -400 0 N
P 3 0 1 0 -400 600 -450 600 -450 550 N
P 3 0 1 0 400 0 450 0 450 50 N
P 3 0 1 0 450 550 450 600 400 600 N
X SHIELD 0 0 -300 300 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# RF1226 # RF1226
# #
DEF RF1226 U 0 40 Y Y 1 F N DEF RF1226 U 0 40 Y Y 1 F N
F0 "U" 0 0 60 H V C CNN F0 "U" 0 0 60 H V C CNN
F1 "RF1226" 0 -150 60 H V C CNN F1 "RF1226" 0 -150 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -450 450 450 -450 0 1 0 N S -450 450 450 -450 0 1 0 N
X GND 0 350 -600 150 U 50 50 1 1 W X GND 0 350 -600 150 U 50 50 1 1 W
@ -821,6 +1020,8 @@ ENDDEF
DEF RF3376 U 0 40 Y Y 1 F N DEF RF3376 U 0 40 Y Y 1 F N
F0 "U" 0 100 60 H V C CNN F0 "U" 0 100 60 H V C CNN
F1 "RF3376" 0 0 60 H V C CNN F1 "RF3376" 0 0 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -200 150 200 -250 0 1 0 N S -200 150 200 -250 0 1 0 N
X IN 1 -100 -400 150 U 50 50 1 1 I X IN 1 -100 -400 150 U 50 50 1 1 I
@ -834,6 +1035,8 @@ ENDDEF
DEF RFFC5071 U 0 40 Y Y 1 F N DEF RFFC5071 U 0 40 Y Y 1 F N
F0 "U" 0 100 60 H V C CNN F0 "U" 0 100 60 H V C CNN
F1 "RFFC5071" 0 -100 60 H V C CNN F1 "RFFC5071" 0 -100 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -850 850 850 -850 0 1 0 N S -850 850 850 -850 0 1 0 N
X EP 0 -1150 650 300 R 60 60 1 1 W X EP 0 -1150 650 300 R 60 60 1 1 W
@ -877,6 +1080,8 @@ ENDDEF
DEF RFFC5072 U 0 40 Y Y 1 F N DEF RFFC5072 U 0 40 Y Y 1 F N
F0 "U" 0 100 60 H V C CNN F0 "U" 0 100 60 H V C CNN
F1 "RFFC5072" 0 -100 60 H V C CNN F1 "RFFC5072" 0 -100 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -850 850 850 -850 0 1 0 N S -850 850 850 -850 0 1 0 N
X EP 0 -1150 650 300 R 60 60 1 1 W X EP 0 -1150 650 300 R 60 60 1 1 W
@ -920,6 +1125,8 @@ ENDDEF
DEF SI5351C U 0 40 Y Y 1 F N DEF SI5351C U 0 40 Y Y 1 F N
F0 "U" 0 50 60 H V C CNN F0 "U" 0 50 60 H V C CNN
F1 "SI5351C" 0 -50 60 H V C CNN F1 "SI5351C" 0 -50 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -500 500 500 -500 0 1 0 N S -500 500 500 -500 0 1 0 N
X GND 0 -800 400 300 R 50 50 1 1 W X GND 0 -800 400 300 R 50 50 1 1 W
@ -951,6 +1158,8 @@ ENDDEF
DEF SKY13317 U 0 40 Y Y 1 F N DEF SKY13317 U 0 40 Y Y 1 F N
F0 "U" 0 0 60 H V C CNN F0 "U" 0 0 60 H V C CNN
F1 "SKY13317" 0 250 60 H V C CNN F1 "SKY13317" 0 250 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -250 300 250 -300 0 1 0 N S -250 300 250 -300 0 1 0 N
X GND 0 0 -600 300 U 50 50 1 1 W X GND 0 0 -600 300 U 50 50 1 1 W
@ -970,6 +1179,8 @@ ENDDEF
DEF SKY13350 U 0 40 Y Y 1 F N DEF SKY13350 U 0 40 Y Y 1 F N
F0 "U" 0 200 60 H V C CNN F0 "U" 0 200 60 H V C CNN
F1 "SKY13350" 0 -200 60 H V C CNN F1 "SKY13350" 0 -200 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -300 250 300 -250 0 1 0 N S -300 250 300 -250 0 1 0 N
X VCTL1 1 -450 100 150 R 50 50 1 1 I X VCTL1 1 -450 100 150 R 50 50 1 1 I
@ -986,6 +1197,8 @@ ENDDEF
DEF SKY13351 U 0 40 Y Y 1 F N DEF SKY13351 U 0 40 Y Y 1 F N
F0 "U" 0 200 60 H V C CNN F0 "U" 0 200 60 H V C CNN
F1 "SKY13351" 0 -200 60 H V C CNN F1 "SKY13351" 0 -200 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -300 250 300 -250 0 1 0 N S -300 250 300 -250 0 1 0 N
X OUT1 1 -600 100 300 R 50 50 1 1 B X OUT1 1 -600 100 300 R 50 50 1 1 B
@ -1002,6 +1215,8 @@ ENDDEF
DEF SKY13411 U 0 40 Y Y 1 F N DEF SKY13411 U 0 40 Y Y 1 F N
F0 "U" 0 0 60 H V C CNN F0 "U" 0 0 60 H V C CNN
F1 "SKY13411" 0 200 60 H V C CNN F1 "SKY13411" 0 200 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -250 250 250 -250 0 1 0 N S -250 250 250 -250 0 1 0 N
X GND 0 0 -550 300 U 50 50 1 1 W X GND 0 0 -550 300 U 50 50 1 1 W
@ -1019,6 +1234,8 @@ ENDDEF
DEF TPS62410 U 0 40 Y Y 1 F N DEF TPS62410 U 0 40 Y Y 1 F N
F0 "U" 0 -50 60 H V C CNN F0 "U" 0 -50 60 H V C CNN
F1 "TPS62410" 0 300 60 H V C CNN F1 "TPS62410" 0 300 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -350 350 350 -350 0 1 0 N S -350 350 350 -350 0 1 0 N
X PP 0 0 -650 300 U 50 50 1 1 W X PP 0 0 -650 300 U 50 50 1 1 W
@ -1040,6 +1257,8 @@ ENDDEF
DEF TRF3765 U 0 40 Y Y 1 F N DEF TRF3765 U 0 40 Y Y 1 F N
F0 "U" 0 100 60 H V C CNN F0 "U" 0 100 60 H V C CNN
F1 "TRF3765" 0 -100 60 H V C CNN F1 "TRF3765" 0 -100 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -800 800 800 -800 0 1 0 N S -800 800 800 -800 0 1 0 N
X EP 0 600 -950 150 U 50 50 1 1 W X EP 0 600 -950 150 U 50 50 1 1 W
@ -1083,6 +1302,8 @@ ENDDEF
DEF W25Q80BV U 0 40 Y Y 1 F N DEF W25Q80BV U 0 40 Y Y 1 F N
F0 "U" 0 -250 60 H V C CNN F0 "U" 0 -250 60 H V C CNN
F1 "W25Q80BV" 0 250 60 H V C CNN F1 "W25Q80BV" 0 250 60 H V C CNN
F2 "~" 0 0 60 H V C CNN
F3 "~" 0 0 60 H V C CNN
DRAW DRAW
S -250 300 250 -300 0 1 0 N S -250 300 250 -300 0 1 0 N
X CS 1 -550 150 300 R 50 50 1 1 I X CS 1 -550 150 300 R 50 50 1 1 I

File diff suppressed because it is too large Load Diff