Update ARM split keyboard docs (#9160)
* Update ARM split keyboard docs * Update docs/serial_driver.md Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
		
							parent
							
								
									179e5c018f
								
							
						
					
					
						commit
						6d84795bc1
					
				
					 3 changed files with 26 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -8,9 +8,20 @@ QMK Firmware has a generic implementation that is usable by any board, as well a
 | 
			
		|||
 | 
			
		||||
For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards. 
 | 
			
		||||
 | 
			
		||||
!> ARM is not yet supported for Split Keyboards.  Progress is being made, but we are not quite there, yet. 
 | 
			
		||||
!> ARM is not yet fully supported for Split Keyboards and has many limitations. Progress is being made, but we have not yet reached 100% feature parity.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Compatibility Overview
 | 
			
		||||
 | 
			
		||||
| Transport                    | AVR                | ARM                |
 | 
			
		||||
|------------------------------|--------------------|--------------------|
 | 
			
		||||
| ['serial'](serial_driver.md) | :heavy_check_mark: | :white_check_mark: <sup>1</sup> |
 | 
			
		||||
| I2C                          | :heavy_check_mark: |                    |
 | 
			
		||||
 | 
			
		||||
Notes:
 | 
			
		||||
 | 
			
		||||
1. Both hardware and software limitations are detailed within the [driver documentation](serial_driver.md).
 | 
			
		||||
 | 
			
		||||
## Hardware Configuration
 | 
			
		||||
 | 
			
		||||
This assumes that you're using two Pro Micro-compatible controllers, and are using TRRS jacks to connect to two halves. 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,7 +36,7 @@ These are defaults based on what has been implemented for ARM boards.
 | 
			
		|||
| [RGB Lighting](feature_rgblight.md) | Disabled                                                                                                         |
 | 
			
		||||
| [Backlight](feature_backlight.md)   | Forces [task driven PWM](feature_backlight.md#software-pwm-driver) until ARM can provide automatic configuration |
 | 
			
		||||
| USB Host (e.g. USB-USB converter)   | Not supported (USB host code is AVR specific and is not currently supported on ARM)                              |
 | 
			
		||||
| [Split keyboards](feature_split_keyboard.md) | Not supported yet                                                                                       |
 | 
			
		||||
| [Split keyboards](feature_split_keyboard.md) | Partial - heavily dependent on enabled features                                                         |
 | 
			
		||||
 | 
			
		||||
## Manual Conversion
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
# 'serial' Driver
 | 
			
		||||
This driver powers the [Split Keyboard](feature_split_keyboard.md) feature.
 | 
			
		||||
 | 
			
		||||
!> Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards.
 | 
			
		||||
?> Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards.
 | 
			
		||||
 | 
			
		||||
All drivers in this category have the following characteristics:
 | 
			
		||||
* Provides data and signaling over a single conductor
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +11,7 @@ All drivers in this category have the following characteristics:
 | 
			
		|||
 | 
			
		||||
|                   | AVR                | ARM                |
 | 
			
		||||
|-------------------|--------------------|--------------------|
 | 
			
		||||
| bit bang          | :heavy_check_mark: | Soon™              |
 | 
			
		||||
| bit bang          | :heavy_check_mark: | :heavy_check_mark: |
 | 
			
		||||
| USART Half-duplex |                    | :heavy_check_mark: |
 | 
			
		||||
 | 
			
		||||
## Driver configuration
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +35,12 @@ Configure the driver via your config.h:
 | 
			
		|||
                                   //  5: about 20kbps
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### ARM
 | 
			
		||||
 | 
			
		||||
!> The bitbang driver causes connection issues with bitbang WS2812 driver
 | 
			
		||||
 | 
			
		||||
Along with the generic options above, you must also turn on the `PAL_USE_CALLBACKS` feature in your halconf.h.
 | 
			
		||||
 | 
			
		||||
### USART Half-duplex
 | 
			
		||||
Targeting STM32 boards where communication is offloaded to a USART hardware device. The advantage is that this provides fast and accurate timings. `SOFT_SERIAL_PIN` for this driver is the configured USART TX pin. **The TX pin must have appropriate pull-up resistors**. To configure it, add this to your rules.mk:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -56,4 +62,8 @@ Configure the hardware via your config.h:
 | 
			
		|||
#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You must also turn on the SERIAL feature in your halconf.h and mcuconf.h
 | 
			
		||||
You must also enable the ChibiOS `SERIAL` feature:
 | 
			
		||||
* In your board's halconf.h: `#define HAL_USE_SERIAL TRUE`
 | 
			
		||||
* In your board's mcuconf.h: `#define STM32_SERIAL_USE_USARTn TRUE` (where 'n' matches the peripheral number of your selected USART on the MCU)
 | 
			
		||||
 | 
			
		||||
Do note that the configuration required is for the `SERIAL` peripheral, not the `UART` peripheral.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue