diff options
| author | Joel Challis <git@zvecr.com> | 2020-05-21 21:20:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-22 06:20:46 +1000 |
| commit | 6d84795bc1e4b867725e3ddd906af9e125f71e3b (patch) | |
| tree | a87bf05e33e4b19100eeb6ddd0fea1a437c114e6 /docs | |
| parent | 179e5c018fcee9bcb0a7f1907cc96d44ed5cf554 (diff) | |
| download | qmk_firmware-6d84795bc1e4b867725e3ddd906af9e125f71e3b.tar.gz qmk_firmware-6d84795bc1e4b867725e3ddd906af9e125f71e3b.zip | |
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>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/feature_split_keyboard.md | 13 | ||||
| -rw-r--r-- | docs/proton_c_conversion.md | 2 | ||||
| -rw-r--r-- | docs/serial_driver.md | 16 |
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 | ||
| 9 | For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards. | 9 | For 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 | |||
| 21 | Notes: | ||
| 22 | |||
| 23 | 1. Both hardware and software limitations are detailed within the [driver documentation](serial_driver.md). | ||
| 24 | |||
| 14 | ## Hardware Configuration | 25 | ## Hardware Configuration |
| 15 | 26 | ||
| 16 | This assumes that you're using two Pro Micro-compatible controllers, and are using TRRS jacks to connect to two halves. | 27 | This 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 |
| 2 | This driver powers the [Split Keyboard](feature_split_keyboard.md) feature. | 2 | This 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 | ||
| 6 | All drivers in this category have the following characteristics: | 6 | All 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 | |||
| 42 | Along 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 |
| 39 | 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: | 45 | 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: |
| 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 | ||
| 59 | You must also turn on the SERIAL feature in your halconf.h and mcuconf.h | 65 | You 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 | |||
| 69 | Do note that the configuration required is for the `SERIAL` peripheral, not the `UART` peripheral. | ||
