usbuart, jtagtap, swdptap: Factor out GPIO setup

This commit is contained in:
Uwe Bonnes 2013-01-16 19:37:37 +01:00
parent 7e91f68efa
commit 8b1ec3151f
6 changed files with 49 additions and 11 deletions

View File

@ -95,6 +95,20 @@ extern usbd_device *usbdev;
#define LED_IDLE_RUN GPIO10 #define LED_IDLE_RUN GPIO10
#define LED_ERROR GPIO11 #define LED_ERROR GPIO11
#define TMS_SET_MODE() \
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
#define SWDIO_MODE_FLOAT() \
gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT, \
GPIO_CNF_INPUT_FLOAT, SWDIO_PIN);
#define SWDIO_MODE_DRIVE() \
gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN);
#define UART_PIN_SETUP() \
gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ, \
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN);
#define USB_DRIVER stm32f103_usb_driver #define USB_DRIVER stm32f103_usb_driver
#define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ #define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ
#define USB_ISR usb_lp_can_rx0_isr #define USB_ISR usb_lp_can_rx0_isr

View File

@ -81,6 +81,20 @@ extern usbd_device *usbdev;
#define LED_UART GPIO14 #define LED_UART GPIO14
#define LED_IDLE_RUN GPIO8 #define LED_IDLE_RUN GPIO8
#define TMS_SET_MODE() \
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
#define SWDIO_MODE_FLOAT() \
gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT, \
GPIO_CNF_INPUT_FLOAT, SWDIO_PIN);
#define SWDIO_MODE_DRIVE() \
gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN);
#define UART_PIN_SETUP() \
gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ, \
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN);
#define USB_DRIVER stm32f103_usb_driver #define USB_DRIVER stm32f103_usb_driver
#define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ #define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ
#define USB_ISR usb_lp_can_rx0_isr #define USB_ISR usb_lp_can_rx0_isr

View File

@ -25,11 +25,11 @@
#include "general.h" #include "general.h"
#include "jtagtap.h" #include "jtagtap.h"
#include "platform.h"
int jtagtap_init(void) int jtagtap_init(void)
{ {
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, TMS_SET_MODE();
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
/* Go to JTAG mode for SWJ-DP */ /* Go to JTAG mode for SWJ-DP */
for(int i = 0; i <= 50; i++) jtagtap_next(1, 0); /* Reset SW-DP */ for(int i = 0; i <= 50; i++) jtagtap_next(1, 0); /* Reset SW-DP */

View File

@ -38,14 +38,12 @@ static void swdptap_turnaround(uint8_t dir)
if(dir == olddir) return; if(dir == olddir) return;
olddir = dir; olddir = dir;
if(dir) if(dir)
gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT, SWDIO_MODE_FLOAT();
GPIO_CNF_INPUT_FLOAT, SWDIO_PIN);
gpio_set(SWCLK_PORT, SWCLK_PIN); gpio_set(SWCLK_PORT, SWCLK_PIN);
gpio_clear(SWCLK_PORT, SWCLK_PIN); gpio_clear(SWCLK_PORT, SWCLK_PIN);
if(!dir) if(!dir)
gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ, SWDIO_MODE_DRIVE();
GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN);
} }
static uint8_t swdptap_bit_in(void) static uint8_t swdptap_bit_in(void)

View File

@ -39,9 +39,7 @@ void usbuart_init(void)
rcc_peripheral_enable_clock(&USBUSART_APB_ENR, USBUSART_CLK_ENABLE); rcc_peripheral_enable_clock(&USBUSART_APB_ENR, USBUSART_CLK_ENABLE);
/* UART TX to 'alternate function output push-pull' */ UART_PIN_SETUP();
gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ,
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN);
/* Setup UART parameters. */ /* Setup UART parameters. */
usart_set_baudrate(USBUSART, 38400); usart_set_baudrate(USBUSART, 38400);

View File

@ -83,6 +83,20 @@ extern usbd_device *usbdev;
#define LED_IDLE_RUN GPIO1 #define LED_IDLE_RUN GPIO1
#define LED_ERROR GPIO12 #define LED_ERROR GPIO12
#define TMS_SET_MODE() \
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
#define SWDIO_MODE_FLOAT() \
gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT, \
GPIO_CNF_INPUT_FLOAT, SWDIO_PIN);
#define SWDIO_MODE_DRIVE() \
gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN);
#define UART_PIN_SETUP() \
gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ, \
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN);
#define USB_DRIVER stm32f107_usb_driver #define USB_DRIVER stm32f107_usb_driver
#define USB_IRQ NVIC_OTG_FS_IRQ #define USB_IRQ NVIC_OTG_FS_IRQ
#define USB_ISR otg_fs_isr #define USB_ISR otg_fs_isr