aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/feature_split_keyboard.md13
-rw-r--r--docs/proton_c_conversion.md2
-rw-r--r--docs/serial_driver.md16
3 files changed, 26 insertions, 5 deletions
diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md
index 66194c5f4..63374a804 100644
--- a/docs/feature_split_keyboard.md
+++ b/docs/feature_split_keyboard.md
@@ -8,9 +8,20 @@ QMK Firmware has a generic implementation that is usable by any board, as well a
8 8
9For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards. 9For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards.
10 10
11!> ARM is not yet supported for Split Keyboards. Progress is being made, but we are not quite there, yet. 11!> 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.
12 12
13 13
14## Compatibility Overview
15
16| Transport | AVR | ARM |
17|------------------------------|--------------------|--------------------|
18| ['serial'](serial_driver.md) | :heavy_check_mark: | :white_check_mark: <sup>1</sup> |
19| I2C | :heavy_check_mark: | |
20
21Notes:
22
231. Both hardware and software limitations are detailed within the [driver documentation](serial_driver.md).
24
14## Hardware Configuration 25## Hardware Configuration
15 26
16This assumes that you're using two Pro Micro-compatible controllers, and are using TRRS jacks to connect to two halves. 27This assumes that you're using two Pro Micro-compatible controllers, and are using TRRS jacks to connect to two halves.
diff --git a/docs/proton_c_conversion.md b/docs/proton_c_conversion.md
index 98f1508a9..1b5e496e7 100644
--- a/docs/proton_c_conversion.md
+++ b/docs/proton_c_conversion.md
@@ -36,7 +36,7 @@ These are defaults based on what has been implemented for ARM boards.
36| [RGB Lighting](feature_rgblight.md) | Disabled | 36| [RGB Lighting](feature_rgblight.md) | Disabled |
37| [Backlight](feature_backlight.md) | Forces [task driven PWM](feature_backlight.md#software-pwm-driver) until ARM can provide automatic configuration | 37| [Backlight](feature_backlight.md) | Forces [task driven PWM](feature_backlight.md#software-pwm-driver) until ARM can provide automatic configuration |
38| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | 38| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) |
39| [Split keyboards](feature_split_keyboard.md) | Not supported yet | 39| [Split keyboards](feature_split_keyboard.md) | Partial - heavily dependent on enabled features |
40 40
41## Manual Conversion 41## Manual Conversion
42 42
diff --git a/docs/serial_driver.md b/docs/serial_driver.md
index 395b3ec3f..bc376b6dd 100644
--- a/docs/serial_driver.md
+++ b/docs/serial_driver.md
@@ -1,7 +1,7 @@
1# 'serial' Driver 1# 'serial' Driver
2This driver powers the [Split Keyboard](feature_split_keyboard.md) feature. 2This driver powers the [Split Keyboard](feature_split_keyboard.md) feature.
3 3
4!> Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards. 4?> Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards.
5 5
6All drivers in this category have the following characteristics: 6All drivers in this category have the following characteristics:
7* Provides data and signaling over a single conductor 7* Provides data and signaling over a single conductor
@@ -11,7 +11,7 @@ All drivers in this category have the following characteristics:
11 11
12| | AVR | ARM | 12| | AVR | ARM |
13|-------------------|--------------------|--------------------| 13|-------------------|--------------------|--------------------|
14| bit bang | :heavy_check_mark: | Soon™ | 14| bit bang | :heavy_check_mark: | :heavy_check_mark: |
15| USART Half-duplex | | :heavy_check_mark: | 15| USART Half-duplex | | :heavy_check_mark: |
16 16
17## Driver configuration 17## Driver configuration
@@ -35,6 +35,12 @@ Configure the driver via your config.h:
35 // 5: about 20kbps 35 // 5: about 20kbps
36``` 36```
37 37
38#### ARM
39
40!> The bitbang driver causes connection issues with bitbang WS2812 driver
41
42Along with the generic options above, you must also turn on the `PAL_USE_CALLBACKS` feature in your halconf.h.
43
38### USART Half-duplex 44### USART Half-duplex
39Targeting 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: 45Targeting 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:
40 46
@@ -56,4 +62,8 @@ Configure the hardware via your config.h:
56#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 62#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
57``` 63```
58 64
59You must also turn on the SERIAL feature in your halconf.h and mcuconf.h 65You must also enable the ChibiOS `SERIAL` feature:
66* In your board's halconf.h: `#define HAL_USE_SERIAL TRUE`
67* 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)
68
69Do note that the configuration required is for the `SERIAL` peripheral, not the `UART` peripheral.