Skip to content

New Variant BluePill F103C6 (32K) #420

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jan 31, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 13 additions & 4 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -527,21 +527,30 @@ GenF1.build.series=STM32F1xx
GenF1.build.cmsis_lib_gcc=arm_cortexM3l_math
GenF1.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}

# BLUEPILL_F103C6 board
# Support: Serial2 (USART2 on PA3, PA2)
GenF1.menu.pnum.BLUEPILL_F103C6=BluePill F103C6 (32K)
GenF1.menu.pnum.BLUEPILL_F103C6.upload.maximum_size=32768
GenF1.menu.pnum.BLUEPILL_F103C6.upload.maximum_data_size=10240
GenF1.menu.pnum.BLUEPILL_F103C6.build.board=BLUEPILL_F103C6
GenF1.menu.pnum.BLUEPILL_F103C6.build.product_line=STM32F103x6
GenF1.menu.pnum.BLUEPILL_F103C6.build.variant=BLUEPILL_F103XX

# BLUEPILL_F103C8 board
# Support: Serial2 (USART2 on PA3, PA2) and Serial3 (USART3 on PB11, PB10)
GenF1.menu.pnum.BLUEPILL_F103C8=BluePill F103C8
GenF1.menu.pnum.BLUEPILL_F103C8.upload.maximum_size=65536
GenF1.menu.pnum.BLUEPILL_F103C8.upload.maximum_data_size=20480
GenF1.menu.pnum.BLUEPILL_F103C8.build.board=BLUEPILL_F103C8
GenF1.menu.pnum.BLUEPILL_F103C8.build.product_line=STM32F103xB
GenF1.menu.pnum.BLUEPILL_F103C8.build.variant=BLUEPILL_F103C8
GenF1.menu.pnum.BLUEPILL_F103C8.build.variant=BLUEPILL_F103XX

GenF1.menu.pnum.BLUEPILL_F103C8B=BluePill F103C8 (128k)
GenF1.menu.pnum.BLUEPILL_F103C8B.upload.maximum_size=131072
GenF1.menu.pnum.BLUEPILL_F103C8B.upload.maximum_data_size=20480
GenF1.menu.pnum.BLUEPILL_F103C8B.build.board=BLUEPILL_F103C8
GenF1.menu.pnum.BLUEPILL_F103C8B.build.product_line=STM32F103xB
GenF1.menu.pnum.BLUEPILL_F103C8B.build.variant=BLUEPILL_F103C8
GenF1.menu.pnum.BLUEPILL_F103C8B.build.variant=BLUEPILL_F103XX

# BLACKPILL_F103C8 board
# Support: Serial2 (USART2 on PA3, PA2) and Serial3 (USART3 on PB11, PB10)
Expand All @@ -550,14 +559,14 @@ GenF1.menu.pnum.BLACKPILL_F103C8.upload.maximum_size=65536
GenF1.menu.pnum.BLACKPILL_F103C8.upload.maximum_data_size=20480
GenF1.menu.pnum.BLACKPILL_F103C8.build.board=BLACKPILL_F103C8
GenF1.menu.pnum.BLACKPILL_F103C8.build.product_line=STM32F103xB
GenF1.menu.pnum.BLACKPILL_F103C8.build.variant=BLUEPILL_F103C8
GenF1.menu.pnum.BLACKPILL_F103C8.build.variant=BLUEPILL_F103XX

GenF1.menu.pnum.BLACKPILL_F103C8B=BlackPill F103C8 (128k)
GenF1.menu.pnum.BLACKPILL_F103C8B.upload.maximum_size=131072
GenF1.menu.pnum.BLACKPILL_F103C8B.upload.maximum_data_size=20480
GenF1.menu.pnum.BLACKPILL_F103C8B.build.board=BLACKPILL_F103C8
GenF1.menu.pnum.BLACKPILL_F103C8B.build.product_line=STM32F103xB
GenF1.menu.pnum.BLACKPILL_F103C8B.build.variant=BLUEPILL_F103C8
GenF1.menu.pnum.BLACKPILL_F103C8B.build.variant=BLUEPILL_F103XX

