planck/rev6: Enable WS2812 LED matrix with pwm drivers (#9735)
* planck/rev6: Enable WS2812 LED matrix with pwm drivers * Comments and cleanup. * GPL2+ Licensing Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
		
						commit
						08b405e1e9
					
				
							
								
								
									
										21
									
								
								keyboards/planck/rev6/chconf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/planck/rev6/chconf.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| /* Copyright 2020 QMK Contributors
 | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
|  */ | ||||
| 
 | ||||
| // Need to override the SysTick timer to use TIM3 -- this is a 16-bit timer on F303
 | ||||
| // so we need to change resolution and frequency to match.
 | ||||
| #define CH_CFG_ST_RESOLUTION 16 | ||||
| #define CH_CFG_ST_FREQUENCY 10000 | ||||
| #include_next "chconf.h" | ||||
| @ -126,17 +126,18 @@ | ||||
| /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ | ||||
| //#define MIDI_TONE_KEYCODE_OCTAVES 1
 | ||||
| 
 | ||||
| // #define WS2812_LED_N 2
 | ||||
| // #define RGBLED_NUM WS2812_LED_N
 | ||||
| // #define WS2812_TIM_N 2
 | ||||
| // #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_EXTERNAL_PULLUP
 | ||||
| 
 | ||||
| /*
 | ||||
|  * WS2812 Underglow Matrix options | ||||
|  */ | ||||
| #define RGB_DI_PIN A1 | ||||
| #define RGBLED_NUM 9 | ||||
| #define RGBLIGHT_ANIMATIONS | ||||
| #define DRIVER_LED_TOTAL RGBLED_NUM | ||||
| 
 | ||||
| #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 | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
							
								
								
									
										30
									
								
								keyboards/planck/rev6/mcuconf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								keyboards/planck/rev6/mcuconf.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| /* Copyright 2020 QMK Contributors
 | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
|  */ | ||||
| 
 | ||||
| #include_next "mcuconf.h" | ||||
| 
 | ||||
| // The SysTick timer from the normal quantum/stm32 uses TIM2 -- the WS2812 pin used
 | ||||
| // on the Planck requires the use of TIM2 to run PWM -- rework which timers are
 | ||||
| // allocated for PWM usage.
 | ||||
| #undef STM32_PWM_USE_TIM2 | ||||
| #undef STM32_PWM_USE_TIM3 | ||||
| #define STM32_PWM_USE_TIM2 TRUE | ||||
| #define STM32_PWM_USE_TIM3 FALSE | ||||
| 
 | ||||
| // As mentioned above, we need to reallocate the SysTick timer used from
 | ||||
| // TIM2 to TIM3.
 | ||||
| #undef STM32_ST_USE_TIMER | ||||
| #define STM32_ST_USE_TIMER 3 | ||||
| @ -15,6 +15,25 @@ | ||||
|  */ | ||||
| #include "rev6.h" | ||||
| 
 | ||||
| led_config_t g_led_config = { { | ||||
|   // Key Matrix to LED Index
 | ||||
|   { NO_LED, 6,      NO_LED, NO_LED, 5,      NO_LED }, | ||||
|   { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, | ||||
|   { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0      }, | ||||
|   { NO_LED, 7,      NO_LED, NO_LED, 2,      NO_LED }, | ||||
|   { NO_LED, 4,      NO_LED, NO_LED, 3,      NO_LED }, | ||||
|   { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, | ||||
|   { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, | ||||
|   { NO_LED, 1,      NO_LED, NO_LED, 8,      NO_LED }, | ||||
| }, { | ||||
|   // LED Index to Physical Position
 | ||||
|   {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} | ||||
| }, { | ||||
|   // LED Index to Flag
 | ||||
|   LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, | ||||
|   LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL | ||||
| } }; | ||||
| 
 | ||||
| void matrix_init_kb(void) { | ||||
| 	matrix_init_user(); | ||||
| } | ||||
|  | ||||
| @ -18,13 +18,14 @@ AUDIO_ENABLE = yes           # Audio output | ||||
| UNICODE_ENABLE = no         # Unicode | ||||
| BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID | ||||
| RGBLIGHT_ENABLE = yes        # Enable WS2812 RGB underlight. | ||||
| WS2812_DRIVER = bitbang | ||||
| WS2812_DRIVER = pwm | ||||
| API_SYSEX_ENABLE = no | ||||
| 
 | ||||
| # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | ||||
| SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend | ||||
| #SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
 | ||||
| 
 | ||||
| RGB_MATRIX_ENABLE = WS2812 | ||||
| # SERIAL_LINK_ENABLE = yes
 | ||||
| ENCODER_ENABLE = yes | ||||
| DIP_SWITCH_ENABLE = yes | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user