Using the utilities, C routines, Routines – Calibre UK IC Communication Adapter ICA93LV User Manual
Page 7
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)
0
90
1
45
2
11
3
1.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
#include
/*Optional, but recommended if your compiler */
/*supports DOS I/O functions */
#include
/*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.