TEALEAF-USB-SS HEXWAX, TEALEAF-USB-SS Datasheet - Page 5
![no-image](/images/no-image-200.jpg)
TEALEAF-USB-SS
Manufacturer Part Number
TEALEAF-USB-SS
Description
IC, USB AUTHENTICATION KEY, SSOP-20
Manufacturer
HEXWAX
Datasheet
1.TEALEAF-USB.pdf
(8 pages)
Specifications of TEALEAF-USB-SS
No. Of I/o's
5
Digital Ic Case Style
SSOP
Supply Voltage Range
3.3V To 5.5V
No. Of Pins
20
Termination Type
SMD
Core Size
8 Bit
Package / Case
20-SSOP
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
For further dimensional information, refer to figure 6-7 of
the USB 2.0 Specification, in the development kit.
Host-Side Interfacing
TEAleaf-USB uses the Human Interface Device (HID)
USB interface. It has the advantages that no device
drivers are required, and that a host application can
easily locate the TEAleaf.
All exchanges of data (‘reports’) between the host and
the TEAleaf-USB are 8 bytes in length, regardless of
how many bytes of meaningful data are actually
transferred.
interrupt reports of 8 bytes, to and from output ID 0 on
EP1.
The host software has two perform two tasks. First it
has to locate the device. Then it has to communicate
with it. To locate the device, enumerate all devices with
Vendor ID 0x0B40 and Product ID 0x011E (28-pin
devices) or 0x011F (20-pin devices). Then use a Get
Feature request for the string 4, the Product GUID. If
this matches the product GUID you configured for the
device, you have located it.
Once you have located the device, you need to open a
file to communicate with it. You can then send data and
receive data as 8-byte reports.
Sample source code for Windows and a Windows
dynamic link library (DLL) are provided in the
development kit. For a detailed description, please refer
to the comments embedded in the source code and the
Visual Basic example in the Excel spreadsheet. Sample
source code for Mac OS and Linux is in preparation.
Commands
The first byte (‘identifier’) of the 8-byte report in either
direction identifies the remaining contents (‘payload’). If
the command does not require all 8 bytes, then the
contents of the rest are ignored.
With the exception of the Authenticate and Random
commands, if a response to the command is required,
the response will have the same identifier as the
command to which it is responding.
response has no command associated with it and it may
be received by the host at any time.
Note: Accidentally sending a command in the range
0x80-0x8F can modify settings that may permanently
disable the device. During product development, it is
recommended that you work with a device that has been
p5 of 8
12.00
0.50
3.00
1.00-2.00
Shoulder required to prevent over-insertion
1.00
1.00
Overall PCB width 16.00 or less
2.25
In HID terms, all transfers are 10ms
1.25
26-Aug-10
11.75
4. Vss
3. D+
2. D-
1. Vdd
including tracks 2.00 - 2.20
Contacts plated with hard
gold flash (0.25-1.27µm)
over nickel (2.6-5.0µm)
Overall PCB thickness
The Interrupt
TEAleaf-USB
Dimensions in mm
Figure 9
write locked using HIDconfig.exe. Devices intended for
production should always be write locked.
Authenticate
The identifier AUTH (0xA7) is used to initiate the
authentication process. The TEAleaf-USB will reply with
a four-byte random value in the first 4 bytes. To this the
host should append its own four-byte random value in
the second 4 bytes and then encrypt using the xTEA
algorithm given below.
should be sent to the TEAleaf. The TEAleaf will decrypt
the data to determine the host’s random value and to
verify the random value it sent.
If the value is not correct, TEAleaf will respond with
eight zero bytes. If it is correct, it replaces its random
number with another random value, encrypts and sends
the result to the host. The host decrypts the result to
verify the random value it sent to the TEAleaf-USB. If
the random value is correct, authentication is complete.
Example:
Random
The identifier RANDOM (0xA8) is used to obtain a 4-
byte random number from TEAleaf.
Example:
Get Pin
The identifier GETPIN (0x90) retrieves the digital value
of a VIO pin.
which indicates the pin, as shown in table 3. The
response payload has two bytes, as shown in table 3.
Example:
Get Analog
The identifier GETANALOG (0x96) retrieves the voltage
of the analog pin. The command has not payload. The
response payload has two bytes, representing a number
from 0x0000 to 0x03FF, which indicates the voltage
relative to Vdd.
(Key is the factory default FFEEDDCCBBAA99887766554433221100)
A7 00 00 00 00 00 00 00
13 16 3A 03 00 00 00 00
13 16 3A 03 9B 67 2B 99
44 92 D0 06 8C F5 90 F2
13 16 3A 03 9B 67 2B 99
20 2D 6A 18 9B 67 2B 99
45 60 6C 84 BF 86 EE C2
20 2D 6A 18 9B 67 2B 99
A8
2B 73 CE 89 00 00 00 00 00
90 18
90 18 01
VIO10
VIO1
VIO7
VIO8
VIO9
Pin
HW146-8
Table 3. Get Pin Payload Structure
Payload byte 1
The command payload has one byte,
Command – Get VIO8 pin
Response – Pin is active
0x1A
0x11
0x17
0x18
0x19
Auth
Random # from TEAleaf-USB
Host adds random #
Host encrypts, sends to TEAleaf-USB
TEAleaf-USB decrypts, verifies random#
TEAleaf-USB adds new random #
TEAleaf-USB encrypts, sends to host
Host decrypts and verifies random #
Auth
Random # response from TEAleaf
The resulting 8-byte value
www.firmwarefactory.com
00 = Low, 01 = High
Payload byte 2*
*Response only