fc660c: Update README
authortmk <hasu@tmk-kbd.com>
Thu, 30 Mar 2017 05:24:16 +0000 (14:24 +0900)
committertmk <hasu@tmk-kbd.com>
Sun, 2 Apr 2017 17:31:02 +0000 (02:31 +0900)
keyboard/fc660c/README.md

index 3b46dae94c5c0483e4014d73e1c79ad602aab4cf..906396d357cbc03dfa2fa8717f1409476ece7096 100644 (file)
@@ -1,46 +1,57 @@
 FC660C controller
 =================
 2017/02/24
+2017/03/25
 
-Connector
----------
-### Hirose DF14A-20P-1.25H
-[datasheet](http://www.mouser.com/ds/2/185/DF14_catalog-939195.pdf)
-
-### Pinouts
-LV07A and LVC138A are 5V-tolerant, the keyboard will work only with 5V power.
-
-    |Controller |Switch  |Description                               |ATmega32u4
-    |-----------|--------|------------------------------------------|--------------
-    | 1         |  20    |    +Z7-LV07A-13-~CapsLED                 |PB6
-    | 2         |  19    |    +Z7-LV07A-11-~InsertLED               |PB7
-    | 3         |  18    |    +Z3-LVC138A-4-~G2A  Z6-TP1684-5-~EN   |PD7
-    | 4         |  17    |    +Z3-LVC138A-3-A                       |PD4
-    | 5         |  16    |    +Z3-LVC138A-3-B                       |PD5
-    | 6         |  15    |    +Z3-LVC138A-3-C                       |PD6
-    | 7         |  14    |    +Z7-LV07A-3  LV4051A-11-A             |PB0
-    | 8         |  13    |    +Z7-LV07A-1  LV4051A-10-B             |PB1
-    | 9         |  12    |    +Z7-LV07A-5  LV4051A-9-C              |PB2
-    |10         |  11    |    *Z5-LV4051A-6-~EN(Col 8-F)            |PB3
-    |11         |  10    |    *Z4-LV4051A-6-~EN(Col 0-7)            |PB4
-    |12         |   9    |    *Z2-AD5258-4-SDA(I2C)                 |PD1(TWI)
-    |13         |   8    |    *Z2-AD5258-5-SDL(I2C)                 |PD0(TWI)
-    |14         |   7    |    *Z6-TP1684-2-KEY(i)                   |PC6
-    |15         |   6    |    *Z6-TP1684-4-HYS(o)                   |PC7
-    |16         |   5    |     5V                                   |5V
-    |17         |   4    |     3.3V                                 |5V
-    |18         |   3    |     GND                                  |GND
-    |19         |   2    |     GND                                  |GND
-    |20         |   1    |     FG                                   |GND
+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       |PB7
+    |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 has no key, you can omit scaning those. Topre original controller scans those rows for some reason.
+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   |
     |----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|
@@ -53,13 +64,77 @@ Row5-7 has no key, you can omit scaning those. Topre original controller scans t
     |   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:
 
-Scan
-----
-Row: Drive(LVC138A)
-Col: Sense(4051)
+> Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.
 
 
 Resources
 ---------
-- Pics https://imgur.com/a/4UKkZ
+- Pics: https://imgur.com/a/UTR8Z
Imprint / Impressum