User Guide

Revision 1.7 Page 6 of 27
09/12/1999
5. Using the Utilities
Each utility is documented in a standard format, which lists its name, usage, function, and effect on the
adapter is given. Following a reset, the adapter should be setup prior to any data transfer.
5.1. C Routines
5.1.1. I
2
C Setup/Initialisation Routine
Name: setup(base, own, sclk)
Usage: setup(base, own, sclk);
Function: procedure to set up I
2
C Communications Adapter.
Parameters are:
int base base address of adapter set by links on circuit board.
int own I
2
C address to which the adapter is to respond in slave mode. This forms the
upper 7 bits of the 8 bit address; the lowest bit being the Read (1) or Write (0) bit.
This means that if own = 0x57, the card will respond to a Write to address 0xAE
and a Read to address 0xAF. Be sure not to select an address that is already in
use by any other device in your I
2
C system. If own = 0x00 the adapter will monitor
all I
2
C bus information but will not affect any data transfers, thus acting as a bus
monitor.
int sclk the SCL clock rate (bit rate for I
2
C serial bus).
Value of sclk Approximate SCL (kHz)
090
145
211
31.5
Value Returned:none.
I
2
C status on exit from routine:
The I
2
C Communications Adapter will have the serial interface enabled; also data
reception acknowledge will be enabled. The status register will contain 0x81
(assuming that no other masters exist on the I
2
C system, if this is not the case
then the contents of the status register will also depend on externally generated
bus activity).
Example Usage: (see also sample programs)
#include <stdio.h>
#include <dos.h> /*Optional, but recommended if your compiler */
/*supports DOS I/O functions */
#include <i2c.h> /*This contains the I
2
C routines */
main
{
int base, own, sclk;
base = 0x310; /* Adapter’s base address = 0x310 (hex) */
own = 0x57; /* Own slave address set to 0x57 (hex) */
sclk = 1; /* Serial clock rate set to 45KHz */
setup(base, own sclk);
printf(“I
2
C Communications Adapter initialised\n”);
}
/* This will set up the I
2
C Communications Adapter with a base */
/* address of 0x310, an I
2
C slave address of 0xAE and a SCL */
/* clock rate of approximately 45KHz */
5.1.2. I
2
C Status Checking Routine
Name: getstatus(controladdress)
Usage: status = getstatus(controladdress);
Function: function to read status register of I
2
C Communications Adapter.