http://minyos.its.rmit.edu.au/~s9906768/pic/proj_ti.html
http://sami.ticalc.org/ PIC <--> TI Calc interfacing for the mac
All TI calculators have two open-drain lines. There is a method under Fargo to access each line individually for input and output (see "lowlevel.txt"), but in most cases where byte-transfers are needed, TI's built-in link routines are simple and effective to use. The protocol used by these routines will be described here:
When the lines are not active they are high. You should remember that if an end of an open-drain line is pulled-down (connected to the ground) by a device, all devices that are attached to that line (including the device that pulled the line down) will read a low signal even if they are trying to pull the line up.
We will assume that Calculator1 (C1) want to send a byte to Calculator2 (C2). The lines will be refered by L1 and L2. In the text "10" means L1 high and L2 low, and "01" means L1 low and L2 high.
C1 will wait until it reads a 00.
This will be repeated 8 times in order to transfer a bit.
This protocol used by TI on their calculators, is an effective protocol. But in most cases you do not need to go through those details when programming, since everything is made by the built-in ROM routines. To learn more on the byte level protocol, look at \doc\ti-prot.txt
'PBASIC code for the STAMP to display data from a TI-83 from Jack [goflo at pacbell.net]
' Connector: Red = Gnd, Purple = Pin0, White-Green = Pin1
dirs = %00000000
pins = %00000000
symbol BitCount = B1
Init: if pin0 = 0 and pin1 = 0 then Init
pause 2000 ' pause to connect Link
Start: BitCount = 0
B0 = 0
Loop: if pin0 = 1 and pin1 = 1 then Loop
if pin0 = 0 then TLow
RLow: low 0
branch BitCount,(R0,R1,R2,R3,R4,R5,R6,R7)
R0: bit0 = 1 : goto Rloop
R1: bit1 = 1 : goto Rloop
R2: bit2 = 1 : goto Rloop
R3: bit3 = 1 : goto Rloop
R4: bit4 = 1 : goto Rloop
R5: bit5 = 1 : goto Rloop
R6: bit6 = 1 : goto Rloop
R7: bit7 = 1
Rloop: if pin1 = 0 then Rloop
BitCount = BitCount + 1
input 0
if BitCount = 8 then Display
goto Loop
TLow: low 1
Tloop: if pin0 = 0 then Tloop
BitCount = BitCount + 1
input 1
if BitCount = 8 then Display
goto Loop
Display: debug B0
goto Start
| file: /Techref/ti/calc/sio.htm, 3KB, , updated: 2013/7/22 18:13, local time: 2025/10/24 12:57,
216.73.216.180,10-8-63-169:LOG IN
|
| ©2025 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://techref.massmind.org/Techref/ti/calc/sio.htm"> ti calc sio</A> |
| Did you find what you needed? |
Welcome to massmind.org! |
|
The Backwoods Guide to Computer Lingo |
.