Added MCU support for ArteryTek AT32F415 (#23445)
This commit is contained in:
parent
074bbbfb21
commit
39161b9ee7
32 changed files with 1065 additions and 63 deletions
|
@ -40,26 +40,53 @@
|
|||
|
||||
// Define SPI config speed
|
||||
// baudrate should target 3.2MHz
|
||||
#if defined(AT32F415)
|
||||
# if WS2812_SPI_DIVISOR == 2
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (0)
|
||||
# elif WS2812_SPI_DIVISOR == 4
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_0)
|
||||
# elif WS2812_SPI_DIVISOR == 8
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_1)
|
||||
# elif WS2812_SPI_DIVISOR == 16 // default
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0)
|
||||
# elif WS2812_SPI_DIVISOR == 32
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2)
|
||||
# elif WS2812_SPI_DIVISOR == 64
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_0)
|
||||
# elif WS2812_SPI_DIVISOR == 128
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1)
|
||||
# elif WS2812_SPI_DIVISOR == 256
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0)
|
||||
# elif WS2812_SPI_DIVISOR == 512
|
||||
# define WS2812_SPI_DIVISOR_CTRL2_MDIV_X (SPI_CTRL1_MDIV_3)
|
||||
# elif WS2812_SPI_DIVISOR == 1024
|
||||
# define WS2812_SPI_DIVISOR_CTRL2_MDIV_X (SPI_CTRL1_MDIV_3)
|
||||
# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_0)
|
||||
# else
|
||||
# error "Configured WS2812_SPI_DIVISOR value is not supported at this time."
|
||||
# endif
|
||||
#else
|
||||
// F072 fpclk = 48MHz
|
||||
// 48/16 = 3Mhz
|
||||
#if WS2812_SPI_DIVISOR == 2
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (0)
|
||||
#elif WS2812_SPI_DIVISOR == 4
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_0)
|
||||
#elif WS2812_SPI_DIVISOR == 8
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1)
|
||||
#elif WS2812_SPI_DIVISOR == 16 // default
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1 | SPI_CR1_BR_0)
|
||||
#elif WS2812_SPI_DIVISOR == 32
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2)
|
||||
#elif WS2812_SPI_DIVISOR == 64
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_0)
|
||||
#elif WS2812_SPI_DIVISOR == 128
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1)
|
||||
#elif WS2812_SPI_DIVISOR == 256
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0)
|
||||
#else
|
||||
# error "Configured WS2812_SPI_DIVISOR value is not supported at this time."
|
||||
# if WS2812_SPI_DIVISOR == 2
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (0)
|
||||
# elif WS2812_SPI_DIVISOR == 4
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_0)
|
||||
# elif WS2812_SPI_DIVISOR == 8
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1)
|
||||
# elif WS2812_SPI_DIVISOR == 16 // default
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1 | SPI_CR1_BR_0)
|
||||
# elif WS2812_SPI_DIVISOR == 32
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2)
|
||||
# elif WS2812_SPI_DIVISOR == 64
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_0)
|
||||
# elif WS2812_SPI_DIVISOR == 128
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1)
|
||||
# elif WS2812_SPI_DIVISOR == 256
|
||||
# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0)
|
||||
# else
|
||||
# error "Configured WS2812_SPI_DIVISOR value is not supported at this time."
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Use SPI circular buffer
|
||||
|
@ -176,8 +203,16 @@ void ws2812_init(void) {
|
|||
NULL, // error_cb
|
||||
PAL_PORT(WS2812_DI_PIN),
|
||||
PAL_PAD(WS2812_DI_PIN),
|
||||
# if defined(AT32F415)
|
||||
WS2812_SPI_DIVISOR_CTRL1_MDIV_X,
|
||||
# if (WS2812_SPI_DIVISOR == 512 || WS2812_SPI_DIVISOR == 1024)
|
||||
WS2812_SPI_DIVISOR_CTRL2_MDIV_X,
|
||||
# endif
|
||||
0
|
||||
# else
|
||||
WS2812_SPI_DIVISOR_CR1_BR_X,
|
||||
0
|
||||
# endif
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue