diff options
Diffstat (limited to 'docs/zh-cn/faq_misc.md')
-rw-r--r-- | docs/zh-cn/faq_misc.md | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/docs/zh-cn/faq_misc.md b/docs/zh-cn/faq_misc.md new file mode 100644 index 000000000..d01caba3b --- /dev/null +++ b/docs/zh-cn/faq_misc.md | |||
@@ -0,0 +1,108 @@ | |||
1 | # 其它 FAQ | ||
2 | |||
3 | <!--- | ||
4 | original document: 0.15.12:docs/faq_misc.md | ||
5 | git diff 0.15.12 HEAD -- docs/faq_misc.md | cat | ||
6 | --> | ||
7 | |||
8 | ## 怎么对键盘进行测试? :id=testing | ||
9 | |||
10 | 测试键盘就简单直接,把每个按键按一遍后确认发送的是正确的就行。也可以使用[QMK配置器](https://config.qmk.fm/#/test/)的测试模式检查键盘,即便这键盘没有运行着QMK。 | ||
11 | |||
12 | ## 安全措施 | ||
13 | |||
14 | 你应该不想见到键盘变砖,变得不能再刷写固件。这里给出了一些非常危险(或相反不太危险)的因素。 | ||
15 | |||
16 | - 如果你的键盘没有RESET键,在你需要进入DFU模式时,不得不需要用螺丝刀打开后盖去按PCB上的RESET键。 | ||
17 | - 把 tmk_core/common 下的文件搞乱的话,容易导致键盘无法使用 | ||
18 | - .hex文件太大的话也会引起问题。`make dfu` 会先擦除存储块,再检查固件大小(哎呀,顺序错了),此时发现错误进而导致刷写失败,键盘停留在DFU模式下。 | ||
19 | - 因此,请留意.hex文件尺寸有大小限制,例如在Planck上是十六进制7000(十进制的28672) | ||
20 | |||
21 | ``` | ||
22 | Linking: .build/planck_rev4_cbbrowne.elf [OK] | ||
23 | Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK] | ||
24 | |||
25 | Size after: | ||
26 | text data bss dec hex filename | ||
27 | 0 22396 0 22396 577c planck_rev4_cbbrowne.hex | ||
28 | ``` | ||
29 | |||
30 | - 上面的文件大小是22396/577ch, 小于28672/7000h | ||
31 | - 任何合适的其它.hex文件,都可以尝试加载 | ||
32 | - 在键盘的Makefile中你添加的一些配置也会额外占用空间,在使用BOOTMAGIC_ENABLE, | ||
33 | MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_ENABLE | ||
34 | 时请留意 | ||
35 | - DFU工具/不会/允许bootloader被覆写(除非你往DFU工具上塞自己的东西),这个风险不大。 | ||
36 | - EEPROM的写循环一般是 100000(100k)次,不应不停地持续重复地刷写固件,不然很快就烧毁了。 | ||
37 | |||
38 | ## NKRO 不好使 | ||
39 | 首先请确保在编译固件时有在**Makefile**中启用 `NKRO_ENABLE` | ||
40 | |||
41 | 如果依旧不行,尝试一下 `Magic` **N** 指令(默认是左Shift+右Shift+N),这个指令可以让键盘在**NKRO**和**6KRO**模式间临时切换。有的场景下**NKRO**无法工作必须切换到**6KRO**模式,比如在BIOS中操作时。 | ||
42 | |||
43 | 如果你的固件编译时指定了 `BOOTMAGIC_ENABLE` ,则需要使用 `BootMagic`**N** 指令(默认是空格+N)。这个配置保存在EEPROM中,断电也会留存。 | ||
44 | |||
45 | https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch | ||
46 | |||
47 | |||
48 | ## 轨迹球需要复位电路 (PS/2鼠标支持) | ||
49 | 缺失复位电路的情况下,由于不正确的硬件初始化,可能会导致设备不稳定,具体请参阅TPM754的电路原理图: | ||
50 | |||
51 | - https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 | ||
52 | - https://www.mikrocontroller.net/attachment/52583/tpm754.pdf | ||
53 | |||
54 | |||
55 | ## 无法读到大于16的矩阵列 | ||
56 | 当列数大于16时,在 [matrix.h] 中的 `read_cols()` 中请用 `1UL<<16` 替代 `1<<16`。 | ||
57 | |||
58 | 在C语言中,对于AVR上的 `1`,会被视作一种[16位]的[整形(int)]类型,因此无法左移超过15位。因此 `1<<16` 的计算结果会错误地变成0。解决办法就是将类型改为[无符号长整形(unsigned long)]类型的 `1UL`。 | ||
59 | |||
60 | https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 | ||
61 | |||
62 | ## 有些额外的按键不好使(系统,音频控制键) | ||
63 | 在QMK的 `rules.mk` 中须定义 `EXTRAKEY_ENABLE` | ||
64 | |||
65 | ``` | ||
66 | EXTRAKEY_ENABLE = yes # 音频及系统控制 | ||
67 | ``` | ||
68 | |||
69 | ## 无法从休眠唤醒 | ||
70 | |||
71 | 在Windows的**电源管理**的**设备管理**中,检查 `允许该设备唤醒计算机` 选项,同时检查一下BIOS中的相关设置,任意一个按键都应该能将计算机从休眠状态唤醒。 | ||
72 | |||
73 | ## 在使用Arduino? | ||
74 | |||
75 | **注意Arduino的引脚编号与芯片的引脚编号是不同的**。例如,Arduino的 `D0` 引脚并不是 `PD0`,请对照其电路图检查电路。 | ||
76 | |||
77 | - https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf | ||
78 | - https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf | ||
79 | |||
80 | Arduino Leonardo 以及 micro 使用的是**ATMega32U4**因此可以用TMK,但bootloader可能会是个麻烦的问题。 | ||
81 | |||
82 | ## 启用JTAG | ||
83 | |||
84 | 默认情况下,键盘启动后JTAG调试接口就被禁用了。支持JTAG的MCU出场时会带着 `JTAGEN` 保险丝,而键盘因为需要这部分MCU的引脚去控制开关矩阵、LED等功能。 | ||
85 | |||
86 | 如果你希望启用JTAG,在 `config.h` 中添加定义: | ||
87 | |||
88 | ```c | ||
89 | #define NO_JTAG_DISABLE | ||
90 | ``` | ||
91 | |||
92 | ## USB 3兼容性问题 | ||
93 | 将设备从USB 3.x端口改插到USB 2.0端口能解决一些问题。 | ||
94 | |||
95 | |||
96 | ## Mac相关兼容性问题 | ||
97 | ### OS X 10.11 和 Hub | ||
98 | 参见: https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 | ||
99 | |||
100 | |||
101 | ## BIOS (UEFI) 配置/恢复 (休眠 & 唤醒)/电源循环 | ||
102 | 有人反馈过他们的键盘在BIOS下或是从休眠状态唤醒后会不可用。 | ||
103 | |||
104 | 目前这个问题的原因还不清楚,但一些编译选项应该和这个问题有关,你可以在Makefile中禁用 `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` 或其他的试一试。 | ||
105 | |||
106 | 更多信息: | ||
107 | - https://github.com/tmk/tmk_keyboard/issues/266 | ||
108 | - https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 | ||