140 lines
5.6 KiB
Markdown
140 lines
5.6 KiB
Markdown
FC660C controller
|
|
=================
|
|
2017/02/24
|
|
2017/03/25
|
|
|
|
Thread on Geekhack: https://geekhack.org/index.php?topic=88439.0
|
|
|
|
|
|
Firmware
|
|
--------
|
|
Just `make` to build firmware. And consult with wiki for further information.
|
|
|
|
https://github.com/tmk/tmk_keyboard/wiki
|
|
|
|
|
|
Pinouts
|
|
-------
|
|
|
|
|Switch |Controller |
|
|
| board | board |Description |Schematic |ATmega32u4
|
|
|--------|-----------|--------------------------------------|-----------|------------
|
|
| 1 |20 | FG |FG |GND
|
|
| 2 |19 | GND |GND |GND
|
|
| 3 |18 | GND |GND |GND
|
|
| 4 |17 | 3.3V |V33 |3.3V/5V
|
|
| 5 |16 | 5V |Vcc |5V
|
|
| 6 |15 |*Z6-TP1684-4-HYS(o) |FBSTB |PC7
|
|
| 7 |14 |*Z6-TP1684-2-KEY(i) |OUT |PC6
|
|
| 8 |13 |*Z2-AD5258-5-SCL(I2C) |SCL |PD0(TWI)
|
|
| 9 |12 |*Z2-AD5258-4-SDA(I2C) |SDA |PD1(TWI)
|
|
|10 |11 |*Z4-LV4051A-6-~EN(Col 0-7) |INH_1 |PB4
|
|
|11 |10 |*Z5-LV4051A-6-~EN(Col 8-F) |INH_2 |PB3
|
|
|12 | 9 |+Z7-LV07A-5 (LV4051A-9-C) |SEL_C |PB2
|
|
|13 | 8 |+Z7-LV07A-1 (LV4051A-10-B) |SEL_B |PB1
|
|
|14 | 7 |+Z7-LV07A-3 (LV4051A-11-A) |SEL_A |PB0
|
|
|15 | 6 |+Z3-LVC138A-3-C |COL4 |PD6
|
|
|16 | 5 |+Z3-LVC138A-2-B |COL3 |PD5
|
|
|17 | 4 |+Z3-LVC138A-1-A |COL2 |PD4
|
|
|18 | 3 |+Z3-LVC138A-4-~G2A Z6-TP1684-5-~EN |COL1 |PD7
|
|
|19 | 2 |+Z7-LV07A-11-~InsertLED |LED1 |PB5
|
|
|20 | 1 |+Z7-LV07A-13-~CapsLED |LED2 |PB6
|
|
|
|
```
|
|
* 5V intferface
|
|
+ 3.3V interface
|
|
```
|
|
|
|
- Connector on Switch board: https://i.imgur.com/Zi89xO5.jpg
|
|
- Connector on Controller board: https://i.imgur.com/9SZUzYo.jpg
|
|
|
|
|
|
Key Matrix
|
|
----------
|
|
Row5-7 have no key, you can omit scaning on those lines. Topre original controller scans those rows for some reason.
|
|
|
|
| |0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |A |B |C |D |E |F |
|
|
|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|
|
|
| 0|Q |W |E |Tab |R |U |T |Y |O |P |[ |I |] | |\ |Del |
|
|
| 1|1 |2 |3 |Esc |4 |7 |5 |6 |9 |0 |- |8 |= | |BSpc|Ins |
|
|
| 2| |LWin|LAlt|LCtl| | | |Spc |RAlt| |RCtl| |Fn |Down|Left|Rght|
|
|
| 3| |Z |X |LSft|C |N |V |B |, |. |/ |M |RSft|Up | | |
|
|
| 4|A |S |D |Caps|F |J |G |H |L |; |' |K | | |Entr| |
|
|
| 5| | | | | | | | | | | | | | | | |
|
|
| 6| | | | | | | | | | | | | | | | |
|
|
| 7| | | | | | | | | | | | | | | | |
|
|
|
|
Logic analyzer pics:
|
|
- https://i.imgur.com/9SZUzYo.jpg
|
|
- https://i.imgur.com/5FCP1Ay.png
|
|
|
|
This code emuluates what original cotnroller does for matrix scan.
|
|
- https://github.com/tmk/tmk_keyboard/blob/master/keyboard/fc660c/fc660c.c
|
|
|
|
|
|
### Row designation
|
|
LV138A(Z3) selects a row line and gives strobe by enabling with ~G2A(18).
|
|
|
|
|Row |A/17|B/16|C/15|
|
|
|----|----|----|----|
|
|
|0 |0 |0 |0 |
|
|
|1 |1 |0 |0 |
|
|
|2 |0 |1 |0 |
|
|
|3 |1 |1 |0 |
|
|
|4 |0 |0 |1 |
|
|
|5 |1 |0 |1 |
|
|
|6 |0 |1 |1 |
|
|
|7 |1 |1 |1 |
|
|
|
|
|
|
### Column designation
|
|
LV4051A(Z4, Z5) select one of 16 column lines to sense capacitance of switches.
|
|
|
|
|Col |A/14|B/13|C/12|Z4-EN/10|Z5-EN/11|
|
|
|----|----|----|----|--------|--------|
|
|
|0 |0 |0 |0 |0 |1 |
|
|
|1 |1 |0 |0 |0 |1 |
|
|
|2 |0 |1 |0 |0 |1 |
|
|
|3 |1 |1 |0 |0 |1 |
|
|
|4 |0 |0 |1 |0 |1 |
|
|
|5 |1 |0 |1 |0 |1 |
|
|
|6 |0 |1 |1 |0 |1 |
|
|
|7 |1 |1 |1 |0 |1 |
|
|
|8 |0 |0 |0 |1 |0 |
|
|
|9 |1 |0 |0 |1 |0 |
|
|
|A |0 |1 |0 |1 |0 |
|
|
|B |1 |1 |0 |1 |0 |
|
|
|C |0 |0 |1 |1 |0 |
|
|
|D |1 |0 |1 |1 |0 |
|
|
|E |0 |1 |1 |1 |0 |
|
|
|F |1 |1 |1 |1 |0 |
|
|
|
|
|
|
FCC documents
|
|
-------------
|
|
https://fccid.io/RPKFC660C
|
|
|
|
- schematic: https://fccid.io/pdf.php?id=1888185
|
|
- part list: https://fccid.io/pdf.php?id=1888184
|
|
|
|
|
|
Datasheets
|
|
----------
|
|
- Hirose DF14A-20P-1.25H: http://www.mouser.com/ds/2/185/DF14_catalog-939195.pdf
|
|
- LV07A: http://www.ti.com/lit/ds/symlink/sn74lv07a.pdf
|
|
- LV138A: http://www.ti.com/lit/ds/symlink/sn74lvc138a.pdf
|
|
- LV4051A: http://www.ti.com/lit/ds/symlink/sn74lv4051a.pdf
|
|
- AD5258: http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf
|
|
|
|
|
|
3.3V power supply
|
|
-----------------
|
|
LV07A and LVC138A are 5V-tolerant and can be powered with 5V, the keyboard will work only with 5V power supply.
|
|
It may not be completely safe to operate LV138A with 5V Vcc, its datasheet says:
|
|
|
|
> Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.
|
|
|
|
|
|
Resources
|
|
---------
|
|
- Pics: https://imgur.com/a/UTR8Z
|