Remove superfluous JTAG disable code (#6445)

* Remove superfluous JTAG disable code

* 32A has differently named register

* Accidentally some operators

* 32A also has different JTAG pins

* Wrap disable_jtag() in an ifndef

* Document this new define

* Rename the define, it conflicts with a LUFA thing

Also, move the ifndef wrapping to the call in keyboard_setup()
This commit is contained in:
fauxpark
2019-08-21 15:18:52 +10:00
committed by Drashna Jaelre
parent 977c316eb1
commit f2c179de58
19 changed files with 15 additions and 94 deletions

View File

@ -184,22 +184,15 @@ Pressing any key during sleep should wake host.
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
## Enabling JTAG
## Using PF4-7 Pins of USB AVR?
You need to set JTD bit of MCUCR yourself to use PF4-7 as GPIO. Those pins are configured to serve JTAG function by default. MCUs like ATMega*U* or AT90USB* are affected with this.
By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc.
If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function.
If you would like to keep JTAG enabled, just add the following to your `config.h`:
See this code.
```c
#define NO_JTAG_DISABLE
```
// JTAG disable for PORT F. write JTD bit twice within four cycles.
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
```
https://github.com/tmk/tmk_keyboard/blob/master/keyboard/hbkb/matrix.c#L67
And read **26.5.1 MCU Control Register MCUCR** of ATMega32U4 datasheet.
## Adding LED Indicators of Lock Keys
You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post.

View File

@ -173,23 +173,6 @@ EXTRAKEY_ENABLE = yes # 音频控制和系统控制
Arduino Leonardo和micro使用**ATMega32U4**该芯片TMK可用但Arduino的bootloader会导致问题。
## 在USB AVR使用PF4-7针脚?
你要置位MCUCR寄存器JTD位来将PF4-7设置为GPIO。这些针脚默认是JTAG功能。 像ATMega*U* or AT90USB*这样的MCU会受影响。
如果是用Teensy的话就不需要了。Tennsy自带JTAGEN位未编程来失能该功能。
<!--翻译问题上句可能有错原文为Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. -->
代码如下。
```
// F接口JTAG失能。在四个周期内写入两次JTD位。
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
```
https://github.com/tmk/tmk_keyboard/blob/master/keyboard/hbkb/matrix.c#L67
阅读ATMega32U4的datasheet中的**26.5.1 MCU Control Register MCUCR**。
## 为锁定键添加指示灯
你要自制CapsLock, ScrollLock 和 NumLock指示灯见下文。