This repository contains information about three types of TI-Graph Link adapters:
The grey TI-Graph Link cable uses a DB-25 serial connector and works with Windows and Macintosh computers. Merthsoft's Link Cables page contains some basic information about this cable.
The black serial Graph Link cable was the later revision with a female DB-9 connector and is only intended to work with Windows PCs.
Full schematic is included in the repository as TI-Graph Link serial (black) PDF or KiCad.
CNTR
: connector for serial port control linesCR3
/CR4
:M1M
diodes to supply power from RTS/DTR control linesC1
/C2
: bypass capsU1
: LM339AM single supply quad comparatorCR6
/CR7
/CR8
: diodes for inverting input and pullupsR6
/R10
: pullups for inverting input and link portR1
/R2
/R3
/R4
/R5
/R7
/R8
/R9
: graph link circuitry around LM339JACK
: 2.5mm 3-conductor graph link jack
There are two hardware models of the Silver Graph Link USB cable: "A" and "B" as denoted by the last character of its production code. Most graph link cables contain a production code on the back label in the following format: FMMYYH
:
F
- Factory:I
(Taiwan),S
(China),P
(China)MM
- Month of manufactureYY
- Year of manufactureH
- Hardware: either "A" or "B" (see description below)
The "A" version uses a Cypress CY7C64013 chipset and was manufactured from sometime in the early 2000s through March 2003. Starting around April 2003 through 2010, the "B" hardware version using the TI TUSB3410 was manufactured.
Some info about the "A" TI Silver Link is documented here: http://merthsoft.com/linkguide/usbdevices/SilverLink%20USB.txt
Full schematic is included in the repository as "A" Rev 1 PDF or KiCad.
D1
:D3G
Rohm Schottky barrier diode RB471E (PDF)L4
,L4
:2R7
2.7µH inductorU1
:DQF
Voltage Regulator, 3.3V S-812XXSG (PDF) (81233SGUP)U2
:H8
Rohm Bias resistor transistor IMH8A (PDF)U3
:CY7C64013
Cypress USB CY7C64013,113 (PDF)X1
:6.0F2D
6MHz Crystal
Cypress M8 Series (M8 Core w/ 8K EPROM)
The CY7C64013 is a Full-Speed USB microcontroller made by Cypress. It uses a 6MHz external clock source. The CPU uses a proprietary 8-bit RISC M8 architecture and is clocked at 12MHz.
Graph Link | GPIO | SOIC Pin |
---|---|---|
Tip (red) | P0[0] | 17 |
Ring (white) | P0[1] | 13 |
Full schematic is included in the repository as "B" Rev 3 PDF or KiCad.
D1
:D3G
Rohm dual Schottky barrier diode RB471E (PDF)D2
:3F
Chenmko Schottky barrier diode CH461FGP (PDF)L1
,L2
:2R7
2.7µH inductorU1
:24LC64
64kbit EEPROM: Microchip 24LC64 (PDF)U2
:AQI
TI LOD Regulator, 3.3V TPS715 (PDF) (TPS71533DCKR)U3
:TUSB3410
USB TI TUSB3410 (PDF)U4
:H8
Rohm Bias resistor transistor IMH8A (PDF)Y1
:12.0F4K
12MHz Crystal
Graph Link | GPIO | VQFN Pin |
---|---|---|
Tip (red) | P3.3 | 30 |
Ring (white) | P3.4 | 29 |
The EEPROM data contains a header which is first read by the bootloader in the TUSB3410 ROM. If the header matches the expected format, the size as is described in the header is read out from the EEPROM into Code RAM. The bootloader then jumps to this code.
OFFSET | TYPE | SIZE | VALUE | DESCRIPTION |
---|---|---|---|---|
0x0000 | Signature0 | 1 | 0x10 | FUNCTION_PID_L |
0x0001 | Signature1 | 1 | 0x34 | FUNCTION_PID_H |
0x0002 | Data Type | 1 | 0x07 | Autoexec binary firmware |
0x0003 | Data Size(low byte) | 1 | 0x00 | 0x1400 bytes of application code |
0x0004 | Data Size(high byte) | 1 | 0x14 | |
0x0005 | Check Sum | 1 | 0x5a | Checksum of the following firmware |
0x0006 | Program | 0x1400 | Binary application code | |
0x1406 | Data Type | 1 | 0x00 | End of header |
TUSB3410 contains an 8052 microprocessor. The application code contained within the EEPROM is responsible for receiving commands over USB and communicating with the calculator over its PORT3 GPIO.
The disassembled firmware can be built using sdcc and the included makefile build system. The resulting .eep file should be bit-compatible with the EEPROM contents. Build dependencies are:
- sdcc: versions 3.8.0 through 4.2.0 have been tested
- GNU make
- Python 3: for the script which generates the Autoexec header and checksum
$ make
sdas8051 -lops ti_graph_link_silver.asm
sdcc -mmcs51 --code-size 0x1400 ti_graph_link_silver.rel -o ti_graph_link_silver.hex
makebin -p ti_graph_link_silver.hex ti_graph_link_silver.bin
./tools/generate_eeprom.py ti_graph_link_silver.bin ti_graph_link_silver.eep
ti_graph_link_silver.bin: OK
User "okrayo" on the Cemetech forums recreated the TI USB Graph Link "B" on a breadboard using a TUSB3410 and through-hole alternatives for the power supply, transistors, diodes, and passive components. Since this uses the same USB chipset and firmware as the official Silver USB Graph-Link, this works with existing SW and TI graphing calculators with 2.5mm data port.
The table below enumerates the part replacements that "okrayo" used in the design relative to the original "B" schematic. In addition to these parts, the following modifications were made:
- Added 0.1µF decoupling capacitor between 1V8 and GND
- Removed the
L2
/C9
L1
/C10
filter on tip and ring connections - Added LED + 330Ω resistor on 3V3
- Left 24LC256
WP
pin disconnected to prevent inadvertent writes
RefDes | Description | "B" Part | Breadboard Part |
---|---|---|---|
C1/C5 | Xtal caps | 33pF SMT | 22pF through-hole |
D2 | Suspend Diode | CH461FGP | 1N4148 |
R8/R9 | USB D+/D- Res. | 22Ω | 27Ω |
R20/R21 | 1V8 voltage divider | 90.5k/100kΩ | 15k/18kΩ |
R24 | VREGEN Resistor | 32.4kΩ | 33kΩ |
U2 | 3.3V volt. regulator | TPS71533 | MCP17003302E |
U4 | Transistors | IMH8A | 2x PN2222A |
U1 | EEPROM | 24LC64 | 24LC256 |
D1 | Schottky Diodes | RB471E | 2x MBR150 |
Full schematic is included in the repository as TI Graph-Link "okrayo" Breadboard PDF or KiCad.