Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		@@ -72,7 +72,9 @@ WS2812_DRIVER = spi
 | 
			
		||||
Configure the hardware via your config.h:
 | 
			
		||||
```c
 | 
			
		||||
#define WS2812_SPI SPID1 // default: SPID1
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 5 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 5 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B3 // Required for F072, may be for others -- SCK pin, see the respective datasheet for the appropriate values for your MCU. default: unspecified
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 5 // SCK pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You must also turn on the SPI feature in your halconf.h and mcuconf.h
 | 
			
		||||
@@ -101,8 +103,8 @@ Only divisors of 2, 4, 8, 16, 32, 64, 128 and 256 are supported by hardware.
 | 
			
		||||
While not an exhaustive list, the following table provides the scenarios that have been partially validated:
 | 
			
		||||
 | 
			
		||||
|      | SPI1                                        | SPI2                                    | SPI3                  |
 | 
			
		||||
|-|-|-|-|
 | 
			
		||||
| f072 | ? | B15 :heavy_check_mark: | N/A |
 | 
			
		||||
|------|---------------------------------------------|-----------------------------------------|-----------------------|
 | 
			
		||||
| f072 | ?                                           | B15 :heavy_check_mark: (needs SCK: B13) | N/A                   |
 | 
			
		||||
| f103 | A7 :heavy_check_mark:                       | B15 :heavy_check_mark:                  | N/A                   |
 | 
			
		||||
| f303 | A7 :heavy_check_mark: B5 :heavy_check_mark: | B15 :heavy_check_mark:                  | B5 :heavy_check_mark: |
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,19 +16,23 @@
 | 
			
		||||
#    define WS2812_SPI_MOSI_PAL_MODE 5
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef WS2812_SPI_SCK_PAL_MODE
 | 
			
		||||
#    define WS2812_SPI_SCK_PAL_MODE 5
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Push Pull or Open Drain Configuration
 | 
			
		||||
// Default Push Pull
 | 
			
		||||
#ifndef WS2812_EXTERNAL_PULLUP
 | 
			
		||||
#    if defined(USE_GPIOV1)
 | 
			
		||||
#        define WS2812_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL
 | 
			
		||||
#        define WS2812_MOSI_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL
 | 
			
		||||
#    else
 | 
			
		||||
#        define WS2812_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL
 | 
			
		||||
#        define WS2812_MOSI_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL
 | 
			
		||||
#    endif
 | 
			
		||||
#else
 | 
			
		||||
#    if defined(USE_GPIOV1)
 | 
			
		||||
#        define WS2812_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_OPENDRAIN
 | 
			
		||||
#        define WS2812_MOSI_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_OPENDRAIN
 | 
			
		||||
#    else
 | 
			
		||||
#        define WS2812_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN
 | 
			
		||||
#        define WS2812_MOSI_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN
 | 
			
		||||
#    endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -63,6 +67,12 @@
 | 
			
		||||
#    define WS2812_SPI_BUFFER_MODE 0  // normal buffer
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(USE_GPIOV1)
 | 
			
		||||
#    define WS2812_SCK_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL
 | 
			
		||||
#else
 | 
			
		||||
#    define WS2812_SCK_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BYTES_FOR_LED_BYTE 4
 | 
			
		||||
#define NB_COLORS 3
 | 
			
		||||
#define BYTES_FOR_LED (BYTES_FOR_LED_BYTE * NB_COLORS)
 | 
			
		||||
@@ -109,7 +119,11 @@ static void set_led_color_rgb(LED_TYPE color, int pos) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ws2812_init(void) {
 | 
			
		||||
    palSetLineMode(RGB_DI_PIN, WS2812_OUTPUT_MODE);
 | 
			
		||||
    palSetLineMode(RGB_DI_PIN, WS2812_MOSI_OUTPUT_MODE);
 | 
			
		||||
 | 
			
		||||
#ifdef WS2812_SPI_SCK_PIN
 | 
			
		||||
    palSetLineMode(WS2812_SPI_SCK_PIN, WS2812_SCK_OUTPUT_MODE);
 | 
			
		||||
#endif  // WS2812_SPI_SCK_PIN
 | 
			
		||||
 | 
			
		||||
    // TODO: more dynamic baudrate
 | 
			
		||||
    static const SPIConfig spicfg = {WS2812_SPI_BUFFER_MODE, NULL, PAL_PORT(RGB_DI_PIN), PAL_PAD(RGB_DI_PIN), WS2812_SPI_DIVISOR};
 | 
			
		||||
 
 | 
			
		||||
@@ -51,6 +51,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
//SPI
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
#define WS2812_EXTERNAL_PULLUP
 | 
			
		||||
 | 
			
		||||
// I2C OLED defines
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 14
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGB_DI_PIN B15
 | 
			
		||||
#define RGBLED_NUM 22
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 
 | 
			
		||||
@@ -55,6 +55,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGB_DI_PIN B15
 | 
			
		||||
#define RGBLED_NUM 20
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 20
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 14
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 20
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 20
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 8
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 2
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 20
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 22
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 20
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 
 | 
			
		||||
@@ -100,6 +100,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
#define WS2812_SPI SPID2 // default: SPID1
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN B15
 | 
			
		||||
#ifdef RGB_DI_PIN
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 3
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
/* Set 0 if debouncing isn't needed */
 | 
			
		||||
#define DEBOUNCE    5
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 14
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
#define INDICATOR_PIN_0 A0
 | 
			
		||||
#define INDICATOR_PIN_1 A1
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#define RGBLED_NUM 14
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
#define INDICATOR_PIN_0 A9
 | 
			
		||||
#define INDICATOR_PIN_1 A8
 | 
			
		||||
 
 | 
			
		||||
@@ -67,6 +67,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
// SPI RGB Driver
 | 
			
		||||
#define WS2812_SPI SPID2
 | 
			
		||||
#define WS2812_SPI_MOSI_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PAL_MODE 0
 | 
			
		||||
#define WS2812_SPI_SCK_PIN B13
 | 
			
		||||
 | 
			
		||||
// OLED defines
 | 
			
		||||
#define OLED_TIMEOUT 60000
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user