Skip to content

Commit

Permalink
Update STM32F103 build for STLink/v2 clone
Browse files Browse the repository at this point in the history
Change LED to match STLink/v2 clone
Connect USB-CDC port to SWIM pin (RX only)
  • Loading branch information
devanlai committed Apr 25, 2016
1 parent 25a679c commit d6d1c9d
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 39 deletions.
2 changes: 1 addition & 1 deletion src/console.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ void console_setup(uint32_t baudrate) {
usart_set_databits(CONSOLE_USART, 8);
usart_set_parity(CONSOLE_USART, USART_PARITY_NONE);
usart_set_stopbits(CONSOLE_USART, USART_STOPBITS_1);
usart_set_mode(CONSOLE_USART, USART_MODE_TX_RX);
usart_set_mode(CONSOLE_USART, CONSOLE_USART_MODE);
usart_set_flow_control(CONSOLE_USART, USART_FLOWCONTROL_NONE);

usart_enable(CONSOLE_USART);
Expand Down
2 changes: 1 addition & 1 deletion src/stm32f042/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
#define CONSOLE_USART_GPIO_PORT GPIOA
#define CONSOLE_USART_GPIO_PINS (GPIO2|GPIO3)
#define CONSOLE_USART_GPIO_AF GPIO_AF1

#define CONSOLE_USART_MODE USART_MODE_TX_RX
#define CONSOLE_USART_CLOCK RCC_USART2

#define CONSOLE_USART_IRQ_NAME usart2_isr
Expand Down
12 changes: 6 additions & 6 deletions src/stm32f103/DAP/CMSIS_DAP_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,12 @@ Provides definitions about:
#define nRESET_GPIO_PORT GPIOB
#define nRESET_GPIO_PIN GPIO6

#define LED_CON_GPIO_PORT GPIOC
#define LED_CON_GPIO_PIN GPIO13
#define LED_RUN_GPIO_PORT GPIOC
#define LED_RUN_GPIO_PIN GPIO14
#define LED_ACT_GPIO_PORT GPIOC
#define LED_ACT_GPIO_PIN GPIO15
#define LED_CON_GPIO_PORT GPIOA
#define LED_CON_GPIO_PIN GPIO9
#define LED_RUN_GPIO_PORT GPIOA
#define LED_RUN_GPIO_PIN GPIO9
#define LED_ACT_GPIO_PORT GPIOA
#define LED_ACT_GPIO_PIN GPIO9

#define SWDIO_GPIO_PIN_NUM 14

Expand Down
16 changes: 9 additions & 7 deletions src/stm32f103/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,20 @@

#define DEFAULT_BAUDRATE 115200

#define CONSOLE_USART USART2
#define CONSOLE_USART USART3
#define CONSOLE_TX_BUFFER_SIZE 128
#define CONSOLE_RX_BUFFER_SIZE 128

#define CONSOLE_USART_GPIO_PORT GPIOA
#define CONSOLE_USART_GPIO_TX GPIO2
#define CONSOLE_USART_GPIO_RX GPIO3
#define CONSOLE_USART_GPIO_PORT GPIOB
#define CONSOLE_USART_GPIO_TX 0
#define CONSOLE_USART_GPIO_RX GPIO11

#define CONSOLE_USART_CLOCK RCC_USART2
#define CONSOLE_USART_MODE USART_MODE_RX

#define CONSOLE_USART_IRQ_NAME usart2_isr
#define CONSOLE_USART_NVIC_LINE NVIC_USART2_IRQ
#define CONSOLE_USART_CLOCK RCC_USART3

#define CONSOLE_USART_IRQ_NAME usart3_isr
#define CONSOLE_USART_NVIC_LINE NVIC_USART3_IRQ

/* Word size for usart_recv and usart_send */
typedef uint16_t usart_word_t;
Expand Down
32 changes: 8 additions & 24 deletions src/stm32f103/target.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ void clock_setup(void) {

void gpio_setup(void) {
/*
LED0, 1, 2 on PC13, PC14, PC15
TX, RX (MCU-side) on PA2, PA3
LED0, 1, 2 on PA9,
RX (MCU-side) on PB11
TGT_RST on PB6
TGT_SWDIO, TGT_SWCLK on PB14, PB13
TGT_SWO on PB11
Expand All @@ -39,14 +39,12 @@ void gpio_setup(void) {
/* Enable GPIOA, GPIOB, and GPIOC clocks. */
rcc_periph_clock_enable(RCC_GPIOA);
rcc_periph_clock_enable(RCC_GPIOB);
rcc_periph_clock_enable(RCC_GPIOC);


/* Setup LEDs as open-drain outputs */
const uint8_t mode = GPIO_MODE_OUTPUT_10_MHZ;
const uint8_t conf = (LED_OPEN_DRAIN ? GPIO_CNF_OUTPUT_OPENDRAIN
: GPIO_CNF_OUTPUT_PUSHPULL);
gpio_set_mode(GPIOC, mode, conf, GPIO13 | GPIO14 | GPIO15);
gpio_set_mode(GPIOA, mode, conf, GPIO9);
}

void target_console_init(void){
Expand All @@ -63,36 +61,22 @@ void target_console_init(void){
void led_bit(uint8_t position, bool state) {
uint32_t gpio = 0xFFFFFFFFU;
if (position == 0) {
gpio = GPIO13;
} else if (position == 1) {
gpio = GPIO14;
} else if (position == 2) {
gpio = GPIO15;
gpio = GPIO9;
}

if (gpio != 0xFFFFFFFFU) {
if (state ^ LED_OPEN_DRAIN) {
gpio_set(GPIOC, gpio);
gpio_set(GPIOA, gpio);
} else {
gpio_clear(GPIOC, gpio);
gpio_clear(GPIOA, gpio);
}
}
}

void led_num(uint8_t value) {
if ((value & 0x4) ^ (LED_OPEN_DRAIN << 2)) {
gpio_set(GPIOC, GPIO15);
} else {
gpio_clear(GPIOC, GPIO15);
}
if ((value & 0x2) ^ (LED_OPEN_DRAIN << 1)) {
gpio_set(GPIOC, GPIO14);
} else {
gpio_clear(GPIOC, GPIO14);
}
if ((value & 0x1) ^ LED_OPEN_DRAIN) {
gpio_set(GPIOC, GPIO13);
gpio_set(GPIOA, GPIO9);
} else {
gpio_clear(GPIOC, GPIO13);
gpio_clear(GPIOA, GPIO9);
}
}

0 comments on commit d6d1c9d

Please sign in to comment.