WS2812 PWM: prefix for DMA defines (#23111)
* WS2812 PWM: prefix for DMA defines * Add backward compatibility defines
This commit is contained in:
parent
3bf1ce5cf8
commit
569b0c70be
@ -208,9 +208,9 @@ The following `#define`s apply only to the `pwm` driver:
|
||||
|`WS2812_PWM_DRIVER` |`PWMD2` |The PWM driver to use |
|
||||
|`WS2812_PWM_CHANNEL` |`2` |The PWM channel to use |
|
||||
|`WS2812_PWM_PAL_MODE` |`2` |The pin alternative function to use |
|
||||
|`WS2812_DMA_STREAM` |`STM32_DMA1_STREAM2`|The DMA Stream for `TIMx_UP` |
|
||||
|`WS2812_DMA_CHANNEL` |`2` |The DMA Channel for `TIMx_UP` |
|
||||
|`WS2812_DMAMUX_ID` |*Not defined* |The DMAMUX configuration for `TIMx_UP` - only required if your MCU has a DMAMUX peripheral|
|
||||
|`WS2812_PWM_DMA_STREAM` |`STM32_DMA1_STREAM2`|The DMA Stream for `TIMx_UP` |
|
||||
|`WS2812_PWM_DMA_CHANNEL` |`2` |The DMA Channel for `TIMx_UP` |
|
||||
|`WS2812_PWM_DMAMUX_ID` |*Not defined* |The DMAMUX configuration for `TIMx_UP` - only required if your MCU has a DMAMUX peripheral|
|
||||
|`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) |
|
||||
|
||||
?> Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
|
||||
|
@ -28,5 +28,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -28,5 +28,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -28,5 +28,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -27,8 +27,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
||||
// If this is defined, the caps lock LED will turn on and off according to the state of caps lock. If not, the LED will shine like all other LEDs despite the caps lock state.
|
||||
#define CAPSLOCK_INDICATOR
|
||||
|
@ -28,8 +28,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
||||
// If this is defined, the caps lock LED will turn on and off according to the state of caps lock. If not, the LED will shine like all other LEDs despite the caps lock state.
|
||||
#define CAPSLOCK_INDICATOR
|
||||
|
@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
||||
#define EEPROM_I2C_24LC256
|
||||
|
@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/* RGB Light */
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
|
||||
|
@ -22,6 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
|
||||
|
@ -27,8 +27,8 @@
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
||||
|
||||
/* Serial configuration for split keyboard. */
|
||||
|
@ -30,8 +30,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
/* CRC. */
|
||||
#define CRC8_USE_TABLE
|
||||
|
@ -25,8 +25,8 @@
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
||||
|
||||
/* Serial configuration for split keyboard. */
|
||||
|
@ -30,8 +30,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
/* CRC. */
|
||||
#define CRC8_USE_TABLE
|
||||
|
@ -27,8 +27,8 @@
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
||||
|
||||
/* Serial configuration for split keyboard. */
|
||||
|
@ -30,8 +30,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
/* CRC. */
|
||||
#define CRC8_USE_TABLE
|
||||
|
@ -27,8 +27,8 @@
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
||||
|
||||
/* Serial configuration for split keyboard. */
|
||||
|
@ -30,8 +30,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
/* CRC. */
|
||||
#define CRC8_USE_TABLE
|
||||
|
@ -27,8 +27,8 @@
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
||||
|
||||
/* Serial configuration for split keyboard. */
|
||||
|
@ -30,8 +30,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
/* CRC. */
|
||||
#define CRC8_USE_TABLE
|
||||
|
@ -27,8 +27,8 @@
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
||||
|
||||
/* Serial configuration for split keyboard. */
|
||||
|
@ -30,8 +30,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
/* CRC. */
|
||||
#define CRC8_USE_TABLE
|
||||
|
@ -18,5 +18,5 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
@ -20,5 +20,5 @@
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 1 //TIM1_CH1N (AF1)
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_DMA_CHANNEL 7 //7 works, CxS[3:0] 0111 = TIM1_UP on Channel 6? (RM0394.pdf pg.298)
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_PWM_DMA_CHANNEL 7 //7 works, CxS[3:0] 0111 = TIM1_UP on Channel 6? (RM0394.pdf pg.298)
|
||||
|
@ -24,6 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
|
||||
|
@ -78,8 +78,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
||||
#define TAP_CODE_DELAY 10
|
||||
|
||||
|
@ -26,8 +26,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
||||
/* ADC - will be used for battery monitoring once BT support is added */
|
||||
/* #define ADC_PIN B0 */
|
||||
|
@ -28,8 +28,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
|
||||
/* I2C driver overrides */
|
||||
|
@ -19,7 +19,7 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
#define WAIT_FOR_USB
|
||||
|
@ -24,6 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
|
||||
|
@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
|
@ -26,8 +26,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_CHANNEL 1 // default: 2
|
||||
#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
|
||||
// #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
// #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
|
||||
#define DEBUG_LED_PIN C13
|
||||
|
||||
|
@ -27,8 +27,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
||||
|
||||
#define DEBUG_LED_PIN C13
|
||||
|
@ -19,5 +19,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 7
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 7
|
||||
|
@ -17,8 +17,8 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
@ -5,5 +5,5 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 7
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 7
|
||||
|
@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 7
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 7
|
||||
|
@ -24,6 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
|
||||
|
@ -7,9 +7,9 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD17
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 1
|
||||
// #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM17_UP
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 1
|
||||
// #define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM17_UP
|
||||
|
||||
#define INDICATOR_0 C9
|
||||
#define INDICATOR_1 C8
|
||||
|
@ -7,9 +7,9 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD17
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 1
|
||||
// #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM17_UP
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 1
|
||||
// #define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM17_UP
|
||||
|
||||
#define INDICATOR_0 C8
|
||||
#define INDICATOR_1 C7
|
||||
|
@ -19,5 +19,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
@ -18,5 +18,5 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1 // default: PWMD1
|
||||
#define WS2812_PWM_CHANNEL 2 // default: 2
|
||||
#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
|
@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1 // default: PWMD1
|
||||
#define WS2812_PWM_CHANNEL 2 // default: 2
|
||||
#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
|
@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
||||
#define EECONFIG_KB_DATA_SIZE (1)
|
||||
|
@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
||||
#define EECONFIG_KB_DATA_SIZE (1)
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
@ -5,6 +5,6 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
@ -5,6 +5,6 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_TARGET_PERIOD 800000
|
@ -22,5 +22,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
@ -20,5 +20,5 @@
|
||||
#define WS2812_PWM_CHANNEL 3 // default: 2
|
||||
//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
|
||||
#define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -46,8 +46,8 @@
|
||||
// #define WS2812_TIM_CH 2
|
||||
// #define PORT_WS2812 GPIOA
|
||||
// #define PIN_WS2812 1
|
||||
// #define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection)
|
||||
//#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP
|
||||
// #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection)
|
||||
//#define WS2812_PWM_DMA_CHANNEL 7 // DMA channel for TIMx_UP
|
||||
//#define WS2812_EXTERNAL_PULLUP
|
||||
|
||||
#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
|
||||
|
@ -46,5 +46,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
@ -46,5 +46,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
@ -27,8 +27,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
|
@ -44,5 +44,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
@ -44,5 +44,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 2
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 2
|
||||
|
@ -21,5 +21,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
|
@ -54,8 +54,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
#define TOUCH_UPDATE_INTERVAL 33
|
||||
#define OLED_UPDATE_INTERVAL 33
|
||||
|
@ -46,8 +46,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
#define TOUCH_UPDATE_INTERVAL 33
|
||||
#define OLED_UPDATE_INTERVAL 33
|
||||
|
@ -24,5 +24,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -25,5 +25,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -27,5 +27,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2 // default: 2
|
||||
#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
|
||||
/* Backlight options */
|
||||
|
||||
|
@ -33,9 +33,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
|
||||
# define WS2812_PWM_CHANNEL 4 // default: 2
|
||||
# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
|
||||
#else
|
||||
# define WS2812_DI_PIN D3
|
||||
# define SOFT_SERIAL_PIN D2
|
||||
|
@ -38,9 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
|
||||
# define WS2812_PWM_CHANNEL 4 // default: 2
|
||||
# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
|
||||
#else
|
||||
# define WS2812_DI_PIN D3
|
||||
# define SOFT_SERIAL_PIN D2
|
||||
|
@ -19,5 +19,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
|
@ -20,5 +20,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
|
@ -18,8 +18,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
@ -39,9 +39,9 @@
|
||||
#define WS2812_PWM_DRIVER PWMD20
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 3
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_DMA_CHANNEL 1
|
||||
#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM20_UP
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
|
||||
#define WS2812_PWM_DMA_CHANNEL 1
|
||||
#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM20_UP
|
||||
|
||||
// Audio configuration
|
||||
#define AUDIO_PIN A5
|
||||
|
@ -28,8 +28,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
#define RGB_ENABLE_PIN C0
|
||||
|
||||
// ADC Configuration
|
||||
|
@ -37,5 +37,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 6
|
||||
|
@ -11,8 +11,8 @@
|
||||
#define WS2812_PWM_CHANNEL 4 // CH4
|
||||
#define WS2812_PWM_PAL_MODE 2 // AF2
|
||||
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA1 Stream 2 for TIM3_UP (table 28 in reference manual)
|
||||
#define WS2812_DMA_CHANNEL 5 // DMA Channel 5 for TIM3_UP (table 28 in reference manual)
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA1 Stream 2 for TIM3_UP (table 28 in reference manual)
|
||||
#define WS2812_PWM_DMA_CHANNEL 5 // DMA Channel 5 for TIM3_UP (table 28 in reference manual)
|
||||
|
||||
|
||||
#define I2C1_CLOCK_SPEED 400000
|
||||
|
@ -20,8 +20,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
|
@ -40,9 +40,9 @@
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_DMA_CHANNEL 7
|
||||
#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM1_UP
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
|
||||
#define WS2812_PWM_DMA_CHANNEL 7
|
||||
#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM1_UP
|
||||
|
||||
// RGB Pullup
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
|
@ -23,8 +23,8 @@
|
||||
|
||||
# define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
|
||||
# define WS2812_PWM_CHANNEL 1 // default: 2
|
||||
# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
# define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -17,5 +17,5 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
|
@ -20,5 +20,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2 // default: 2
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -18,5 +18,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2 // default: 2
|
||||
#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
|
@ -18,5 +18,5 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
|
||||
#define WS2812_PWM_CHANNEL 2 // default: 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
|
@ -18,5 +18,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -19,5 +19,5 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -21,5 +21,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 2
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
@ -31,6 +31,6 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
#define WS2812_EXTERNAL_PULLUP
|
||||
|
@ -19,5 +19,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 7
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 7
|
||||
|
@ -5,5 +5,5 @@
|
||||
#define WS2812_PWM_DRIVER PWMD4
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_DMA_CHANNEL 7
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
|
||||
#define WS2812_PWM_DMA_CHANNEL 7
|
||||
|
@ -20,8 +20,8 @@
|
||||
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_DMA_CHANNEL 3
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
|
||||
#define WS2812_PWM_DMA_CHANNEL 3
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
@ -22,8 +22,8 @@
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 4
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 5
|
||||
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_PWM_DMA_CHANNEL 5
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
@ -77,11 +77,11 @@
|
||||
# ifndef WS2812_PWM_PAL_MODE
|
||||
# define WS2812_PWM_PAL_MODE 1
|
||||
# endif
|
||||
# ifndef WS2812_DMA_STREAM
|
||||
# define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
# ifndef WS2812_PWM_DMA_STREAM
|
||||
# define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
|
||||
# endif
|
||||
# ifndef WS2812_DMA_CHANNEL
|
||||
# define WS2812_DMA_CHANNEL 6
|
||||
# ifndef WS2812_PWM_DMA_CHANNEL
|
||||
# define WS2812_PWM_DMA_CHANNEL 6
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
@ -136,7 +136,7 @@ static const pio_program_t ws2812_program = {
|
||||
};
|
||||
|
||||
static uint32_t WS2812_BUFFER[WS2812_LED_COUNT];
|
||||
static const rp_dma_channel_t* WS2812_DMA_CHANNEL;
|
||||
static const rp_dma_channel_t* dma_channel;
|
||||
static uint32_t RP_DMA_MODE_WS2812;
|
||||
static int STATE_MACHINE = -1;
|
||||
|
||||
@ -236,9 +236,9 @@ bool ws2812_init(void) {
|
||||
pio_sm_init(pio, STATE_MACHINE, offset, &config);
|
||||
pio_sm_set_enabled(pio, STATE_MACHINE, true);
|
||||
|
||||
WS2812_DMA_CHANNEL = dmaChannelAlloc(RP_DMA_CHANNEL_ID_ANY, RP_DMA_PRIORITY_WS2812, (rp_dmaisr_t)ws2812_dma_callback, NULL);
|
||||
dmaChannelEnableInterruptX(WS2812_DMA_CHANNEL);
|
||||
dmaChannelSetDestinationX(WS2812_DMA_CHANNEL, (uint32_t)&pio->txf[STATE_MACHINE]);
|
||||
dma_channel = dmaChannelAlloc(RP_DMA_CHANNEL_ID_ANY, RP_DMA_PRIORITY_WS2812, (rp_dmaisr_t)ws2812_dma_callback, NULL);
|
||||
dmaChannelEnableInterruptX(dma_channel);
|
||||
dmaChannelSetDestinationX(dma_channel, (uint32_t)&pio->txf[STATE_MACHINE]);
|
||||
|
||||
// clang-format off
|
||||
RP_DMA_MODE_WS2812 = DMA_CTRL_TRIG_INCR_READ |
|
||||
@ -256,7 +256,7 @@ static inline void sync_ws2812_transfer(void) {
|
||||
// count of LEDs in milliseconds. This is safely much longer than it
|
||||
// would take to push all the data out.
|
||||
dprintln("ERROR: WS2812 DMA transfer has stalled, aborting!");
|
||||
dmaChannelDisableX(WS2812_DMA_CHANNEL);
|
||||
dmaChannelDisableX(dma_channel);
|
||||
pio_sm_clear_fifos(pio, STATE_MACHINE);
|
||||
pio_sm_restart(pio, STATE_MACHINE);
|
||||
chSemReset(&TRANSFER_COUNTER, 0);
|
||||
@ -284,8 +284,8 @@ void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) {
|
||||
#endif
|
||||
}
|
||||
|
||||
dmaChannelSetSourceX(WS2812_DMA_CHANNEL, (uint32_t)WS2812_BUFFER);
|
||||
dmaChannelSetCounterX(WS2812_DMA_CHANNEL, leds);
|
||||
dmaChannelSetModeX(WS2812_DMA_CHANNEL, RP_DMA_MODE_WS2812);
|
||||
dmaChannelEnableX(WS2812_DMA_CHANNEL);
|
||||
dmaChannelSetSourceX(dma_channel, (uint32_t)WS2812_BUFFER);
|
||||
dmaChannelSetCounterX(dma_channel, leds);
|
||||
dmaChannelSetModeX(dma_channel, RP_DMA_MODE_WS2812);
|
||||
dmaChannelEnableX(dma_channel);
|
||||
}
|
||||
|
@ -2,6 +2,18 @@
|
||||
#include "gpio.h"
|
||||
#include "chibios_config.h"
|
||||
|
||||
// ======== DEPRECATED DEFINES - DO NOT USE ========
|
||||
#ifdef WS2812_DMA_STREAM
|
||||
# define WS2812_PWM_DMA_STREAM WS2812_DMA_STREAM
|
||||
#endif
|
||||
#ifdef WS2812_DMA_CHANNEL
|
||||
# define WS2812_PWM_DMA_CHANNEL WS2812_DMA_CHANNEL
|
||||
#endif
|
||||
#ifdef WS2812_DMAMUX_ID
|
||||
# define WS2812_PWM_DMAMUX_ID WS2812_DMAMUX_ID
|
||||
#endif
|
||||
// ========
|
||||
|
||||
/* Adapted from https://github.com/joewa/WS2812-LED-Driver_ChibiOS/ */
|
||||
|
||||
#ifdef RGBW
|
||||
@ -19,14 +31,14 @@
|
||||
#ifndef WS2812_PWM_PAL_MODE
|
||||
# define WS2812_PWM_PAL_MODE 2 // DI Pin's alternate function value
|
||||
#endif
|
||||
#ifndef WS2812_DMA_STREAM
|
||||
# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP
|
||||
#ifndef WS2812_PWM_DMA_STREAM
|
||||
# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP
|
||||
#endif
|
||||
#ifndef WS2812_DMA_CHANNEL
|
||||
# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP
|
||||
#ifndef WS2812_PWM_DMA_CHANNEL
|
||||
# define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP
|
||||
#endif
|
||||
#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) && !defined(WS2812_DMAMUX_ID)
|
||||
# error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM?_UP"
|
||||
#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) && !defined(WS2812_PWM_DMAMUX_ID)
|
||||
# error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM?_UP"
|
||||
#endif
|
||||
|
||||
/* Summarize https://www.st.com/resource/en/application_note/an4013-stm32-crossseries-timer-overview-stmicroelectronics.pdf to
|
||||
@ -270,20 +282,20 @@
|
||||
// For all other STM32 DMA transfer will automatically zero pad. We only need to set the right peripheral width.
|
||||
#if defined(STM32F2XX) || defined(STM32F4XX) || defined(STM32F7XX)
|
||||
# if defined(WS2812_PWM_TIMER_32BIT)
|
||||
# define WS2812_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_WORD
|
||||
# define WS2812_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_WORD
|
||||
# define WS2812_PWM_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_WORD
|
||||
# define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_WORD
|
||||
typedef uint32_t ws2812_buffer_t;
|
||||
# else
|
||||
# define WS2812_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_HWORD
|
||||
# define WS2812_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD
|
||||
# define WS2812_PWM_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_HWORD
|
||||
# define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD
|
||||
typedef uint16_t ws2812_buffer_t;
|
||||
# endif
|
||||
#else
|
||||
# define WS2812_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_BYTE
|
||||
# define WS2812_PWM_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_BYTE
|
||||
# if defined(WS2812_PWM_TIMER_32BIT)
|
||||
# define WS2812_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_WORD
|
||||
# define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_WORD
|
||||
# else
|
||||
# define WS2812_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD
|
||||
# define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD
|
||||
# endif
|
||||
typedef uint8_t ws2812_buffer_t;
|
||||
#endif
|
||||
@ -326,26 +338,26 @@ void ws2812_init(void) {
|
||||
// Configure DMA
|
||||
// dmaInit(); // Joe added this
|
||||
#if defined(WB32F3G71xx) || defined(WB32FQ95xx)
|
||||
dmaStreamAlloc(WS2812_DMA_STREAM - WB32_DMA_STREAM(0), 10, NULL, NULL);
|
||||
dmaStreamSetSource(WS2812_DMA_STREAM, ws2812_frame_buffer);
|
||||
dmaStreamSetDestination(WS2812_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register
|
||||
dmaStreamSetMode(WS2812_DMA_STREAM, WB32_DMA_CHCFG_HWHIF(WS2812_DMA_CHANNEL) | WB32_DMA_CHCFG_DIR_M2P | WB32_DMA_CHCFG_PSIZE_WORD | WB32_DMA_CHCFG_MSIZE_WORD | WB32_DMA_CHCFG_MINC | WB32_DMA_CHCFG_CIRC | WB32_DMA_CHCFG_TCIE | WB32_DMA_CHCFG_PL(3));
|
||||
dmaStreamAlloc(WS2812_PWM_DMA_STREAM - WB32_DMA_STREAM(0), 10, NULL, NULL);
|
||||
dmaStreamSetSource(WS2812_PWM_DMA_STREAM, ws2812_frame_buffer);
|
||||
dmaStreamSetDestination(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register
|
||||
dmaStreamSetMode(WS2812_PWM_DMA_STREAM, WB32_DMA_CHCFG_HWHIF(WS2812_PWM_DMA_CHANNEL) | WB32_DMA_CHCFG_DIR_M2P | WB32_DMA_CHCFG_PSIZE_WORD | WB32_DMA_CHCFG_MSIZE_WORD | WB32_DMA_CHCFG_MINC | WB32_DMA_CHCFG_CIRC | WB32_DMA_CHCFG_TCIE | WB32_DMA_CHCFG_PL(3));
|
||||
#else
|
||||
dmaStreamAlloc(WS2812_DMA_STREAM - STM32_DMA_STREAM(0), 10, NULL, NULL);
|
||||
dmaStreamSetPeripheral(WS2812_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register
|
||||
dmaStreamSetMemory0(WS2812_DMA_STREAM, ws2812_frame_buffer);
|
||||
dmaStreamSetMode(WS2812_DMA_STREAM, STM32_DMA_CR_CHSEL(WS2812_DMA_CHANNEL) | STM32_DMA_CR_DIR_M2P | WS2812_DMA_PERIPHERAL_WIDTH | WS2812_DMA_MEMORY_WIDTH | STM32_DMA_CR_MINC | STM32_DMA_CR_CIRC | STM32_DMA_CR_PL(3));
|
||||
dmaStreamAlloc(WS2812_PWM_DMA_STREAM - STM32_DMA_STREAM(0), 10, NULL, NULL);
|
||||
dmaStreamSetPeripheral(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register
|
||||
dmaStreamSetMemory0(WS2812_PWM_DMA_STREAM, ws2812_frame_buffer);
|
||||
dmaStreamSetMode(WS2812_PWM_DMA_STREAM, STM32_DMA_CR_CHSEL(WS2812_PWM_DMA_CHANNEL) | STM32_DMA_CR_DIR_M2P | WS2812_PWM_DMA_PERIPHERAL_WIDTH | WS2812_PWM_DMA_MEMORY_WIDTH | STM32_DMA_CR_MINC | STM32_DMA_CR_CIRC | STM32_DMA_CR_PL(3));
|
||||
#endif
|
||||
dmaStreamSetTransactionSize(WS2812_DMA_STREAM, WS2812_BIT_N);
|
||||
dmaStreamSetTransactionSize(WS2812_PWM_DMA_STREAM, WS2812_BIT_N);
|
||||
// M2P: Memory 2 Periph; PL: Priority Level
|
||||
|
||||
#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE)
|
||||
// If the MCU has a DMAMUX we need to assign the correct resource
|
||||
dmaSetRequestSource(WS2812_DMA_STREAM, WS2812_DMAMUX_ID);
|
||||
dmaSetRequestSource(WS2812_PWM_DMA_STREAM, WS2812_PWM_DMAMUX_ID);
|
||||
#endif
|
||||
|
||||
// Start DMA
|
||||
dmaStreamEnable(WS2812_DMA_STREAM);
|
||||
dmaStreamEnable(WS2812_PWM_DMA_STREAM);
|
||||
|
||||
// Configure PWM
|
||||
// NOTE: It's required that preload be enabled on the timer channel CCR register. This is currently enabled in the
|
||||
|
Loading…
Reference in New Issue
Block a user