![]() |
SatNOGS-COMMS
4.1.0
A COMMS subsystem for CubeSats
|
RF-frontend for the S-Band interface. More...
#include <rf_frontend24.hpp>
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::gpio & | m_filt_sel |
| bsp::dac & | m_dac |
| power & | m_pwr |
| ad8318 | m_agc |
| dir | m_dir |
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.
| 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.
| init_params | the initialization parameters |
| io | the IO configuration for controlling the RF mixer and the RF-frontend first stage RX gain as well as the filter selection circuit |
| pwr | reference 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.
|
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.
| set | true to enable, false to disable. |
Implements satnogs::comms::lib::rf_frontend.
Definition at line 156 of file rf_frontend24.cpp.
|
virtual |
Checks if the S-Band RF frontend is enabled.
Implements satnogs::comms::lib::rf_frontend.
Definition at line 182 of file rf_frontend24.cpp.
| bool satnogs::comms::lib::rf_frontend24::mixer_lock | ( | ) |
Checks if the RF mixer has acquired a lock.
Definition at line 247 of file rf_frontend24.cpp.
|
virtual |
Sets the direction of the RF frontend, enables the corresponding components and disables the components that are not needed to reduce consumption
| d | the direction |
| lo_freq | the frequency of the LO |
Implements satnogs::comms::lib::rf_frontend.
Definition at line 194 of file rf_frontend24.cpp.