Operasi SPI Bus USB Host Shield
Tabel 2.2 Lanjutan State pada Koneksi USB [3] Bus State
Levels Idle State:
Low-speed Full-speed
D- high, D+- low D+ high, D- low
Resume State Data K state
Start of Packet SOP Data lines switch from idle to K state
End of Packet EOP SE0 for 2 bit times followed by J state
for 1 bit time Disconnect
SE0 for = 2us Connect
Idle for 2.5us Reset
SE0 for = 2.5 us
Gambar 2.15 Contoh Pengiriman Data USB [18] Tabel 2.3 merupakan paket data yang dikirimkan gamepad ke mikrokontroler.
Tabel 2.3 Data Hex dari Gamepad No. Tombol yang digunakan
Data Hex 1
Netral tidak ada tombol yang ditekan
01 00 00 00 00 00 87 87 83 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 03 EF 14 00 00 00 00 23 6D 77 01 1D 01 FF 01 FB 01 90 02 00
Tabel 2.3 Lanjutan Data Hex dari Gamepad No. Tombol yang digunakan
Data Hex 2
Nav. Up
01 00 10
00 00 00 87 87 83 79
00 00 00 00 FF
00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 EF 14 00 00 00 00 23 6D 77 01 1D 01
F5 01 F8 01 90 02 00
3 Nav. Right
01 00 20
00 00 00 87 87 83 7A 00 00 00 00 00
FF 00 00 00 00 00 00 00 00 00 00 00 00
00 03 EF 14 00 00 00 00 23 6D 77 01 1D 01 EC
02 02 01
91 02 00
4 Nav. Down
01 00 40
00 00 00 87 87 83 7A 00 00 00 00 00 00
FF 00 00 00 00 00 00 00 00 00 00 00
00 03 EF 14 00 00 00 00 23 6D 77 01 1D 01 FA
01 FD
01 8F
02 00
5 Nav. Left
01 00 80
00 00 00 87 87 83 79
00 00 00 00 00 00 00
FF 00 00 00 00 00 00 00 00 00 00
00 03 EF 14 00 00 00 00 23 6D 77 01 1D 01 F4 02 07
01 90 02 00
6 Triangle
01 00 00 10
00 00 87 87 83 7A 00 00 00 00 00 00 00 00 00 00 00 00
FF 00 00 00 00 00
00 03 EF 14 00 00 00 00 23 6D 77 01 1D 02
1C 02 0F 01
93 02 00
7 Circle
01 00 00 20 00 00 87 87 83 7A 00 00 00 00 00 00 00 00 00 00 00 00 00
FF 00 00 00 00
00 03 EF 14 00 00 00 00 23 6D 77 01 1D 02
2D 01
D1 01
A5 02 00
Data yang keluar dari gamepad terdiri dari 49 Byte, yang mana setiap bit memiliki konfigurasi alamat fungsi. Pada Tabel 2.4 dijabarkan tentang paket data dari gamepad
secara detil.
Tabel 2.4 Paket Data Gamepad [17] Byte
index bit 7
bit 6 bit 5
bit 4 bit 3 bit 2 bit 1 bit 0
Info report ID always 0x01
1 reserved
2 D left
D down D
right D up
Start R3
L3 Sele
ct 1 means
pressed, 0 means
released 3
Squar e
X Circle
Triangl e
R1 L1
R2 L2
4 Unknown
PS 5
Unknown 6
Left stick X axis 7
Left stick Y axis 8
Right stick X axis 9
Right stick Y axis 10
Unknown, seems to count downwards, non-random pattern 11
Unknown, seems to count upwards by 3, but by 2 when [10] underflows
12 Unknown yet, 0x03 or 0x04
13-24 analog button data
00 is released and FF is fully
pressed 25-39
unknown 40-41
acceleromerer X axis, little endian 10 bit unsigned 42-43
acceleromerer Y axis, little endian 10 bit unsigned 44-45
acceleromerer Z axis, little endian 10 bit unsigned 46-47
gyroscope, little endian 10 bit unsigned 48-49
unknown