From 051a1f1e325797a0cdb8fc17f5f2479290606845 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Fri, 21 Oct 2022 18:27:54 +0200 Subject: [PATCH] boards/common/blxxxpill: rework periph configuration The peripheral configuration has been completely reworked to resolve pin conflicts while provided as much of the peripherals as possible. The changes include: - Move `I2C_DEV(0)` from PB6/PB7 to PB8/PB9 to solve pin conflict with `QDEC_DEV(2)`. - Use pins PB0, PB1, PB4, and PB5 for PWM instead PA8, PA9, PA10, and PA11 - PA9 and PA10 is in pin conflict with `UART_DEV(0)` which is used for stdio with `stdio_uart`, PA8 was in conflict with `QDEC_DEV(0)`, PA11 was in conflict with USB D- - Use PB6, PB7 as `QDEC_DEV(0)` (previously `QDEC_DEV(2)`), as this is the only completely conflict free setting - Use PB4/PB5 instead of PA6/PA7 for QDEC_DEV(1) - This fixes a pin conflict with `SPI_DEV(0)` MISO (and `ADC_LINE(4)`) - Only provide QDEC at PB4/PB5 when PWM is not used to avoid conflict - Only provide QDEC at PA8/PA9 when UART is not used to avoid conflict - Use SPI2 (PB15, PB14, PB13, PB12) as `SPI_DEV(0)` instead of SPI1, use SPI1 (PA7, PA6, PA5, PA4) as `SPI_DEV(1)` - Only provide `SPI_DEV(1)` if the ADC is not in used to resolve a pin conflict - Move PB0 and PB1 at the end of the ADC lines (previously `ADC_LINE(6)` and `ADC_LINE(7)`, now `ADC_LINE(8)` and `ADC_LINE(9)`) - Only provide them when PWM is not in use (to resolve pin conflict with PWM) - Also do not provide them for the Blackpill boards, which are missing pins PB0 and PB1 on the headers To make life of users easier, a Pinout diagram with the new configuration was added. --- boards/common/blxxxpill/doc.txt | 6 +- boards/common/blxxxpill/doc/README.md | 6 + .../blxxxpill/doc/bluepill-top-view.svg | 4096 ++++++++++++++ .../common/blxxxpill/doc/pinout-bluepill.csv | 122 + boards/common/blxxxpill/include/periph_conf.h | 120 +- doc/doxygen/src/pinouts/pinout-bluepill.svg | 4710 +++++++++++++++++ 6 files changed, 9011 insertions(+), 49 deletions(-) create mode 100644 boards/common/blxxxpill/doc/README.md create mode 100644 boards/common/blxxxpill/doc/bluepill-top-view.svg create mode 100644 boards/common/blxxxpill/doc/pinout-bluepill.csv create mode 100644 doc/doxygen/src/pinouts/pinout-bluepill.svg diff --git a/boards/common/blxxxpill/doc.txt b/boards/common/blxxxpill/doc.txt index 7004a61bef..a40f225453 100644 --- a/boards/common/blxxxpill/doc.txt +++ b/boards/common/blxxxpill/doc.txt @@ -13,10 +13,10 @@ There are also versions that only report to have 32 KiB, but actually have 64 KiB. -## Hardware +## Pinout + +![pinout](pinouts/pinout-bluepill.svg) -![bluepill] -(https://camo.githubusercontent.com/6122268d77e4677a08d0e13e2e2aaf070a0a6a69/687474703a2f2f73312e62696c642e6d652f62696c6465722f3131303431372f38383135303232313438363837343334302e6a7067) ### MCU | MCU | STM32F103C8 | diff --git a/boards/common/blxxxpill/doc/README.md b/boards/common/blxxxpill/doc/README.md new file mode 100644 index 0000000000..a10341a73d --- /dev/null +++ b/boards/common/blxxxpill/doc/README.md @@ -0,0 +1,6 @@ +Pinout Generation +================= + +[GenPinoutSVG](https://github.com/stevenj/GenPinoutSVG) was used to generate +the Pinout diagram. The only post-processing applied was cropping the SVG to its +contents. diff --git a/boards/common/blxxxpill/doc/bluepill-top-view.svg b/boards/common/blxxxpill/doc/bluepill-top-view.svg new file mode 100644 index 0000000000..9054da9002 --- /dev/null +++ b/boards/common/blxxxpill/doc/bluepill-top-view.svg @@ -0,0 +1,4096 @@ + + + + Bluepill_pinout.svg + + + + + image/svg+xml + + + + + + + + + + element:C1 + + package:CAP0805-NP + + + + + + + + element:C2 + + package:TAN-A + + + + + + + + element:C3 + + package:CAP0805-NP + + + + + + + + element:C4 + + package:CAP0805-NP + + + + + + + + element:C7 + + package:CAP0805-NP + + + + + + + + element:C8 + + package:TAN-A + + + + + + + + element:C9 + + package:CAP0805-NP + + + + + + + + element:D1 + + package:SOD-123 + + + + + + + + element:J1 + + package:HEAD15-NOSS + + + + + + + + element:J2 + + package:HEAD15-NOSS-1 + + + + + + + + element:RP1 + + package:RES4NT + + + + + + + + element:RP2 + + package:RES4NT + + + + + + + + element:U$4 + + package:FIDUCIAL-1X2 + + + + + + + + element:U$37 + + package:FIDUCIAL-1X2 + + + + + + + + element:U$53 + + package:FIDUCIAL-1X2 + + + + + + + + element:U$54 + + package:FIDUCIAL-1X2 + + + + + + + + element:U2 + + package:SSOP28 + + + + + + + + element:U3 + + package:SOT223 + + + + + + + + + + + VBAT + + + + + C13 + + + + + C14 + + + + + C15 + + + + + A0 + + + + + A1 + + + + + A2 + + + + + A3 + + + + + A4 + + + + + A5 + + + + + A6 + + + + + A7 + + + + + B0 + + + + + B1 + + + + + B10 + + + + + B11 + + + + + NRST + + + + + 3V3 + + + + + GND + + + + + GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3V3 + + + + + GND + + + + + 5V + + + + + B9 + + + + + B8 + + + + + B7 + + + + + B6 + + + + + B5 + + + + + B4 + + + + + B3 + + + + + A15 + + + + + A12 + + + + + A11 + + + + + A10 + + + + + A9 + + + + + A8 + + + + + B15 + + + + + B14 + + + + + B13 + + + + + B12 + + + + 8.000 + + + diff --git a/boards/common/blxxxpill/doc/pinout-bluepill.csv b/boards/common/blxxxpill/doc/pinout-bluepill.csv new file mode 100644 index 0000000000..03b094fe56 --- /dev/null +++ b/boards/common/blxxxpill/doc/pinout-bluepill.csv @@ -0,0 +1,122 @@ +LABELS,DEFAULT,TYPE,GROUP,Name, Official Name, GPIO, Analog 1, Analog 2, RTC, Func 1, Func 2, Func 3 +BORDER COLOR, grey +BORDER WIDTH, 2 +BORDER OPACITY, 1 +FILL COLOR, white, white, white, deepskyblue, gray, green, purple, yellow, orange, red, gold, brown +OPACITY, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +FONT , Rubik, , , Work Sans, Work Sans +FONT SIZE , 25, , , 25, 25 +FONT COLOR , black, , , , , white +FONT SLANT , normal , , , , , +FONT BOLD , 700 , , , 700 +FONT STRETCH , normal +FONT OUTLINE , yellow , , , , blue +FONT OUTLINE THICKNESS, 0.1 +BOXES, STD, , , PIN BOX, NAME BOX, SKEWED, SKEWED, SKEWED, SKEWED, SKEWED, SKEWED, SKEWED + +TYPE, IO, black, 1 +TYPE, INPUT, black, 1 +TYPE, OUTPUT, black, 1 + +WIRE, DIGITAL, black, 1, 5 +WIRE, PWM, black, 1, 5 +WIRE, ANALOG, black, 1, 5 +WIRE, POWER, black, 1, 10 + +GROUP, NONE, grey, 0.1 + +BOX, STD, black, 1, white, 0, 1, 100,55,2,2,0,0 +BOX, PIN BOX, black, 1, white, 0, 1, 80, 55, 5, 5, -10, 0 +BOX, NAME BOX, black, 1, white, 0, 1, 125, 55, 5, 5, -10, 0 +BOX, SKEWED, black, 1, white, 0, 1, 125,55,5,5,-10,0 +BOX, PAGE BORDER, black, 1, white, 1, 50, 100,100,0,0,0,0 +BOX, DETAIL BOX, darkblue, 1, white, 0, 3, 250, 200, 15,15,0,0 + +PAGE, A4-L +DPI, 300 + +DRAW + +# Add image of board +ICON, bluepill-top-view.svg, 880, 908, 100%, 100% + +BOX, DETAIL BOX, 1800, 100, 1100, 300, , TOP, "Legend" +ANCHOR, 1820,140 +PINSET, RIGHT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 +# wire, type, group, pin-name, comment, analog, PWM, SPI, I2C, POWER, UART, QDEC +PIN, DIGITAL, INPUT, NONE, , Input +PIN, DIGITAL, OUTPUT, NONE, , Output +PIN, DIGITAL, IO, NONE, , "I/O" +ANCHOR, 2220,140 +PINSET, RIGHT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 +PIN, ANALOG, IO, NONE, , , Analog +PIN, PWM, IO, NONE, , , , PWM +PIN, DIGITAL, IO, NONE, , , , , SPI +ANCHOR, 2640,140 +PINSET, RIGHT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 +PIN, DIGITAL, IO, NONE, , , , , , I2C +PIN, DIGITAL, IO, NONE, , , , , , , , UART +PIN, POWER, IO, NONE, , , , , , , Power + +BOX, DETAIL BOX, 1800, 500, 1100, 220, , TOP, "Internally Connected to ADC" +ANCHOR, 1820,540 +PINSET, RIGHT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 +# wire, type, group, pin-name, comment, analog, PWM, SPI, I2C, POWER, UART, QDEC +PIN, ANALOG, IO, NONE, NTC, , "A6" +PIN, ANALOG, IO, NONE, VREF, , "A7" + +BOX, DETAIL BOX, 1800, 800, 1100, 220, , TOP, "Default Interface for STDIO" +MESSAGE, 1820, 860, 48, Name, 36, LEFT, TOP +TEXT, none, black, "UART for STM32F103C8 (64 KiB flash)", NL +TEXT, none, black, "USB for STM32F103CB (128 KiB flash)", NL + +# Left Side Pins +ANCHOR, 520,170 +PINSET, LEFT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 + +# wire, type, group, pin-name, comment, analog, PWM, SPI, I2C, POWER, UART, QDEC +PIN, ANALOG, INPUT, NONE, , "VAT" +PIN, DIGITAL, OUTPUT, NONE, "PC 13", "LED1" +PIN, DIGITAL, IO, NONE, "PC 14" +PIN, DIGITAL, IO, NONE, "PC 15" +PIN, ANALOG, IO, NONE, "PA 0", , "A0" +PIN, DIGITAL, IO, NONE, "PA 1", , "A1" +PIN, DIGITAL, OUTPUT, NONE, "PA 2", , , , , , , "TX1" +PIN, DIGITAL, INPUT, NONE, "PA 3", , , , , , , "RX1" +PIN, DIGITAL, OUTPUT, NONE, "PA 4", , "A2", , "CS1" +PIN, DIGITAL, OUTPUT, NONE, "PA 5", , "A3", , "SCLK1" +PIN, DIGITAL, INPUT, NONE, "PA 6", , "A4", , "MISO1" +PIN, DIGITAL, OUTPUT, NONE, "PA 7", , "A5", , "MOSI1" +PIN, PWM, OUTPUT, NONE, "PB 0", , "A8", "PWM2" +PIN, PWM, OUTPUT, NONE, "PB 1", , "A9", "PWM3" +PIN, DIGITAL, OUTPUT, NONE, "PB 10", , , , , "SCL1", , "TX2" +PIN, DIGITAL, INPUT, NONE, "PB 11", , , , , "SDA1", , "RX2" +PIN, DIGITAL, INPUT, NONE, , "RESET" +PIN, POWER, OUTPUT, NONE, , , , , , , "+3.3V" +PIN, POWER, OUTPUT, NONE, , , , , , , "GND" +PIN, POWER, OUTPUT, NONE, , , , , , , "GND" + +# Right Side Pins +ANCHOR, 1235,170 +PINSET, RIGHT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 +# wire, type, group, pin-name, comment, analog, PWM, SPI, I2C, POWER, UART, QDEC +PIN, POWER, OUTPUT, NONE, , , , , , , "+3.3V" +PIN, POWER, OUTPUT, NONE, , , , , , , "GND" +PIN, POWER, OUTPUT, NONE, , , , , , , "+5V" +PIN, DIGITAL, IO, NONE, "PB 9", , , , , "SDA0" +PIN, DIGITAL, IO, NONE, "PB 8", , , , , "SCL0" +PIN, DIGITAL, INPUT, NONE, "PB 7", , , , , , , , "QDEC0-B" +PIN, DIGITAL, INPUT, NONE, "PB 6", , , , , , , , "QDEC0-A" +PIN, PWM, OUTPUT, NONE, "PB 5", , , "PWM1" +PIN, PWM, IO, NONE, "PB 4", , , "PWM0", , , , , "QDEC1-A" +PIN, DIGITAL, INPUT, NONE, "PB 3", , , , , , , , "QDEC1-B" +PIN, DIGITAL, IO, NONE, "PA 15" +PIN, DIGITAL, IO, NONE, "PA 12", "USB D+\\nstdio" +PIN, DIGITAL, IO, NONE, "PA 11", "USB D-\\nstdio" +PIN, DIGITAL, OUTPUT, NONE, "PA 10", "stdio", , , , , , "TX0" +PIN, DIGITAL, INPUT, NONE, "PA 9", "stdio", , , , , , "RX0", "QDEC2-A" +PIN, DIGITAL, IO, NONE, "PA 8", , , , , , , , "QDEC2-B" +PIN, DIGITAL, OUTPUT, NONE, "PB 15", , , , "MOSI0" +PIN, DIGITAL, INPUT, NONE, "PB 14", , , , "MISO0" +PIN, DIGITAL, OUTPUT, NONE, "PB 13", , , , "SCLK0" +PIN, DIGITAL, OUTPUT, NONE, "PB 12", , , , "CS0" diff --git a/boards/common/blxxxpill/include/periph_conf.h b/boards/common/blxxxpill/include/periph_conf.h index 4a7054d824..607b08d282 100644 --- a/boards/common/blxxxpill/include/periph_conf.h +++ b/boards/common/blxxxpill/include/periph_conf.h @@ -61,12 +61,21 @@ static const adc_conf_t adc_config[] = { { .pin = GPIO_PIN(PORT_A, 5), .dev = 0, .chan = 5 }, { .pin = GPIO_PIN(PORT_A, 6), .dev = 0, .chan = 6 }, { .pin = GPIO_PIN(PORT_A, 7), .dev = 0, .chan = 7 }, - { .pin = GPIO_PIN(PORT_B, 0), .dev = 0, .chan = 8 }, - { .pin = GPIO_PIN(PORT_B, 1), .dev = 0, .chan = 9 }, /* ADC Temperature channel */ { .pin = GPIO_UNDEF, .dev = 0, .chan = 16 }, /* ADC VREF channel */ { .pin = GPIO_UNDEF, .dev = 0, .chan = 17 }, + /* The blackpill has a few pins less. PB0 and PB1 are among the GPIOs not + * exposed due to the lower pincount. + * + * Also, this conflicts with PWM. We prefer PWM over ADC here to provide + * 6 external ADC inputs, and 4 PWM outputs (instead of 8 ADC inputs and + * 2 PWM outputs). */ +#if !defined(BOARD_BLACKPILL) && !defined(BOARD_BLACKPILL_128KIB) \ + && !defined(MODULE_PERIPH_PWM) + { .pin = GPIO_PIN(PORT_B, 0), .dev = 0, .chan = 8 }, + { .pin = GPIO_PIN(PORT_B, 1), .dev = 0, .chan = 9 }, +#endif }; #define ADC_NUMOF ARRAY_SIZE(adc_config) @@ -134,33 +143,41 @@ static const timer_conf_t timer_config[] = { */ static const qdec_conf_t qdec_config[] = { + { + .dev = TIM4, + .max = 0x0000ffff, + .rcc_mask = RCC_APB1ENR_TIM4EN, + .chan = { { .pin = GPIO_PIN(PORT_B, 6), .cc_chan = 0 }, + { .pin = GPIO_PIN(PORT_B, 7), .cc_chan = 1 } }, + .bus = APB1, + .irqn = TIM4_IRQn, + }, + /* this conflicts with PWM */ +#ifndef MODULE_PERIPH_PWM + { + .dev = TIM3, + .max = 0x0000ffff, + .rcc_mask = RCC_APB1ENR_TIM3EN, + .chan = { { .pin = GPIO_PIN(PORT_B, 4), .cc_chan = 0 }, + { .pin = GPIO_PIN(PORT_B, 5), .cc_chan = 1 } }, + /* by default TIM3 is routed to PA6 (cc_chan 0) and PA7 (cc_chan 1) */ + .remap = AFIO_MAPR_TIM3_REMAP_1, + .bus = APB1, + .irqn = TIM3_IRQn, + }, +#endif + /* this conflicts with UART_DEV(0) */ +#ifndef MODULE_PERIPH_UART { .dev = TIM1, .max = 0x0000ffff, .rcc_mask = RCC_APB2ENR_TIM1EN, - .chan = { { .pin = GPIO_PIN(PORT_A, 8), .cc_chan = 0 }, - { .pin = GPIO_PIN(PORT_A, 9), .cc_chan = 1 } }, + .chan = { { .pin = GPIO_PIN(PORT_A, 8), .cc_chan = 0 }, + { .pin = GPIO_PIN(PORT_A, 9), .cc_chan = 1 } }, .bus = APB2, .irqn = TIM1_UP_IRQn }, - { - .dev = TIM3, - .max = 0x0000ffff, - .rcc_mask = RCC_APB1ENR_TIM3EN, - .chan = { { .pin = GPIO_PIN(PORT_A, 6), .cc_chan = 0 }, - { .pin = GPIO_PIN(PORT_A, 7), .cc_chan = 1 } }, - .bus = APB1, - .irqn = TIM3_IRQn - }, - { - .dev = TIM4, - .max = 0x0000ffff, - .rcc_mask = RCC_APB1ENR_TIM4EN, - .chan = { { .pin = GPIO_PIN(PORT_B, 6), .cc_chan = 0 }, - { .pin = GPIO_PIN(PORT_B, 7), .cc_chan = 1 } }, - .bus = APB1, - .irqn = TIM4_IRQn - } +#endif }; #define QDEC_NUMOF ARRAY_SIZE(qdec_config) @@ -225,8 +242,8 @@ static const i2c_conf_t i2c_config[] = { { .dev = I2C1, .speed = I2C_SPEED_NORMAL, - .scl_pin = GPIO_PIN(PORT_B, 6), - .sda_pin = GPIO_PIN(PORT_B, 7), + .scl_pin = GPIO_PIN(PORT_B, 8), + .sda_pin = GPIO_PIN(PORT_B, 9), .bus = APB1, .rcc_mask = RCC_APB1ENR_I2C1EN, .clk = CLOCK_APB1, @@ -256,15 +273,24 @@ static const i2c_conf_t i2c_config[] = { */ static const pwm_conf_t pwm_config[] = { { - .dev = TIM1, - .rcc_mask = RCC_APB2ENR_TIM1EN, - .chan = { { .pin = GPIO_PIN(PORT_A, 8), .cc_chan = 0 }, - { .pin = GPIO_PIN(PORT_A, 9), .cc_chan = 1 }, - { .pin = GPIO_PIN(PORT_A, 10), .cc_chan = 2 }, - { .pin = GPIO_PIN(PORT_A, 11), .cc_chan = 3 } }, + .dev = TIM3, + .rcc_mask = RCC_APB1ENR_TIM3EN, + /* by default TIM3 is routed to PA6 (cc_chan 0) and PA7 (cc_chan 1) */ + .remap = AFIO_MAPR_TIM3_REMAP_1, + .chan = { + { .pin = GPIO_PIN(PORT_B, 4), .cc_chan = 0 }, + { .pin = GPIO_PIN(PORT_B, 5), .cc_chan = 1 }, +#if !defined(BOARD_BLACKPILL) && !defined(BOARD_BLACKPILL_128KIB) + /* The blackpill has a few pins less. PB0 and PB1 are + * among the GPIOs not exposed due to the lower + * pincount */ + { .pin = GPIO_PIN(PORT_B, 0), .cc_chan = 2 }, + { .pin = GPIO_PIN(PORT_B, 1), .cc_chan = 3 }, +#endif + }, .af = GPIO_AF_OUT_PP, - .bus = APB2 - } + .bus = APB1, + }, }; #define PWM_NUMOF ARRAY_SIZE(pwm_config) @@ -275,6 +301,22 @@ static const pwm_conf_t pwm_config[] = { * @{ */ static const spi_conf_t spi_config[] = { + { + .dev = SPI2, + .mosi_pin = GPIO_PIN(PORT_B, 15), + .miso_pin = GPIO_PIN(PORT_B, 14), + .sclk_pin = GPIO_PIN(PORT_B, 13), + .cs_pin = GPIO_PIN(PORT_B, 12), + .rccmask = RCC_APB1ENR_SPI2EN, + .apbbus = APB1, +#ifdef MODULE_PERIPH_DMA + .tx_dma = 3, + .tx_dma_chan = DMA_CHAN_CONFIG_UNSUPPORTED, + .rx_dma = 2, + .rx_dma_chan = DMA_CHAN_CONFIG_UNSUPPORTED +#endif + }, +#ifndef MODULE_PERIPH_ADC { .dev = SPI1, .mosi_pin = GPIO_PIN(PORT_A, 7), @@ -290,21 +332,7 @@ static const spi_conf_t spi_config[] = { .rx_dma_chan = DMA_CHAN_CONFIG_UNSUPPORTED #endif }, - { - .dev = SPI2, - .mosi_pin = GPIO_PIN(PORT_B, 15), - .miso_pin = GPIO_PIN(PORT_B, 14), - .sclk_pin = GPIO_PIN(PORT_B, 13), - .cs_pin = GPIO_PIN(PORT_B, 12), - .rccmask = RCC_APB1ENR_SPI2EN, - .apbbus = APB1, -#ifdef MODULE_PERIPH_DMA - .tx_dma = 3, - .tx_dma_chan = DMA_CHAN_CONFIG_UNSUPPORTED, - .rx_dma = 2, - .rx_dma_chan = DMA_CHAN_CONFIG_UNSUPPORTED #endif - } }; #define SPI_NUMOF ARRAY_SIZE(spi_config) diff --git a/doc/doxygen/src/pinouts/pinout-bluepill.svg b/doc/doxygen/src/pinouts/pinout-bluepill.svg new file mode 100644 index 0000000000..d9654875cb --- /dev/null +++ b/doc/doxygen/src/pinouts/pinout-bluepill.svg @@ -0,0 +1,4710 @@ + + + + + + + Legend + + + + + + + + + + + Input + + + + + + + + + + + Output + + + + + + + + + I/O + + + + + + + + + Analog + + + + + + + + + PWM + + + + + + + + + SPI + + + + + + + + + I2C + + + + + + + + + UART + + + + + + + + + Power + + + + Internally Connected to ADC + + + + + + + + + NTC + + + + A6 + + + + + + + + + VREF + + + + A7 + + + + Default Interface for STDIO + + + + + + + + + + + VAT + + + + + + + + + + + PC 13 + + + + LED1 + + + + + + + + + PC 14 + + + + + + + + + PC 15 + + + + + + + + + PA 0 + + + + A0 + + + + + + + + + PA 1 + + + + A1 + + + + + + + + + + + PA 2 + + + + TX1 + + + + + + + + + + + PA 3 + + + + RX1 + + + + + + + + + + + PA 4 + + + + A2 + + + + CS1 + + + + + + + + + + + PA 5 + + + + A3 + + + + SCLK1 + + + + + + + + + + + PA 6 + + + + A4 + + + + MISO1 + + + + + + + + + + + PA 7 + + + + A5 + + + + MOSI1 + + + + + + + + + + + PB 0 + + + + A8 + + + + PWM2 + + + + + + + + + + + PB 1 + + + + A9 + + + + PWM3 + + + + + + + + + + + PB 10 + + + + SCL1 + + + + TX2 + + + + + + + + + + + PB 11 + + + + SDA1 + + + + RX2 + + + + + + + + + + + RESET + + + + + + + + + + + +3.3V + + + + + + + + + + + GND + + + + + + + + + + + GND + + + + + + + + + + + +3.3V + + + + + + + + + + + GND + + + + + + + + + + + +5V + + + + + + + + + PB 9 + + + + SDA0 + + + + + + + + + PB 8 + + + + SCL0 + + + + + + + + + + + PB 7 + + + + QDEC0-B + + + + + + + + + + + PB 6 + + + + QDEC0-A + + + + + + + + + + + PB 5 + + + + PWM1 + + + + + + + + + PB 4 + + + + PWM0 + + + + QDEC1-A + + + + + + + + + + + PB 3 + + + + QDEC1-B + + + + + + + + + PA 15 + + + + + + + + + PA 12 + + + + USB D+ + stdio + + + + + + + + + PA 11 + + + + USB D- + stdio + + + + + + + + + + + PA 10 + + + + stdio + + + + TX0 + + + + + + + + + + + PA 9 + + + + stdio + + + + RX0 + + + + QDEC2-A + + + + + + + + + PA 8 + + + + QDEC2-B + + + + + + + + + + + PB 15 + + + + MOSI0 + + + + + + + + + + + PB 14 + + + + MISO0 + + + + + + + + + + + PB 13 + + + + SCLK0 + + + + + + + + + + + PB 12 + + + + CS0 + + UART for STM32F103C8 (64 KiB flash)USB for STM32F103CB (128 KiB flash) +