CASIO CFX-9950G User Manual

Casio CFX-9950G communications protocol
Erik Grindheim, August ~ October 2001
This document describes the communication process for transferring individual values to or from the graphic Casio calculators. Everything in this document is based on experiments carried out with the CFX-9950G. Still the information should be valid for all the compatible units that go into the so-called CFX-9850G series of Power Graphic calculators from Casio.
The communication is initiated by the Casio when the Send( or Receive( command is run. This transfers an individual value to or from one of the “Alpha Memory” variables. These commands can also transfer Matrix data, List data and Picture data, but none of these subjects are covered in this document.
Electrical:
TTL-level (High=5V and Low=0V), asynchronous serial half-duplex communication, connects to a PC´s RS-232 COM-port with a MAX232 or equivalent level-converter circuit.
The Casio-plug is a standard 2.5mm stereo jack with the following pin-designations: Sleeve Ground
Ring Data to Casio Tip Data from Casio Baud-rate: 9600 bps Parity: none Byte-size: 8 bits Stop-bits: from Casio: 2 bits to Casio: 1 bit
Communication process to SEND variables: This section describes the data blocks transferred when using the Send( function to send a
variable from the Casio to the outer world.
When the command is issued the Casio sends an “attention request”, one byte: 0x15. Then the external device must reply with a “device present”, one byte: 0x13. If the Casio doesn’t receive this byte (0x13) within 0.5 ~ 1 second there will be a timeout and the Casio displays the Com ERROR message.
When the first handshaking-procedure (0x15 and 0x13) is over the Casio starts to send the Variable-description packet, which consists of 50 bytes.
The external device receives this and confirms with one byte: 0x06.
Then the Casio sends its Value packet, consisting of either 16 or 26 bytes. Packet length depends on whether the variable also contains an imaginary part or not. If the variable has never been assigned a value since the last reset of “Alpha Memory” this packet will not be sent at all.
The external device also receives this packet and confirms with 0x06. (If an empty variable is sent, then there is no Value packet, and this byte is not sent either.)
To close the communication cycle the Casio sends an End packet of 50 bytes. The end packet is always the same; none of the bytes change their value.
The diagram at the next page clarifies how the process is carried out:
Casio CFX-9950G communications Erik Grindheim 2 / 9 .
Instruction: Send(
0x15
description
0x06
0x06
0x13
Casio: External device:
Variable-
packet
Value
packet
End
packet
Casio CFX-9950G communications Erik Grindheim 3 / 9 .
Loading...
+ 6 hidden pages