# MAPLEMINI_F103CB board
# Support: Serial2 (USART2 on PA3, PA2) and Serial3 (USART3 on PB11, PB10)
Expand Down
4 changes: 4 additions & 0 deletions cores/arduino/stm32/PinAF_STM32F1.h
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ static inline void pin_SetF1AFPin(uint32_t afnum)
case AFIO_USART2_DISABLE:
__HAL_AFIO_REMAP_USART2_DISABLE();
break;
#if defined(AFIO_MAPR_USART3_REMAP)
case AFIO_USART3_ENABLE:
__HAL_AFIO_REMAP_USART3_ENABLE();
break;
Expand All @@ -232,6 +233,7 @@ static inline void pin_SetF1AFPin(uint32_t afnum)
case AFIO_USART3_DISABLE:
__HAL_AFIO_REMAP_USART3_DISABLE();
break;
#endif
case AFIO_TIM1_ENABLE:
__HAL_AFIO_REMAP_TIM1_ENABLE();
break;
Expand Down Expand Up @@ -262,12 +264,14 @@ static inline void pin_SetF1AFPin(uint32_t afnum)
case AFIO_TIM3_DISABLE:
__HAL_AFIO_REMAP_TIM3_DISABLE();
break;
#if defined(AFIO_MAPR_TIM4_REMAP)
case AFIO_TIM4_ENABLE:
__HAL_AFIO_REMAP_TIM4_ENABLE();
break;
case AFIO_TIM4_DISABLE:
__HAL_AFIO_REMAP_TIM4_DISABLE();
break;
#endif
#if defined(AFIO_MAPR_CAN_REMAP1)
case AFIO_CAN1_1:
__HAL_AFIO_REMAP_CAN1_1();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************
* Automatically generated from STM32F103C(8-B)Tx.xml
* Automatically generated from STM32F103C(4-6)|(8-B)Tx.xml
*/
#include "Arduino.h"
#include "PeripheralPins.h"
Expand Down Expand Up @@ -73,7 +73,9 @@ const PinMap PinMap_ADC[] = {
const PinMap PinMap_I2C_SDA[] = {
{PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)},
{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_I2C1_ENABLE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)},
#endif
{NC, NP, 0}
};
#endif
Expand All @@ -82,7 +84,9 @@ const PinMap PinMap_I2C_SDA[] = {
const PinMap PinMap_I2C_SCL[] = {
{PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)},
{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_I2C1_ENABLE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)},
#endif
{NC, NP, 0}
};
#endif
Expand Down Expand Up @@ -122,10 +126,12 @@ const PinMap PinMap_PWM[] = {
{PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 2, 0)}, // TIM2_CH2
{PB_4, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 1, 0)}, // TIM3_CH1
{PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 2, 0)}, // TIM3_CH2
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM4_CH1
{PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM4_CH2
{PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM4_CH3
{PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM4_CH4
#endif
// {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 3, 0)}, // TIM2_CH3
{PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 3, 0)}, // TIM2_CH3
// {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 4, 0)}, // TIM2_CH4
Expand All @@ -144,7 +150,9 @@ const PinMap PinMap_UART_TX[] = {
{PA_2, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
{PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
{PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART1_ENABLE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
#endif
{NC, NP, 0}
};
#endif
Expand All @@ -154,7 +162,9 @@ const PinMap PinMap_UART_RX[] = {
{PA_3, USART2, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)},
{PA_10, USART1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)},
{PB_7, USART1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART1_ENABLE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_11, USART3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)},
#endif
{NC, NP, 0}
};
#endif
Expand All @@ -163,8 +173,10 @@ const PinMap PinMap_UART_RX[] = {
const PinMap PinMap_UART_RTS[] = {
{PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
{PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
// {PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)},
#endif
{NC, NP, 0}
};
#endif
Expand All @@ -173,8 +185,10 @@ const PinMap PinMap_UART_RTS[] = {
const PinMap PinMap_UART_CTS[] = {
{PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
{PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
// {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)},
#endif
{NC, NP, 0}
};
#endif
Expand All @@ -185,7 +199,9 @@ const PinMap PinMap_UART_CTS[] = {
const PinMap PinMap_SPI_MOSI[] = {
{PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
{PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
#endif
{NC, NP, 0}
};
#endif
Expand All @@ -194,7 +210,9 @@ const PinMap PinMap_SPI_MOSI[] = {
const PinMap PinMap_SPI_MISO[] = {
{PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
#endif
{NC, NP, 0}
};
#endif
Expand All @@ -203,7 +221,9 @@ const PinMap PinMap_SPI_MISO[] = {
const PinMap PinMap_SPI_SCLK[] = {
{PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
#endif
{NC, NP, 0}
};
#endif
Expand All @@ -212,7 +232,9 @@ const PinMap PinMap_SPI_SCLK[] = {
const PinMap PinMap_SPI_SSEL[] = {
{PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)},
#ifndef ARDUINO_BLUEPILL_F103C6
{PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)},
#endif
{NC, NP, 0}
};
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
** File : ldscript.ld
**
** Abstract : Linker script for STM32F103C(8-B)Tx Device with
** 64/128KByte FLASH, 20KByte RAM
** 32/64/128KByte FLASH, 10/20KByte RAM
**
** Set heap size, stack size and stack location according
** to application requirements.
Expand Down Expand Up @@ -52,15 +52,15 @@
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
_estack = 0x20005000; /* end of RAM */
_estack = 0x20000000 + LD_MAX_DATA_SIZE; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
_Min_Stack_Size = 0x400; /* required amount of stack */

/* Specify the memory areas */
MEMORY
{
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = LD_MAX_DATA_SIZE
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = LD_MAX_SIZE
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ extern const PinName digitalPin[];

// Timer Definitions
// Do not use timer used by PWM pins when possible. See PinMap_PWM.
#define TIMER_TONE TIM4
#define TIMER_TONE TIM3

// Do not use basic timer: OC is required
#define TIMER_SERVO TIM2 //TODO: advanced-control timers don't work
Expand Down