From 46ba5cc4f74d072aa545fd54fc5b64bb473e65bd Mon Sep 17 00:00:00 2001 From: Andy CA6JAU Date: Tue, 17 Jul 2018 00:17:06 -0400 Subject: [PATCH] Add receiver gain compilation options --- ADF7021.cpp | 10 +++++++++- ADF7021.h | 4 ++-- Config.h | 10 ++++++++++ configs/MMDVM_HS_Dual_Hat-12mhz.h | 10 ++++++++++ configs/MMDVM_HS_Dual_Hat.h | 10 ++++++++++ configs/MMDVM_HS_Hat-12mhz.h | 10 ++++++++++ configs/MMDVM_HS_Hat.h | 10 ++++++++++ configs/NanoDV.h | 10 ++++++++++ configs/Nano_hotSPOT.h | 10 ++++++++++ configs/ZUMspot_Libre.h | 10 ++++++++++ configs/ZUMspot_RPi.h | 10 ++++++++++ configs/ZUMspot_USB.h | 10 ++++++++++ configs/ZUMspot_duplex.h | 10 ++++++++++ configs/generic_duplex_gpio.h | 10 ++++++++++ configs/generic_gpio.h | 10 ++++++++++ 15 files changed, 141 insertions(+), 3 deletions(-) diff --git a/ADF7021.cpp b/ADF7021.cpp index 8be1f8d..fe9cc80 100644 --- a/ADF7021.cpp +++ b/ADF7021.cpp @@ -525,7 +525,15 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset) Send_AD7021_control(); // AGC (auto, defaults) (9) - AD7021_control_word = 0x000231E9; +#if defined(AD7021_GAIN_AUTO) + AD7021_control_word = 0x000231E9; // AGC ON, normal operation +#elif defined(AD7021_GAIN_AUTO_LIN) + AD7021_control_word = 0x100231E9; // AGC ON, LNA high linearity +#elif defined(AD7021_GAIN_LOW) + AD7021_control_word = 0x120631E9; // AGC OFF, low gain, LNA high linearity +#elif defined(AD7021_GAIN_HIGH) + AD7021_control_word = 0x00A631E9; // AGC OFF, high gain +#endif Send_AD7021_control(); // AFC (10) diff --git a/ADF7021.h b/ADF7021.h index e56bf6f..19a2bb0 100644 --- a/ADF7021.h +++ b/ADF7021.h @@ -118,7 +118,7 @@ www.analog.com/media/en/technical-documentation/data-sheets/ADF7021.pdf // Post demodulator bandwith (REG 04) #define ADF7021_POST_BW_DSTAR 10U -#define ADF7021_POST_BW_DMR 150U +#define ADF7021_POST_BW_DMR 80U #define ADF7021_POST_BW_YSF 20U #define ADF7021_POST_BW_P25 6U #define ADF7021_POST_BW_NXDN 7U @@ -219,7 +219,7 @@ www.analog.com/media/en/technical-documentation/data-sheets/ADF7021.pdf // Post demodulator bandwith (REG 04) #define ADF7021_POST_BW_DSTAR 10U -#define ADF7021_POST_BW_DMR 150U +#define ADF7021_POST_BW_DMR 80U #define ADF7021_POST_BW_YSF 20U #define ADF7021_POST_BW_P25 6U #define ADF7021_POST_BW_NXDN 8U diff --git a/Config.h b/Config.h index c0ac7e8..6082fc1 100644 --- a/Config.h +++ b/Config.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: // #define STM32_USART1_HOST #define STM32_USB_HOST diff --git a/configs/MMDVM_HS_Dual_Hat-12mhz.h b/configs/MMDVM_HS_Dual_Hat-12mhz.h index f115691..cebc1ba 100644 --- a/configs/MMDVM_HS_Dual_Hat-12mhz.h +++ b/configs/MMDVM_HS_Dual_Hat-12mhz.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST diff --git a/configs/MMDVM_HS_Dual_Hat.h b/configs/MMDVM_HS_Dual_Hat.h index 1305fbf..42f0c34 100644 --- a/configs/MMDVM_HS_Dual_Hat.h +++ b/configs/MMDVM_HS_Dual_Hat.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST diff --git a/configs/MMDVM_HS_Hat-12mhz.h b/configs/MMDVM_HS_Hat-12mhz.h index e220f9d..7e4e8e9 100644 --- a/configs/MMDVM_HS_Hat-12mhz.h +++ b/configs/MMDVM_HS_Hat-12mhz.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST diff --git a/configs/MMDVM_HS_Hat.h b/configs/MMDVM_HS_Hat.h index 6e190e3..8df414f 100644 --- a/configs/MMDVM_HS_Hat.h +++ b/configs/MMDVM_HS_Hat.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST diff --git a/configs/NanoDV.h b/configs/NanoDV.h index 9dfe6ff..f7caf38 100644 --- a/configs/NanoDV.h +++ b/configs/NanoDV.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST diff --git a/configs/Nano_hotSPOT.h b/configs/Nano_hotSPOT.h index d0d1021..d13c134 100644 --- a/configs/Nano_hotSPOT.h +++ b/configs/Nano_hotSPOT.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST diff --git a/configs/ZUMspot_Libre.h b/configs/ZUMspot_Libre.h index c0ac7e8..6082fc1 100644 --- a/configs/ZUMspot_Libre.h +++ b/configs/ZUMspot_Libre.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: // #define STM32_USART1_HOST #define STM32_USB_HOST diff --git a/configs/ZUMspot_RPi.h b/configs/ZUMspot_RPi.h index f38b6cc..08db3f4 100644 --- a/configs/ZUMspot_RPi.h +++ b/configs/ZUMspot_RPi.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST diff --git a/configs/ZUMspot_USB.h b/configs/ZUMspot_USB.h index 78fbadc..230b8aa 100644 --- a/configs/ZUMspot_USB.h +++ b/configs/ZUMspot_USB.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: // #define STM32_USART1_HOST #define STM32_USB_HOST diff --git a/configs/ZUMspot_duplex.h b/configs/ZUMspot_duplex.h index 31b58b2..7779981 100644 --- a/configs/ZUMspot_duplex.h +++ b/configs/ZUMspot_duplex.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: // #define STM32_USART1_HOST #define STM32_USB_HOST diff --git a/configs/generic_duplex_gpio.h b/configs/generic_duplex_gpio.h index 214b15b..0c1cf2d 100644 --- a/configs/generic_duplex_gpio.h +++ b/configs/generic_duplex_gpio.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST diff --git a/configs/generic_gpio.h b/configs/generic_gpio.h index d03a361..10332c0 100644 --- a/configs/generic_gpio.h +++ b/configs/generic_gpio.h @@ -45,6 +45,16 @@ // For 12.2880 MHz: // #define ADF7021_12_2880 +// Configure receiver gain for ADF7021 +// AGC automatic, default settings: +#define AD7021_GAIN_AUTO +// AGC automatic with high LNA linearity: +// #define AD7021_GAIN_AUTO_LIN +// AGC OFF, lowest gain: +// #define AD7021_GAIN_LOW +// AGC OFF, highest gain: +// #define AD7021_GAIN_HIGH + // Host communication selection: #define STM32_USART1_HOST // #define STM32_USB_HOST