SatNOGS-COMMS  4.1.0
A COMMS subsystem for CubeSats
Loading...
Searching...
No Matches
satnogs::comms::lib::rf_frontend24 Class Reference

RF-frontend for the S-Band interface. More...

#include <rf_frontend24.hpp>

Inheritance diagram for satnogs::comms::lib::rf_frontend24:
satnogs::comms::lib::rf_frontend

Classes

class  io_conf
 IO configuration for controlling the various peripherals of the S-Band frontend. More...

Public Member Functions

 rf_frontend24 (const params &init_params, const io_conf &io, power &pwr)
 Construct a new rf frontend24::rf frontend24 object that controls the S-Band RF frontend interface.
void enable (bool set=true)
bool enabled () const
 Checks if the S-Band RF frontend is enabled.
void set_direction (dir d, uint64_t lo_freq)
bool mixer_lock ()
 Checks if the RF mixer has acquired a lock.
Public Member Functions inherited from satnogs::comms::lib::rf_frontend
 rf_frontend (const params &init_params, io_conf &&io, power &pwr)
virtual void set_filter (filter f)
virtual filter get_filter () const
dir direction () const
void set_rx_gain (const rx_gain_params &gain)
 Sets the RX gain parameters.
bool frequency_valid (dir d, uint32_t freq) const
 Checks if a frequency is within the permissible range.

Additional Inherited Members

Public Types inherited from satnogs::comms::lib::rf_frontend
enum class  dir : uint8_t { RX , TX , INVALID }
enum class  gain_mode : uint8_t { AUTO , MANUAL }
enum class  filter : uint8_t { WIDE , NARROW }
Protected Attributes inherited from satnogs::comms::lib::rf_frontend
const params m_params
bsp::gpiom_filt_sel
bsp::dacm_dac
powerm_pwr
ad8318 m_agc
dir m_dir

Detailed Description

RF-frontend for the S-Band interface.

This class provides methods to fully control the S-Band frontend.

The frontend of the S-Band RF frontend share similarities with the rf_frontend09, with the added complexity of an RF Mixer which is responsible to properly tune the radio to the desired frequency ranges that are not covered by the AT86RF215 frequency synthesizer. The control of the direction for this particular frontend is fully automatic utilizing the AT86RF215 capabilities. Users can control the reception filter (wideband vs narrowband) as well as the first stage variable gain amplifier (VGA) of the RX chain. This VGA can operate either in fixed gain mode, either as AGC.

The general architecture of the frontend is summarized in the schematic below.

Definition at line 87 of file rf_frontend24.hpp.

Constructor & Destructor Documentation

◆ rf_frontend24()

satnogs::comms::lib::rf_frontend24::rf_frontend24 ( const params & init_params,
const io_conf & io,
power & pwr )

Construct a new rf frontend24::rf frontend24 object that controls the S-Band RF frontend interface.

Parameters
init_paramsthe initialization parameters
iothe IO configuration for controlling the RF mixer and the RF-frontend first stage RX gain as well as the filter selection circuit
pwrreference to power subsystem, used to power up/down the various subsystems of the S-Band RF frontend

Definition at line 132 of file rf_frontend24.cpp.

Member Function Documentation

◆ enable()

void satnogs::comms::lib::rf_frontend24::enable ( bool set = true)
virtual

Enables the basic subsystems of the RF frontend. Subsystems that are used for a specific direction (RX or TX) are explicitly disabled to reduce power consumption.

Users may have to call the set_direction() method to enable the corresponding subsystems such as PA or LNA.

Parameters
settrue to enable, false to disable.

Implements satnogs::comms::lib::rf_frontend.

Definition at line 156 of file rf_frontend24.cpp.

◆ enabled()

bool satnogs::comms::lib::rf_frontend24::enabled ( ) const
virtual

Checks if the S-Band RF frontend is enabled.

Returns
true if it is enabled
false if it is disabled

Implements satnogs::comms::lib::rf_frontend.

Definition at line 182 of file rf_frontend24.cpp.

◆ mixer_lock()

bool satnogs::comms::lib::rf_frontend24::mixer_lock ( )

Checks if the RF mixer has acquired a lock.

Note
The RF mixer locks if all of the following requirements are met:
  1. the reference clock source is enabled
  2. the configured frequency matches the reference clock
  3. Valid LO frequencies on either two available paths of the mixer have been configured
Returns
true if the RF mixer has acquired a lock
false if the RF mixer has not acquired a lock

Definition at line 247 of file rf_frontend24.cpp.

◆ set_direction()

void satnogs::comms::lib::rf_frontend24::set_direction ( dir d,
uint64_t lo_freq )
virtual

Sets the direction of the RF frontend, enables the corresponding components and disables the components that are not needed to reduce consumption

Parameters
dthe direction
lo_freqthe frequency of the LO

Implements satnogs::comms::lib::rf_frontend.

Definition at line 194 of file rf_frontend24.cpp.


The documentation for this class was generated from the following files: