mirror of
https://github.com/greatscottgadgets/hackrf.git
synced 2026-03-12 10:19:40 +01:00
Remove full-duplex support for RFFC5071
This eliminates unnecessary disable/enable cycles for our half-duplex RFFC5072.
This commit is contained in:
@@ -115,36 +115,6 @@ uint64_t mixer_set_frequency(mixer_driver_t* const mixer, uint64_t hz)
|
||||
#endif
|
||||
}
|
||||
|
||||
void mixer_tx(mixer_driver_t* const mixer)
|
||||
{
|
||||
#if (defined JAWBREAKER || defined HACKRF_ONE || defined PRALINE)
|
||||
rffc5071_tx(mixer);
|
||||
#endif
|
||||
#ifdef RAD1O
|
||||
(void) mixer;
|
||||
#endif
|
||||
}
|
||||
|
||||
void mixer_rx(mixer_driver_t* const mixer)
|
||||
{
|
||||
#if (defined JAWBREAKER || defined HACKRF_ONE || defined PRALINE)
|
||||
rffc5071_rx(mixer);
|
||||
#endif
|
||||
#ifdef RAD1O
|
||||
(void) mixer;
|
||||
#endif
|
||||
}
|
||||
|
||||
void mixer_rxtx(mixer_driver_t* const mixer)
|
||||
{
|
||||
#if (defined JAWBREAKER || defined HACKRF_ONE || defined PRALINE)
|
||||
rffc5071_rxtx(mixer);
|
||||
#endif
|
||||
#ifdef RAD1O
|
||||
(void) mixer;
|
||||
#endif
|
||||
}
|
||||
|
||||
void mixer_enable(mixer_driver_t* const mixer)
|
||||
{
|
||||
#if (defined JAWBREAKER || defined HACKRF_ONE || defined PRALINE)
|
||||
|
||||
@@ -40,11 +40,6 @@ extern void mixer_setup(mixer_driver_t* const mixer);
|
||||
/* Set frequency (Hz). */
|
||||
extern uint64_t mixer_set_frequency(mixer_driver_t* const mixer, uint64_t hz);
|
||||
|
||||
/* Set up rx only, tx only, or full duplex. Chip should be disabled
|
||||
* before _tx, _rx, or _rxtx are called. */
|
||||
extern void mixer_tx(mixer_driver_t* const mixer);
|
||||
extern void mixer_rx(mixer_driver_t* const mixer);
|
||||
extern void mixer_rxtx(mixer_driver_t* const mixer);
|
||||
extern void mixer_enable(mixer_driver_t* const mixer);
|
||||
extern void mixer_disable(mixer_driver_t* const mixer);
|
||||
extern void mixer_set_gpo(mixer_driver_t* const drv, uint8_t gpo);
|
||||
|
||||
@@ -477,7 +477,6 @@ void rf_path_set_direction(rf_path_t* const rf_path, const rf_path_direction_t d
|
||||
/* TX amplifier is in path, be sure to enable TX amplifier. */
|
||||
rf_path->switchctrl &= ~SWITCHCTRL_NO_TX_AMP_PWR;
|
||||
}
|
||||
mixer_tx(&mixer);
|
||||
if (rf_path->switchctrl & SWITCHCTRL_MIX_BYPASS) {
|
||||
mixer_disable(&mixer);
|
||||
} else {
|
||||
@@ -500,7 +499,6 @@ void rf_path_set_direction(rf_path_t* const rf_path, const rf_path_direction_t d
|
||||
/* RX amplifier is in path, be sure to enable RX amplifier. */
|
||||
rf_path->switchctrl &= ~SWITCHCTRL_NO_RX_AMP_PWR;
|
||||
}
|
||||
mixer_rx(&mixer);
|
||||
if (rf_path->switchctrl & SWITCHCTRL_MIX_BYPASS) {
|
||||
mixer_disable(&mixer);
|
||||
} else {
|
||||
@@ -620,4 +618,4 @@ void rf_path_set_antenna(rf_path_t* const rf_path, const uint_fast8_t enable)
|
||||
switchctrl_set(rf_path, rf_path->switchctrl);
|
||||
|
||||
hackrf_ui()->set_antenna_bias(enable);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,6 +118,10 @@ void rffc5071_setup(rffc5071_driver_t* const drv)
|
||||
/* GPOs are active at all times */
|
||||
set_RFFC5071_GATE(drv, 1);
|
||||
|
||||
/* mixer 2 used for both RX and TX */
|
||||
set_RFFC5071_FULLD(drv, 0);
|
||||
set_RFFC5071_MODE(drv, 1);
|
||||
|
||||
#if defined(PRALINE) || defined(HACKRF_ONE)
|
||||
/* Enable GPO Lock output signal */
|
||||
set_RFFC5071_LOCK(drv, 1);
|
||||
@@ -223,35 +227,6 @@ void rffc5071_regs_commit(rffc5071_driver_t* const drv)
|
||||
}
|
||||
}
|
||||
|
||||
void rffc5071_tx(rffc5071_driver_t* const drv)
|
||||
{
|
||||
set_RFFC5071_ENBL(drv, 0);
|
||||
set_RFFC5071_FULLD(drv, 0);
|
||||
set_RFFC5071_MODE(drv, 1); /* mixer 2 used for both RX and TX */
|
||||
rffc5071_regs_commit(drv);
|
||||
}
|
||||
|
||||
void rffc5071_rx(rffc5071_driver_t* const drv)
|
||||
{
|
||||
set_RFFC5071_ENBL(drv, 0);
|
||||
set_RFFC5071_FULLD(drv, 0);
|
||||
set_RFFC5071_MODE(drv, 1); /* mixer 2 used for both RX and TX */
|
||||
rffc5071_regs_commit(drv);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function turns on both mixer (full-duplex) on the RFFC5071, but our
|
||||
* current hardware designs do not support full-duplex operation.
|
||||
*/
|
||||
void rffc5071_rxtx(rffc5071_driver_t* const drv)
|
||||
{
|
||||
set_RFFC5071_ENBL(drv, 0);
|
||||
set_RFFC5071_FULLD(drv, 1); /* mixer 1 and mixer 2 (RXTX) */
|
||||
rffc5071_regs_commit(drv);
|
||||
|
||||
rffc5071_enable(drv);
|
||||
}
|
||||
|
||||
void rffc5071_disable(rffc5071_driver_t* const drv)
|
||||
{
|
||||
set_RFFC5071_ENBL(drv, 0);
|
||||
|
||||
@@ -62,11 +62,6 @@ extern void rffc5071_regs_commit(rffc5071_driver_t* const drv);
|
||||
/* Set frequency (Hz). */
|
||||
extern uint64_t rffc5071_set_frequency(rffc5071_driver_t* const drv, uint64_t hz);
|
||||
|
||||
/* Set up rx only, tx only, or full duplex. Chip should be disabled
|
||||
* before _tx, _rx, or _rxtx are called. */
|
||||
extern void rffc5071_tx(rffc5071_driver_t* const drv);
|
||||
extern void rffc5071_rx(rffc5071_driver_t* const drv);
|
||||
extern void rffc5071_rxtx(rffc5071_driver_t* const drv);
|
||||
extern void rffc5071_enable(rffc5071_driver_t* const drv);
|
||||
extern void rffc5071_disable(rffc5071_driver_t* const drv);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user