From 167296200d96966dd297b8623fd9d4d48efa88b2 Mon Sep 17 00:00:00 2001 From: Andy CA6JAU Date: Sun, 22 Oct 2017 22:48:16 -0300 Subject: [PATCH 1/2] Adding pin definitions for MMDVM-F4M Pi-Hat F0DEI board --- IOSTM.cpp | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++- Makefile | 11 +++++++- SerialSTM.cpp | 20 +++++++------- 3 files changed, 91 insertions(+), 12 deletions(-) diff --git a/IOSTM.cpp b/IOSTM.cpp index 047b6d96..4943d01d 100644 --- a/IOSTM.cpp +++ b/IOSTM.cpp @@ -164,6 +164,76 @@ EXT_CLK PA15 input #define PIN_TX GPIO_Pin_4 #define PIN_TX_CH DAC_Channel_1 +#elif defined(STM32F4_F4M) +/* +Pin definitions for MMDVM-F4M Pi-Hat F0DEI board: + +PTT PB13 output +COSLED PB14 output +LED PB15 output +COS PC0 input + +DSTAR PC7 output +DMR PC8 output +YSF PA8 output +P25 PC9 output + +RX PA0 analog input +RSSI PA7 analog input +TX PA4 analog output + +EXT_CLK PA15 input +*/ + +#define PIN_COS GPIO_Pin_0 +#define PORT_COS GPIOC +#define RCC_Per_COS RCC_AHB1Periph_GPIOC + +#define PIN_PTT GPIO_Pin_13 +#define PORT_PTT GPIOB +#define RCC_Per_PTT RCC_AHB1Periph_GPIOB + +#define PIN_COSLED GPIO_Pin_14 +#define PORT_COSLED GPIOB +#define RCC_Per_COSLED RCC_AHB1Periph_GPIOB + +#define PIN_LED GPIO_Pin_15 +#define PORT_LED GPIOB +#define RCC_Per_LED RCC_AHB1Periph_GPIOB + +#define PIN_P25 GPIO_Pin_9 +#define PORT_P25 GPIOC +#define RCC_Per_P25 RCC_AHB1Periph_GPIOC + +#define PIN_DSTAR GPIO_Pin_7 +#define PORT_DSTAR GPIOC +#define RCC_Per_DSTAR RCC_AHB1Periph_GPIOC + +#define PIN_DMR GPIO_Pin_8 +#define PORT_DMR GPIOC +#define RCC_Per_DMR RCC_AHB1Periph_GPIOC + +#define PIN_YSF GPIO_Pin_8 +#define PORT_YSF GPIOA +#define RCC_Per_YSF RCC_AHB1Periph_GPIOA + +#define PIN_EXT_CLK GPIO_Pin_15 +#define SRC_EXT_CLK GPIO_PinSource15 +#define PORT_EXT_CLK GPIOA + +#define PIN_RX GPIO_Pin_0 +#define PIN_RX_CH ADC_Channel_0 +#define PORT_RX GPIOA +#define RCC_Per_RX RCC_AHB1Periph_GPIOA + +#define PIN_RSSI GPIO_Pin_7 +#define PIN_RSSI_CH ADC_Channel_7 +#define PORT_RSSI GPIOA +#define RCC_Per_RSSI RCC_AHB1Periph_GPIOA + +#define PIN_TX GPIO_Pin_4 +#define PIN_TX_CH DAC_Channel_1 + #elif defined(STM32F4_NUCLEO) #if defined(STM32F4_NUCLEO_MORPHO_HEADER) @@ -427,7 +497,7 @@ EXT_CLK PA15 input CN11 Pin17 #define PIN_TX_CH DAC_Channel_1 #else -#error "Either STM32F4_DISCOVERY, STM32F4_PI, STM32F4_NUCLEO or STM32F7_NUCLEO need to be defined" +#error "Either STM32F4_DISCOVERY, STM32F4_PI, STM32F4_F4M, STM32F4_NUCLEO or STM32F7_NUCLEO need to be defined" #endif const uint16_t DC_OFFSET = 2048U; diff --git a/Makefile b/Makefile index 887f4734..4e961078 100644 --- a/Makefile +++ b/Makefile @@ -116,6 +116,8 @@ MCFLAGS_F7=-mcpu=cortex-m7 -mthumb -mlittle-endian -mfpu=fpv5-sp-d16 -mfloat-abi DEFS_DIS=-DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DSTM32F40_41xxx -DSTM32F4_DISCOVERY -DHSE_VALUE=$(OSC) -DMADEBYMAKEFILE # MMDVM-Pi board: DEFS_PI=-DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DSTM32F446xx -DSTM32F4_PI -DHSE_VALUE=$(OSC) -DMADEBYMAKEFILE +# MMDVM-F4M F0DEI board: +DEFS_F4M=-DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DSTM32F446xx -DSTM32F4_F4M -DHSE_VALUE=$(OSC) -DMADEBYMAKEFILE # STM32F4 Nucleo-64 F446RE board: DEFS_NUCLEO=-DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DSTM32F446xx -DSTM32F4_NUCLEO -DHSE_VALUE=$(OSC) -DMADEBYMAKEFILE # STM32F7 Nucleo-144 F767ZI board: @@ -137,7 +139,7 @@ CXXFLAGS=-Os -fno-exceptions -ffunction-sections -fdata-sections -fno-builtin -f LDFLAGS=-Os --specs=nano.specs # Build Rules -.PHONY: all release dis pi nucleo f767 clean +.PHONY: all release dis pi f4m nucleo f767 clean # Default target: Nucleo-64 F446RE board all: nucleo @@ -148,6 +150,12 @@ pi: CXXFLAGS+=$(CXXFLAGS_F4) $(DEFS_PI) pi: LDFLAGS+=$(LDFLAGS_F4) pi: release_f4 +f4m: GitVersion.h +f4m: CFLAGS+=$(CFLAGS_F4) $(DEFS_F4M) +f4m: CXXFLAGS+=$(CXXFLAGS_F4) $(DEFS_F4M) +f4m: LDFLAGS+=$(LDFLAGS_F4) +f4m: release_f4 + nucleo: GitVersion.h nucleo: CFLAGS+=$(CFLAGS_F4) $(DEFS_NUCLEO) nucleo: CXXFLAGS+=$(CXXFLAGS_F4) $(DEFS_NUCLEO) @@ -273,6 +281,7 @@ ifneq ($(wildcard /opt/openocd/bin/openocd),) endif deploy-pi: +deploy-f4m: ifneq ($(wildcard /usr/local/bin/stm32flash),) -/usr/local/bin/stm32flash -i 20,-21,21:-20,21 /dev/ttyAMA0 -/usr/local/bin/stm32ld /dev/ttyAMA0 57600 bin/$(BINBIN_F4) diff --git a/SerialSTM.cpp b/SerialSTM.cpp index 99e3a5e0..bb1da887 100644 --- a/SerialSTM.cpp +++ b/SerialSTM.cpp @@ -27,14 +27,14 @@ Pin definitions: - Host communication: -USART1 - TXD PA9 - RXD PA10 (MMDVM-Pi board) -USART2 - TXD PA2 - RXD PA3 (Nucleo64 F446RE board) +USART1 - TXD PA9 - RXD PA10 (MMDVM-Pi board, MMDVM-F4M board) +USART2 - TXD PA2 - RXD PA3 (Nucleo64 F446RE board, Morpho or Arduino header) USART3 - TXD PC10 - RXD PC11 (Discovery board) USART3 - TXD PD8 - RXD PD9 (Nucleo144 F767ZI board) - Serial repeater: USART1 - TXD PA9 - RXD PA10 (Nucleo with Arduino header) -UART5 - TXD PC12 - RXD PD2 (Discovery, MMDVM-Pi, Nucleo64 with Morpho header and Nucleo144 F767ZI) +UART5 - TXD PC12 - RXD PD2 (Discovery, MMDVM-Pi, MMDVM-F4M board, Nucleo64 with Morpho header and Nucleo144 F767ZI) */ #if defined(STM32F4XX) || defined(STM32F7XX) @@ -50,7 +50,7 @@ extern "C" { } /* ************* USART1 ***************** */ -#if defined(STM32F4_PI) || (defined(STM32F4_NUCLEO) && defined(STM32F4_NUCLEO_ARDUINO_HEADER)) +#if defined(STM32F4_PI) || defined(STM32F4_F4M) || (defined(STM32F4_NUCLEO) && defined(STM32F4_NUCLEO_ARDUINO_HEADER)) volatile uint8_t TXSerialfifo1[TX_SERIAL_FIFO_SIZE]; volatile uint8_t RXSerialfifo1[RX_SERIAL_FIFO_SIZE]; @@ -432,7 +432,7 @@ void WriteUSART2(const uint8_t* data, uint16_t length) #endif /* ************* USART3 ***************** */ -#if defined(STM32F4_DISCOVERY) || defined(STM32F4_PI) || defined(STM32F7_NUCLEO) +#if defined(STM32F4_DISCOVERY) || defined(STM32F7_NUCLEO) volatile uint8_t TXSerialfifo3[TX_SERIAL_FIFO_SIZE]; volatile uint8_t RXSerialfifo3[RX_SERIAL_FIFO_SIZE]; @@ -841,7 +841,7 @@ void CSerialPort::beginInt(uint8_t n, int speed) case 1U: #if defined(STM32F4_DISCOVERY) || defined(STM32F7_NUCLEO) InitUSART3(speed); - #elif defined(STM32F4_PI) + #elif defined(STM32F4_PI) || defined(STM32F4_F4M) InitUSART1(speed); #elif defined(STM32F4_NUCLEO) InitUSART2(speed); @@ -865,7 +865,7 @@ int CSerialPort::availableInt(uint8_t n) case 1U: #if defined(STM32F4_DISCOVERY) || defined(STM32F7_NUCLEO) return AvailUSART3(); - #elif defined(STM32F4_PI) + #elif defined(STM32F4_PI) || defined(STM32F4_F4M) return AvailUSART1(); #elif defined(STM32F4_NUCLEO) return AvailUSART2(); @@ -887,7 +887,7 @@ int CSerialPort::availableForWriteInt(uint8_t n) case 1U: #if defined(STM32F4_DISCOVERY) || defined(STM32F7_NUCLEO) return AvailForWriteUSART3(); - #elif defined(STM32F4_PI) + #elif defined(STM32F4_PI) || defined(STM32F4_F4M) return AvailForWriteUSART1(); #elif defined(STM32F4_NUCLEO) return AvailForWriteUSART2(); @@ -909,7 +909,7 @@ uint8_t CSerialPort::readInt(uint8_t n) case 1U: #if defined(STM32F4_DISCOVERY) || defined(STM32F7_NUCLEO) return ReadUSART3(); - #elif defined(STM32F4_PI) + #elif defined(STM32F4_PI) || defined(STM32F4_F4M) return ReadUSART1(); #elif defined(STM32F4_NUCLEO) return ReadUSART2(); @@ -933,7 +933,7 @@ void CSerialPort::writeInt(uint8_t n, const uint8_t* data, uint16_t length, bool WriteUSART3(data, length); if (flush) TXSerialFlush3(); - #elif defined(STM32F4_PI) + #elif defined(STM32F4_PI) || defined(STM32F4_F4M) WriteUSART1(data, length); if (flush) TXSerialFlush1(); From b54dc3421533cd1a692e29b07fd47b2a1b60dfb7 Mon Sep 17 00:00:00 2001 From: Andy CA6JAU Date: Sun, 22 Oct 2017 22:55:35 -0300 Subject: [PATCH 2/2] Fix mistake in Makefile --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4e961078..825ad5e3 100644 --- a/Makefile +++ b/Makefile @@ -281,7 +281,6 @@ ifneq ($(wildcard /opt/openocd/bin/openocd),) endif deploy-pi: -deploy-f4m: ifneq ($(wildcard /usr/local/bin/stm32flash),) -/usr/local/bin/stm32flash -i 20,-21,21:-20,21 /dev/ttyAMA0 -/usr/local/bin/stm32ld /dev/ttyAMA0 57600 bin/$(BINBIN_F4) @@ -294,6 +293,8 @@ ifneq ($(wildcard /usr/bin/stm32flash),) /usr/bin/stm32flash -v -w bin/$(BINBIN_F4) -g 0x0 -R -c /dev/ttyAMA0 endif +deploy-f4m: deploy-pi + # Export the current git version if the index file exists, else 000... GitVersion.h: ifdef SYSTEMROOT