]>
Commit | Line | Data |
---|---|---|
1 | FC660C controller | |
2 | ================= | |
3 | 2017/02/24 | |
4 | 2017/03/25 | |
5 | ||
6 | Thread on Geekhack: https://geekhack.org/index.php?topic=88439.0 | |
7 | ||
8 | ||
9 | Firmware | |
10 | -------- | |
11 | Just `make` to build firmware. And consult with wiki for further information. | |
12 | ||
13 | https://github.com/tmk/tmk_keyboard/wiki | |
14 | ||
15 | ||
16 | Pinouts | |
17 | ------- | |
18 | ||
19 | |Switch |Controller | | |
20 | | board | board |Description |Schematic |ATmega32u4 | |
21 | |--------|-----------|--------------------------------------|-----------|------------ | |
22 | | 1 |20 | FG |FG |GND | |
23 | | 2 |19 | GND |GND |GND | |
24 | | 3 |18 | GND |GND |GND | |
25 | | 4 |17 | 3.3V |V33 |3.3V/5V | |
26 | | 5 |16 | 5V |Vcc |5V | |
27 | | 6 |15 |*Z6-TP1684-4-HYS(o) |FBSTB |PC7 | |
28 | | 7 |14 |*Z6-TP1684-2-KEY(i) |OUT |PC6 | |
29 | | 8 |13 |*Z2-AD5258-5-SCL(I2C) |SCL |PD0(TWI) | |
30 | | 9 |12 |*Z2-AD5258-4-SDA(I2C) |SDA |PD1(TWI) | |
31 | |10 |11 |*Z4-LV4051A-6-~EN(Col 0-7) |INH_1 |PB4 | |
32 | |11 |10 |*Z5-LV4051A-6-~EN(Col 8-F) |INH_2 |PB3 | |
33 | |12 | 9 |+Z7-LV07A-5 (LV4051A-9-C) |SEL_C |PB2 | |
34 | |13 | 8 |+Z7-LV07A-1 (LV4051A-10-B) |SEL_B |PB1 | |
35 | |14 | 7 |+Z7-LV07A-3 (LV4051A-11-A) |SEL_A |PB0 | |
36 | |15 | 6 |+Z3-LVC138A-3-C |COL4 |PD6 | |
37 | |16 | 5 |+Z3-LVC138A-2-B |COL3 |PD5 | |
38 | |17 | 4 |+Z3-LVC138A-1-A |COL2 |PD4 | |
39 | |18 | 3 |+Z3-LVC138A-4-~G2A Z6-TP1684-5-~EN |COL1 |PD7 | |
40 | |19 | 2 |+Z7-LV07A-11-~InsertLED |LED1 |PB5 | |
41 | |20 | 1 |+Z7-LV07A-13-~CapsLED |LED2 |PB6 | |
42 | ||
43 | ``` | |
44 | * 5V intferface | |
45 | + 3.3V interface | |
46 | ``` | |
47 | ||
48 | - Connector on Switch board: https://i.imgur.com/Zi89xO5.jpg | |
49 | - Connector on Controller board: https://i.imgur.com/9SZUzYo.jpg | |
50 | ||
51 | ||
52 | Key Matrix | |
53 | ---------- | |
54 | Row5-7 have no key, you can omit scaning on those lines. Topre original controller scans those rows for some reason. | |
55 | ||
56 | | |0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |A |B |C |D |E |F | | |
57 | |----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----| | |
58 | | 0|Q |W |E |Tab |R |U |T |Y |O |P |[ |I |] | |\ |Del | | |
59 | | 1|1 |2 |3 |Esc |4 |7 |5 |6 |9 |0 |- |8 |= | |BSpc|Ins | | |
60 | | 2| |LWin|LAlt|LCtl| | | |Spc |RAlt| |RCtl| |Fn |Down|Left|Rght| | |
61 | | 3| |Z |X |LSft|C |N |V |B |, |. |/ |M |RSft|Up | | | | |
62 | | 4|A |S |D |Caps|F |J |G |H |L |; |' |K | | |Entr| | | |
63 | | 5| | | | | | | | | | | | | | | | | | |
64 | | 6| | | | | | | | | | | | | | | | | | |
65 | | 7| | | | | | | | | | | | | | | | | | |
66 | ||
67 | Logic analyzer pics: | |
68 | - https://i.imgur.com/9SZUzYo.jpg | |
69 | - https://i.imgur.com/5FCP1Ay.png | |
70 | ||
71 | This code emuluates what original cotnroller does for matrix scan. | |
72 | - https://github.com/tmk/tmk_keyboard/blob/master/keyboard/fc660c/fc660c.c | |
73 | ||
74 | ||
75 | ### Row designation | |
76 | LV138A(Z3) selects a row line and gives strobe by enabling with ~G2A(18). | |
77 | ||
78 | |Row |A/17|B/16|C/15| | |
79 | |----|----|----|----| | |
80 | |0 |0 |0 |0 | | |
81 | |1 |1 |0 |0 | | |
82 | |2 |0 |1 |0 | | |
83 | |3 |1 |1 |0 | | |
84 | |4 |0 |0 |1 | | |
85 | |5 |1 |0 |1 | | |
86 | |6 |0 |1 |1 | | |
87 | |7 |1 |1 |1 | | |
88 | ||
89 | ||
90 | ### Column designation | |
91 | LV4051A(Z4, Z5) select one of 16 column lines to sense capacitance of switches. | |
92 | ||
93 | |Col |A/14|B/13|C/12|Z4-EN/10|Z5-EN/11| | |
94 | |----|----|----|----|--------|--------| | |
95 | |0 |0 |0 |0 |0 |1 | | |
96 | |1 |1 |0 |0 |0 |1 | | |
97 | |2 |0 |1 |0 |0 |1 | | |
98 | |3 |1 |1 |0 |0 |1 | | |
99 | |4 |0 |0 |1 |0 |1 | | |
100 | |5 |1 |0 |1 |0 |1 | | |
101 | |6 |0 |1 |1 |0 |1 | | |
102 | |7 |1 |1 |1 |0 |1 | | |
103 | |8 |0 |0 |0 |1 |0 | | |
104 | |9 |1 |0 |0 |1 |0 | | |
105 | |A |0 |1 |0 |1 |0 | | |
106 | |B |1 |1 |0 |1 |0 | | |
107 | |C |0 |0 |1 |1 |0 | | |
108 | |D |1 |0 |1 |1 |0 | | |
109 | |E |0 |1 |1 |1 |0 | | |
110 | |F |1 |1 |1 |1 |0 | | |
111 | ||
112 | ||
113 | FCC documents | |
114 | ------------- | |
115 | https://fccid.io/RPKFC660C | |
116 | ||
117 | - schematic: https://fccid.io/pdf.php?id=1888185 | |
118 | - part list: https://fccid.io/pdf.php?id=1888184 | |
119 | ||
120 | ||
121 | Datasheets | |
122 | ---------- | |
123 | - Hirose DF14A-20P-1.25H: http://www.mouser.com/ds/2/185/DF14_catalog-939195.pdf | |
124 | - LV07A: http://www.ti.com/lit/ds/symlink/sn74lv07a.pdf | |
125 | - LV138A: http://www.ti.com/lit/ds/symlink/sn74lvc138a.pdf | |
126 | - LV4051A: http://www.ti.com/lit/ds/symlink/sn74lv4051a.pdf | |
127 | - AD5258: http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf | |
128 | ||
129 | ||
130 | 3.3V power supply | |
131 | ----------------- | |
132 | LV07A and LVC138A are 5V-tolerant and can be powered with 5V, the keyboard will work only with 5V power supply. | |
133 | It may not be completely safe to operate LV138A with 5V Vcc, its datasheet says: | |
134 | ||
135 | > Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability. | |
136 | ||
137 | ||
138 | Resources | |
139 | --------- | |
140 | - Pics: https://imgur.com/a/UTR8Z |