You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
3.5 KiB

  1. # 'シリアル' ドライバ
  2. <!---
  3. original document: 0.9.51:docs/serial_drive.md
  4. git diff 0.9.51 HEAD -- docs/serial_drive.md | cat
  5. -->
  6. このドライバは[分割キーボード](ja/feature_split_keyboard.md) 機能に使います。
  7. ?> この文章でのシリアルは、UART/USART/RS485/RS232 規格の実装ではなく、**一度に1ビットの情報を送信するもの**として読まれるべきです。
  8. このカテゴリの全てのドライバには以下の特徴があります:
  9. * 1本の線上でデータと信号を提供
  10. * シングルマスタ、シングルスレーブに限定
  11. ## サポートされるドライバの種類
  12. | | AVR | ARM |
  13. |-------------------|--------------------|--------------------|
  14. | bit bang | :heavy_check_mark: | :heavy_check_mark: |
  15. | USART Half-duplex | | :heavy_check_mark: |
  16. ## ドライバ設定
  17. ### Bitbang
  18. デフォルトのドライバ。設定がない場合はこのドライバが想定されます。設定するには、以下を rules.mk に追加します:
  19. ```make
  20. SERIAL_DRIVER = bitbang
  21. ```
  22. config.h を介してドライバを設定します:
  23. ```c
  24. #define SOFT_SERIAL_PIN D0 // または D1, D2, D3, E6
  25. #define SELECT_SOFT_SERIAL_SPEED 1 // または 0, 2, 3, 4, 5
  26. // 0: 約 189kbps (実験目的のみ)
  27. // 1: 約 137kbps (デフォルト)
  28. // 2: 約 75kbps
  29. // 3: 約 39kbps
  30. // 4: 約 26kbps
  31. // 5: 約 20kbps
  32. ```
  33. #### ARM
  34. !> bitbang ドライバは bitbang WS2812 ドライバと接続の問題があります
  35. 上記の一般的なオプションに加えて、halconf.h で `PAL_USE_CALLBACKS` 機能もオンにする必要があります。
  36. ### USART Half-duplex
  37. 通信が USART ハードウェアデバイスに送信される STM32 ボードが対象です。これにより高速で正確なタイミングを提供できることが利点です。このドライバの `SOFT_SERIAL_PIN` は、設定された USART TX ピンです。**TX ピンに適切なプルアップ抵抗が必要です**。設定するには、以下を rules.mk に追加します:
  38. ```make
  39. SERIAL_DRIVER = usart
  40. ```
  41. config.h を介してハードウェアを設定します:
  42. ```c
  43. #define SOFT_SERIAL_PIN B6 // USART TX ピン
  44. #define SELECT_SOFT_SERIAL_SPEED 1 // または 0, 2, 3, 4, 5
  45. // 0: 約 460800 ボー
  46. // 1: 約 230400 ボー (デフォルト)
  47. // 2: 約 115200 ボー
  48. // 3: 約 57600 ボー
  49. // 4: 約 38400 ボー
  50. // 5: 約 19200 ボー
  51. #define SERIAL_USART_DRIVER SD1 // TX ピンの USART ドライバ。デフォルトは SD1
  52. #define SERIAL_USART_TX_PAL_MODE 7 // 「代替機能」 ピン。MCU の適切な値については、それぞれのデータシートを見てください。デフォルトは 7
  53. ```
  54. また、ChibiOS `SERIAL` 機能を有効にする必要があります:
  55. * キーボードの halconf.h: `#define HAL_USE_SERIAL TRUE`
  56. * キーボードの mcuconf.h: `#define STM32_SERIAL_USE_USARTn TRUE` (ここで、'n' は MCU で選択した USART のペリフェラル番号と一致)
  57. 必要な構成は、`UART` 周辺機器ではなく、`SERIAL` 周辺機器であることに注意してください。