They can share a ThinkPad USB Keyboard with a track pointer to three PCs.
graph TD
h[ThinkPad Keyboard: USB device] -->|USB| g[CH554T: USB host/SPI master]
g -->|SPI| d[CH554E #0: USB device/SPI slave]
g -->|SPI| e[CH554E #1: USB device/SPI slave]
g -->|SPI| f[CH554E #2: USB device/SPI slave]
d -->|USB| a[PC #0: USB host]
e -->|USB| b[PC #1: USB host]
f -->|USB| c[PC #2: USB host]
git submodule init ch554_sdc
git submodule update ch554_sdc
cd device
make
cd ../host
make
| pin # | name | function |
|---|---|---|
| 1 | P1.4/SCS | SPI Slave Chip Selector |
| 2 | P1.5/MOSI | SPI MOSI |
| 3 | P1.6/MISO | SPI MISO |
| 4 | P1.7/SCK | SPI Serial Clock |
| 5 | RST | Hardware reset |
| 6 | P3.6/UDP | USB Data (+) |
| 7 | P3.7/UDM | USB Data (-) |
| 8 | GND | |
| 9 | VCC(5V) | |
| 10 | V33 |
| pin # | name | function |
|---|---|---|
| 1 | P3.2/INT0 | ACT0 (if PC #0 connected) |
| 2 | P1.4/TIN2 | CE0 (SPI Slave Chip Selector for PC #0) |
| 3 | P1.5/MOSI | SPI MOSI |
| 4 | P1.6/MISO | SPI MISO |
| 5 | P1.7/SCK | SPI Serial Clock |
| 6 | RST | Hardware Reset |
| 7 | P1.0/TIN0 | LED0 (indicator of PC #0) |
| 8 | P1.1/TIN1 | LED1 (indicator of PC #1) |
| 9 | P3.1/TXD | CE1 (SPI Slave Chip Selector for PC #1) |
| 10 | P3.0/RXD | ACT1 (if PC #1 connected) |
| 11 | P3.3/INT1 | LED2 (indicator of PC #2) |
| 12 | P3.4/T0 | CE2 (SPI Slave Chip Selector for PC #2) |
| 13 | P3.5/T1 | ACT2 (if PC #2 connected) |
| 14 | P3.6/UDP | USB Data (+) |
| 15 | P3.7/UDM | USB Data (-) |
| 16 | P1.3/TXD_ | TX (UART TX for debug) |
| 17 | P1.2/RXD_ | SW (button) |
| 18 | GND | |
| 19 | VCC | |
| 20 | V33 |