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: 2017/10/17 09:40,
|©2017 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://www.piclist.com/techref/ti/calc/sio.htm"> ti calc sio</A>
|Did you find what you needed?|
PICList 2017 contributors:
o List host: MIT, Site host massmind.org, Top posters @20171017 RussellMc, Van Horn, David, James Cameron, Sean Breheny, IVP, alan.b.pearce, Neil, David C Brown, Bob Blick, Denny Esterline,
* Page Editors: James Newton, David Cary, and YOU!
* Roman Black of Black Robotics donates from sales of Linistep stepper controller kits.
* Ashley Roll of Digital Nemesis donates from sales of RCL-1 RS232 to TTL converters.
* Monthly Subscribers: Gregg Rew. on-going support is MOST appreciated!
* Contributors: Richard Seriani, Sr.
Welcome to www.piclist.com!