Esta es una librera muy simplista, pero funcional, para utilizar
la interfase Puerto Paralelo <-> I2C, utilizando 5 (de 6) inversores
con colector abierto de un 7405. Es dificil encontrar un circuito mas
sencillo para realizar pruebas con el bus I2C!

La librera est escrita como unidad en Pascal, y define un puerto
I2C como objeto. Este mtodo facilita la definicin de objetos derivados,
especializados para ciertos perifricos. Como ejemplo est incluido
el programa i2c_test.pas, que define un objeto nuevo, basado en i2c_port,
que controla una memoria EEprom, tipo 24xx65.

El cdigo fue compilado con Turbo Pascal 7.0 sin problemas.


Mas informacin en el sitio:

http://www.jcoppens.com


Uso de la unidad:

Primero, instanciar un objeto del tipo i2c_port (o definir un tipo
derivado de este objeto y luego instanciarlo):

var
	I2C: i2c_port;

Luego, llamar a los mtodos correspondientes para la inicializacin, y
posterior uso.


procedure i2c_port.Initialize(P: word);

	Initialize el objeto, y define P como la direccin del puerto
	a utilizar en el futuro (lease: la direccin del LPT de la
	PC, por ejemplo $378);


procedure i2c_port.Start_Cond;
procedure i2c_port.Stop_Cond);

	Cada paquete se transmite entre un Start_Cond() y un Stop_Cond().
	Sin embargo, algunos perifricos I2C, como por ejemplo el 24C65
	necesitan de una llamada start_cond() en el medio del paquete para
	invertir la direccin de la comunicacin.


function i2c_port.Byte_sent(B: byte): boolean;

	Enviar byte 'b'. Returna TRUE o FALSE, segn si el perifrico
	confirmn la recepcin.


function i2c_port.Receive_Byte(MustAck: boolean): byte;

	(Intentar de) recibir un byte del bus. Si 'MustAck' es
	TRUE en el momento de la llamada, se enviar una confirmacin
	luego de la recepcin del byte.


function i2c_port.Poll_Available: boolean;

	Interrogar si el artefacto est dispuesto a responder 
        (y/o si existe).


procedure i2c_port.Set_Debug(D: boolean);

	Habilita (o deshabilita) la impresin de mensajes que pueden
	ayudar en la determinacin del origen de problemas.


Nota;

Se publica este programa bajo las reglas de la licencia GNU GPL (copia
COPYING en este mismo paquete).

John
