From 55c0b0d86836f20ab4e6dbd0fc7bb7de4768361d Mon Sep 17 00:00:00 2001 From: Mathis Schmieder Date: Fri, 26 Nov 2021 08:18:14 +0000 Subject: [PATCH] Module17 platform changes for revision 0.1c --- platform/drivers/audio/audio_Mod17.c | 27 ++++++++++--- platform/drivers/baseband/radio_Mod17.cpp | 21 +++++++++- platform/targets/Module17/hwconfig.h | 49 ++++++++++++++--------- platform/targets/Module17/platform.c | 2 + 4 files changed, 74 insertions(+), 25 deletions(-) diff --git a/platform/drivers/audio/audio_Mod17.c b/platform/drivers/audio/audio_Mod17.c index dbe72c8a..fff59869 100644 --- a/platform/drivers/audio/audio_Mod17.c +++ b/platform/drivers/audio/audio_Mod17.c @@ -14,6 +14,16 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * + * As a special exception, if other files instantiate templates or use * + * macros or inline functions from this file, or you compile this file * + * and link it with other works to produce a work based on this file, * + * this file does not by itself cause the resulting work to be covered * + * by the GNU General Public License. However the source code for this * + * file must still be made available in accordance with the GNU General * + * Public License. This exception does not invalidate any other reasons * + * why a work based on this file might be covered by the GNU General * + * Public License. * + * * * You should have received a copy of the GNU General Public License * * along with this program; if not, see * ***************************************************************************/ @@ -25,30 +35,37 @@ void audio_init() { + gpio_setMode(SPK_MUTE, OUTPUT); + gpio_setMode(MIC_MUTE, OUTPUT); + gpio_setMode(MIC_GAIN, OUTPUT); + gpio_setPin(SPK_MUTE); //Off = logic high + gpio_clearPin(MIC_MUTE); //Off = logic low + gpio_setPin(MIC_GAIN); // gain = 40 dB } void audio_terminate() { - + gpio_setPin(SPK_MUTE); + gpio_clearPin(MIC_MUTE); } void audio_enableMic() { - + gpio_setPin(MIC_MUTE); } void audio_disableMic() { - + gpio_clearPin(MIC_MUTE); } void audio_enableAmp() { - + gpio_clearPin(SPK_MUTE); } void audio_disableAmp() { - + gpio_setPin(SPK_MUTE); } diff --git a/platform/drivers/baseband/radio_Mod17.cpp b/platform/drivers/baseband/radio_Mod17.cpp index 185744c0..edeb91e7 100644 --- a/platform/drivers/baseband/radio_Mod17.cpp +++ b/platform/drivers/baseband/radio_Mod17.cpp @@ -14,6 +14,16 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * + * As a special exception, if other files instantiate templates or use * + * macros or inline functions from this file, or you compile this file * + * and link it with other works to produce a work based on this file, * + * this file does not by itself cause the resulting work to be covered * + * by the GNU General Public License. However the source code for this * + * file must still be made available in accordance with the GNU General * + * Public License. This exception does not invalidate any other reasons * + * why a work based on this file might be covered by the GNU General * + * Public License. * + * * * You should have received a copy of the GNU General Public License * * along with this program; if not, see * ***************************************************************************/ @@ -23,13 +33,17 @@ #include #include +enum opstatus radioStatus; // Current operating status + void radio_init(const rtxStatus_t *rtxState) { (void) rtxState; + radioStatus = OFF; } void radio_terminate() { + radioStatus = OFF; } void radio_tuneVcxo(const int16_t vhfOffset, const int16_t uhfOffset) @@ -50,11 +64,13 @@ bool radio_checkRxDigitalSquelch() void radio_enableRx() { + radioStatus = RX; gpio_clearPin(PTT_OUT); } void radio_enableTx() { + radioStatus = TX; gpio_setPin(PTT_OUT); } @@ -65,7 +81,8 @@ void radio_disableRtx() void radio_updateConfiguration() { - + if(radioStatus == RX) radio_enableRx(); + if(radioStatus == TX) radio_enableTx(); } float radio_getRssi() @@ -75,5 +92,5 @@ float radio_getRssi() enum opstatus radio_getStatus() { - return OFF; + return radioStatus; } diff --git a/platform/targets/Module17/hwconfig.h b/platform/targets/Module17/hwconfig.h index 7d2d7b06..203224ea 100644 --- a/platform/targets/Module17/hwconfig.h +++ b/platform/targets/Module17/hwconfig.h @@ -15,6 +15,16 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * + * As a special exception, if other files instantiate templates or use * + * macros or inline functions from this file, or you compile this file * + * and link it with other works to produce a work based on this file, * + * this file does not by itself cause the resulting work to be covered * + * by the GNU General Public License. However the source code for this * + * file must still be made available in accordance with the GNU General * + * Public License. This exception does not invalidate any other reasons * + * why a work based on this file might be covered by the GNU General * + * Public License. * + * * * You should have received a copy of the GNU General Public License * * along with this program; if not, see * ***************************************************************************/ @@ -42,34 +52,37 @@ #define BAT_NONE /* Signalling LEDs */ -#define PTT_LED GPIOE,13 -#define SYNC_LED GPIOE,14 -#define ERR_LED GPIOE,15 +#define PTT_LED GPIOC,8 +#define SYNC_LED GPIOC,9 +#define ERR_LED GPIOA,8 /* Display */ -#define LCD_RST GPIOB,11 -#define LCD_RS GPIOB,12 -#define LCD_CS GPIOB,10 -#define LCD_BKLIGHT GPIOE,15 +#define LCD_RST GPIOC,7 +#define LCD_RS GPIOC,6 +#define LCD_CS GPIOB,14 +//#define LCD_BKLIGHT GPIOE,15 #define SPI2_CLK GPIOB,13 -#define SPI2_SDO GPIOB,14 +#define SPI2_SDO GPIOB,9 //UNUSED #define SPI2_SDI GPIOB,15 /* Keyboard */ -#define ESC_SW GPIOD,1 -#define RIGHT_SW GPIOD,2 -#define UP_SW GPIOD,3 -#define DOWN_SW GPIOD,4 -#define LEFT_SW GPIOB,9 -#define ENTER_SW GPIOB,8 +#define ESC_SW GPIOB,8 +#define RIGHT_SW GPIOB,11 +#define UP_SW GPIOB,10 +#define DOWN_SW GPIOC,2 +#define LEFT_SW GPIOC,3 +#define ENTER_SW GPIOB,12 -#define PTT_SW GPIOD,8 -#define PTT_OUT GPIOD,10 +#define PTT_SW GPIOC,13 +#define PTT_OUT GPIOD,2 /* Audio */ -#define AUDIO_MIC GPIOA,2 -#define AUDIO_SPK GPIOA,5 +#define AUDIO_MIC GPIOA,2 +#define AUDIO_SPK GPIOA,5 #define BASEBAND_RX GPIOA,1 #define BASEBAND_TX GPIOA,4 +#define SPK_MUTE GPIOB,1 +#define MIC_MUTE GPIOC,4 +#define MIC_GAIN GPIOC,5 #endif diff --git a/platform/targets/Module17/platform.c b/platform/targets/Module17/platform.c index f08e0c67..a4c07f01 100644 --- a/platform/targets/Module17/platform.c +++ b/platform/targets/Module17/platform.c @@ -38,6 +38,8 @@ void platform_init() gpio_setMode(PTT_SW, INPUT); gpio_setMode(PTT_OUT, OUTPUT); gpio_clearPin(PTT_OUT); + + audio_init(); } void platform_terminate()